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 postgresRun a postgres process
$ docker run --name=postgres --network=postgres -p 5432:5432 -d registry.repositive.io:5000/postgres-dataCreate the rabbit network
$ docker network create rabbitRun a rabbitmq process
$ docker run --name=rabbit --network=rabbit -p 5672:5672 -p 15672:15672 -d rabbitmq:3-managementUse 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 postgresCreate rabbit network
$ cd development-environment/pdx/infra
$ docker-compose up -d rabbitNow 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