Skip to content
This repository has been archived by the owner on Sep 22, 2021. It is now read-only.

inab/elixibilitas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

- THE PROJECT WAS MOVED TO THE https://gitlab.bsc.es/inb/elixir/tools-platform/elixibilitas/elixibilitas-rest

Elixibilitas: Quality Metrics tool for Elixir BioTools Registry.

Enterprise Java 8 (JEE8) Platform

Elixibilitas project is strictly adherent to the JEE8 specification. The tool is developed and deployed on WildFly 14.1 server, but should run on other servers (i.e. Apache Tomcat).

MongoDB

Quality Metrics are stored in MongoDB

Apache Maven build system

To simplify build process Elixibilitas uses Apache Maven build system.

Modules are logically separated by their functionality:

  • openebench-tools-model - Java JSON-B model classes for the tools.
  • elixibilitas-metrics-model - Java JSON-B model classes for quality metrics.
  • elixibilitas-dao - MongoDB data access classes for "tools" and "metrics" collection management.
  • elixibilitas-rest - RESTful API.
OWL2 Ontology

There is an ontological view to the OpenEBench tools.

The tools ontology is located at:

https://openebench.bsc.es/monitor/tools.owl

The tools data may be obtained in OWL2 JSON-LD format for any concrete tool record:

https://openebench.bsc.es/monitor/tool/biotools:pmut:2017/web/mmb.irbbarcelona.org

or for the entire tools collection:

https://openebench.bsc.es/monitor/tool/

The decision to return JSON or JSON-LD is taken on the HTTP "Accept" header.

These URLs may be imported into Protegé tool.
NB: Entire ontology is very big and exceeds the default Protegé memory settings.

REST API

The REST API is based on JAX-RS API.

Open API 3.0 (aka Swagger): https://openebench.bsc.es/monitor/openapi.json
Tool JSON Schema: https://openebench.bsc.es/monitor/tool/tool.json
Metrics JSON Schema: https://openebench.bsc.es/monitor/metrics/metrics.json


The API provides an access to biological tools descriptions:

https://openebench.bsc.es/monitor/tool/

Returns all OpenEBench tools.
The pagination is implemented via the HTTP Range Header (i.g. "Range: tools=10-30").
The response always contains the HTTP Content-Range Header ("Content-Range: tools 10-30/20000").
Alternatively, there are two query parameters: {from} and {to} that may be used instead of the Range Header:

example: https://openebench.bsc.es/monitor/tool?from=10&to=20 .

https://openebench.bsc.es/monitor/tool/{id}
https://openebench.bsc.es/monitor/tool/{id}/{type}
https://openebench.bsc.es/monitor/tool/{id}/{type}/{host}
https://openebench.bsc.es/monitor/tool/{id}/{type}/{host}/{path}

where:

  • {id} is the prefixed tool id (i.e. "biotools:pmut")
  • {type} is a type of the tool ("web", "app", "cmd", "db", "rest", "soap")
  • {host} is the tool provider which is usually provider's host
  • {path} is a JSON pointer to locate sub-property to return

Note that {id}/{type}/{host} uniquely identify the tool, while omitting the {type} or {host} returns an array of descriptions.
example 1: https://openebench.bsc.es/monitor/tool/biotools:pmut:2017/web/mmb.irbbarcelona.org .
example 2: https://openebench.bsc.es/monitor/tool/biotools:pmut:2017/web/mmb.irbbarcelona.org/credits .
curl patch tool data example:

curl -v -X PATCH -u user:password -H 'Content-Type: application/json' /
https://openebench.bsc.es/monitor/tool/{id}/description -d '"new description."'

It is also possible to get the list of all tools identifiers providing "Accept: text/uri-list" HTTP header:

curl -v -H 'Accept: text/uri-list' https://openebench.bsc.es/monitor/tool

Quality Metrics accessed via:

https://openebench.bsc.es/monitor/metrics/
https://openebench.bsc.es/monitor/metrics/{id}/{type}/{host}/{path}

example 1: https://openebench.bsc.es/monitor/metrics/biotools:pmut:2017/web/mmb.irbbarcelona.org .
example 2: https://openebench.bsc.es/monitor/metrics/biotools:pmut:2017/web/mmb.irbbarcelona.org/project/website .
curl patch metrics data example:

curl -v -X PATCH -u user:password -H 'Content-Type: application/json' /
https://openebench.bsc.es/monitor/metrics/{id}/support/email -d 'true'

or, what is the same:

curl -v -X PATCH -u user:password -H 'Content-Type: application/json' /
https://openebench.bsc.es/monitor/metrics/{id} -d '{"support.email": true}'

the former patches the json using JSON Patch, while the latter uses mongodb 'upsert' notation.


It is possible to query tools:

https://openebench.bsc.es/monitor/rest/search?id={id}&{projection}&{text}&{name}&{description}

where:

  • {id} is the compound tool id (i.e. "pmut", "biotools:pmut", ":pmut:2017")
  • {projection} tools properties to return
  • {text} text to search

The method is thought for the client's GUI that may use a pagination mechanism.
The pagination is implemented via the HTTP Range Header (i.g. "Range: tools=10-30").
The response always contains the HTTP Content-Range Header ("Content-Range: tools 10-30/10000").
When pagination is used, the server seponds with 206 Partial Content.
There is also possibility to use query parameters {skip} and {limit} (range 10-30 = skip 10, limit 20).


The results are grouped by the id and sorted by names.
example 1: https://openebench.bsc.es/monitor/rest/search .
example 2: https://openebench.bsc.es/monitor/rest/search .
example 3: https://openebench.bsc.es/monitor/rest/search?id=pmut .
example 4: https://openebench.bsc.es/monitor/rest/search?text=alignment .


The METRICS API that aggregates some metrics:

https://openebench.bsc.es/monitor/rest/metrics/availability/{id}

example: https://openebench.bsc.es/monitor/rest/metrics/availability/trimal .


The API also provides EDAM descriptions for the tool:

https://openebench.bsc.es/monitor/rest/edam/tool/
https://openebench.bsc.es/monitor/rest/edam/tool/{id}/{type}/{host}

example: https://openebench.bsc.es/monitor/rest/edam/tool/biotools:pmut:2017/web/mmb.irbbarcelona.org .

or descriptions of the EDAM term itself:

https://openebench.bsc.es/monitor/rest/edam/description?term={edam id}

example: https://openebench.bsc.es/monitor/rest/edam/description?term=http://edamontology.org/format_3607 .

There is also full text search over EDAM ontology.

https://elixir.bsc.es/monitor/rest/edam/search?text={text to search}

example: https://openebench.bsc.es/monitor/rest/edam/search?text=alignment .

There are simple stat info that can be obtained from the server:

https://openebench.bsc.es/monitor/rest/statistics : basic statistics.
https://openebench.bsc.es/monitor/rest/statistics/total : total number of tools.
https://openebench.bsc.es/monitor/rest/statistics/operational : number of tools those homepage is accessible.

https://openebench.bsc.es/monitor/rest/statistics/{tool_type} : number of tools of particular type ("web", "cmd", etc.)

example: https://openebench.bsc.es/monitor/rest/statistics/cmd .

All changes are stored in a log collection and could be accessed:

https://openebench.bsc.es/monitor/tools/log/{id}/{type}/{host}/{path}
https://openebench.bsc.es/monitor/metrics/log/{id}/{type}/{host}/{path}

example: https://openebench.bsc.es/monitor/metrics/log/biotools:pmut:2017/cmd/mmb.irbbarcelona.org/project/website/operational .

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages