NCATS-Gamma / robokop

Master UI for ROBOKOP
MIT License
16 stars 3 forks source link

Generic Client #36

Closed cbizon closed 6 years ago

cbizon commented 6 years ago

Currently, we have a series of clients for different services that implement smart apis. We have e.g. a biolink module, a pharos module, etc. Given the correct annotations for a smart api (semantic typing, identifiers, and json-ld contexts) it should be possible to replace these with a generic client that can figure out how to create appropriate calls and correctly parse results to return new nodes and edges.

I'm adding this as part of our Protocop->Robokop milestone, because this generic client becomes a common point for creation of correctly modeled nodes and edges, though we may need to push back on that?

stevencox commented 6 years ago

So these are the things we actually get from parsing the Translator registry.

In the spirit of knowing where to start, I plan to target the biolink endpoints as they seem most relevant to questions we've tried to answer.

Let me know if there are others that seem immediately relevant.

There are also not as many as I imagined so I'll check if I'm missing a bunch for some reason.

{'biolink__bioentity_disease_disease_id_genes': in_concept: disease out_concept: gene in_types: ['http://identifiers.org/omim/', 'http://identifiers.org/doid/'] out_type: http://identifiers.org/ncbigene/ path: objects op: biolink__bioentity_disease_disease_id_genes,
 'biolink__bioentity_disease_disease_id_phenotypes': in_concept: disease out_concept: phenotypic_feature in_types: ['http://identifiers.org/omim/', 'http://identifiers.org/doid/'] out_type: http://identifiers.org/hp/ path: edge.obj op: biolink__bioentity_disease_disease_id_phenotypes,
 'biolink__bioentity_gene_gene_id_diseases': in_concept: gene out_concept: disease in_types: ['http://identifiers.org/ncbigene/', 'http://identifiers.org/orphanet/'] out_type: http://identifiers.org/omim/ path: edge.obj op: biolink__bioentity_gene_gene_id_diseases,
 'biolink__bioentity_gene_gene_id_homologs': in_concept: gene out_concept: gene in_types: ['http://identifiers.org/ncbigene/'] out_type: http://identifiers.org/zfin/ path: edge.obj op: biolink__bioentity_gene_gene_id_homologs,
 'biolink__bioentity_gene_gene_id_interactions': in_concept: gene out_concept: gene in_types: ['http://identifiers.org/ncbigene/'] out_type: http://identifiers.org/ncbigene/ path: edge.obj op: biolink__bioentity_gene_gene_id_interactions,
 'biolink__bioentity_gene_gene_id_phenotypes': in_concept: gene out_concept: phenotypic_feature in_types: ['http://identifiers.org/ncbigene/'] out_type: http://identifiers.org/hp/ path: edge.obj op: biolink__bioentity_gene_gene_id_phenotypes,
 'dgidb__interactions_json_drugs_drugname_': in_concept: named_thing out_concept: gene in_types: ['http://identifiers.org/drugname/'] out_type: http://biothings.io/concepts/drug_interaction/ path: matchedTerms.interactions op: dgidb__interactions_json_drugs_drugname_,
 'dgidb__interactions_json_genes_genesymbol_': in_concept: gene out_concept: None in_types: ['http://identifiers.org/hgnc.symbol/'] out_type: http://biothings.io/concepts/drug_interaction/ path: matchedTerms.interactions op: dgidb__interactions_json_genes_genesymbol_,
 'diseaseontologyapi__metadata_doid_': in_concept: disease out_concept: phenotypic_feature in_types: ['http://identifiers.org/doid/'] out_type: http://identifiers.org/omim/ path: xref op: diseaseontologyapi__metadata_doid_,
 'ebi_ontology_lookup_service_api__query': in_concept: named_thing out_concept: disease in_types: ['http://biothings.io/concepts/disease_name/'] out_type: http://identifiers.org/doid/ path: response.docs.obo_id op: ebi_ontology_lookup_service_api__query,
 'ensembl__variation_human_dbsnp_genotypes_1': in_concept: None out_concept: None in_types: ['http://identifiers.org/dbsnp/'] out_type: http://biothings.io/concepts/genotypes/ path: genotypes op: ensembl__variation_human_dbsnp_genotypes_1,
 'ensembl__variation_human_dbsnp_phenotypes_1': in_concept: None out_concept: None in_types: ['http://identifiers.org/dbsnp/'] out_type: http://biothings.io/concepts/phenotypes/ path: phenotypes op: ensembl__variation_human_dbsnp_phenotypes_1,
 'mychem_info__chem_chemid_': in_concept: chemical_substance out_concept: chemical_substance in_types: ['http://identifiers.org/inchikey/', 'http://identifiers.org/drugbank/'] out_type: http://biothings.io/concepts/drug_interaction/ path: drugbank.targets op: mychem_info__chem_chemid_,
 'mygene_info__gene_geneid_': in_concept: protein out_concept: gene in_types: ['http://identifiers.org/ncbigene/', 'http://identifiers.org/ensembl/'] out_type: http://identifiers.org/pharmgkb.pathways/ path: pathway.pharmgkb.id op: mygene_info__gene_geneid_,
 'mygene_info__query': in_concept: gene out_concept: gene in_types: ['http://identifiers.org/hgnc.symbol/', 'http://identifiers.org/refseq/', 'http://identifiers.org/unigene/', 'http://identifiers.org/uniprot/', 'http://identifiers.org/pdb/', 'http://identifiers.org/biocarta.pathway/', 'http://identifiers.org/kegg.pathway/', 'http://identifiers.org/wikipathways/', 'http://identifiers.org/pharmgkb.pathways/', 'http://identifiers.org/reactome/', 'http://identifiers.org/ensembl.gene/', 'http://identifiers.org/ensembl.protein/', 'http://identifiers.org/ensembl.transcript/', 'http://identifiers.org/ensembl.translation/'] out_type: http://identifiers.org/taxonomy/ path: hits.taxid op: mygene_info__query,
 'myvariant_info__query': in_concept: gene out_concept: None in_types: ['http://identifiers.org/hgnc.symbol/', 'http://identifiers.org/dbsnp/', 'http://identifiers.org/ensembl.gene/', 'http://identifiers.org/ensembl.transcript', 'http://identifiers.org/ensembl.protein/', 'http://identifiers.org/ccds/', 'http://identifiers.org/uniprot/', 'http://identifiers.org/omim/', 'http://identifiers.org/efo/', 'http://identifiers.org/orphanet/', 'http://identifiers.org/hgnc/', 'http://identifiers.org/pubmed/', 'http://identifiers.org/clinicalsignificance/', 'http://biothings.io/terms/drugname/'] out_type: http://identifiers.org/hgvs/ path: hits._id op: myvariant_info__query,
 'myvariant_info__variant_variantid_': in_concept: None out_concept: None in_types: ['http://identifiers.org/hgvs/', 'http://identifiers.org/dbsnp/'] out_type: http://identifiers.org/hgvs/ path: _id op: myvariant_info__variant_variantid_}
cbizon commented 6 years ago

biolink is the only obviously useful thing for transitions. There are other services here that might be useful for resolving names or finding synonyms.

cbizon commented 6 years ago

Is biothings explorer the right answer to this question?

stevencox commented 6 years ago

Yes. Even if it isn't it makes more sense to extend than duplicate.