Metis is the service that annotates datasets with ontology terms using the Zooma application developed by the SPOT team at EBI. Metis is also able to retrieve synonyms for an ontology term / ontology ID.
Metis is named after the ancient Greek Titaness of good counsel, advice, planning, cunning, craftiness, and wisdom [1, 2]. It takes a field and term and responds with ontology terms for 'assay'/'technology'/'tissue'/'disease' fields.
Metis uses Iris to register a action.annotate.get
pattern.
The ingestion payload must be in the format:
type Payload = {
term: string;
field?: string;
force?: boolean;
}
The response is always an array of matched terms:
type Response = [{
term: string; // The standard term matched
iri: string; // The Ontology Term IRI
confidence: number; // How likely it is that the match is correct
source: string; // The matched ontoloty URL
short_name: string; // The matched ontology name identifier.
}]
Metis uses Iris to register a action.synonyms.get
pattern.
The ingestion payload must be in the format:
type Payload = {
symbol: string;
}
The response is always an array of matched terms:
type Response = [{
list_synonyms: string; // A list of all synonyms retrieved via HUGO
}]
Metis uses Iris to register a action.annotate.populate
pattern.
Metis uses Iris to register a action.annotate.populate
pattern.
origin/master
Metis uses postgres to store a lookup table and accelerate the process of returning existing results from previous queries. To setup the database create a new database called metis
and execute setup.sql
.
The current version of Iris requires an AMQP server. The docker-compose comes preconfigured to connect to one out of the box. You'll need to run an instance yourself and attach it to the network rabbit, and to the postgres database. For this purpose please use the devops service:
Manual approach: Create the postgres network
$ docker network create postgres
Run a postgres process
$ docker run --name=postgres --network=postgres -p 5432:5432 -d registry.repositive.io:5000/postgres-data
Create the rabbit network
$ docker network create rabbit
Run a rabbitmq process
$ docker run --name=rabbit --network=rabbit -p 5672:5672 -p 15672:15672 -d rabbitmq:3-management
Use devops service to start postgres network and rabbit network: Open the devops service
Create postgres network
$ cd development-environment/pdx/infra
$ docker-compose up -d postgres
Create rabbit network
$ cd development-environment/pdx/infra
$ docker-compose up -d rabbit
Now postgres and rabbit are running!
Please return to the metis file system.
If you run $ docker-compose up
now you should be able to see this service running using the iris cli $ iris status
The repository has a precommit
hook that will trigger linter for each commit. You can check it in the scripts section of the package.json