diff --git a/README.md b/README.md index e11f8b5..a3ae4d9 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -![Test Coveralls](https://github.com/kevinxin90/biomedical_id_resolver.js/workflows/Test%20Coveralls/badge.svg) -[![Coverage Status](https://coveralls.io/repos/github/kevinxin90/biomedical_id_resolver.js/badge.svg?branch=master)](https://coveralls.io/github/kevinxin90/biomedical_id_resolver.js?branch=master) +![Test Coveralls](https://github.com/biothings/biomedical_id_resolver.js/workflows/Test%20Coveralls/badge.svg) +[![Coverage Status](https://coveralls.io/repos/github/biothings/biomedical_id_resolver.js/badge.svg?branch=master)](https://coveralls.io/github/kevinxin90/biomedical_id_resolver.js?branch=master) ![npm](https://img.shields.io/npm/dw/biomedical_id_resolver) -![GitHub issues](https://img.shields.io/github/issues/kevinxin90/biomedical_id_resolver.js) +![GitHub issues](https://img.shields.io/github/issues/biothings/biomedical_id_resolver.js) ![NPM](https://img.shields.io/npm/l/biomedical_id_resolver) ![npm](https://img.shields.io/npm/v/biomedical_id_resolver?style=plastic) -![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/kevinxin90/biomedical_id_resolver.js) +![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/biothings/biomedical_id_resolver.js) @@ -114,7 +114,24 @@ let input = { 5. OMIM 6. UniProtKB 7. UMLS - 8. name + 8. MGI + 9. name + + > Transcript ID resolution is done through MyGene.info API + +- Transcript + 1. ENSEMBL + 2. SYMBOL + 3. name + + > Protein ID resolution is done through MyGene.info API + +- Protein + 1. UniProtKB + 2. ENSEMBL + 3. SYMBOL + 4. UMLS + 5. name > Variant ID resolution is done through MyVariant.info API @@ -130,15 +147,35 @@ let input = { 1. CHEBI 2. CHEMBL.COMPOUND 3. DRUGBANK - 4. PUBCHEM + 4. PUBCHEM.COMPOUND + 5. MESH + 6. INCHI + 7. INCHIKEY + 8. UNII + 9. UMLS + 10. CAS + 11. HMDB + 12. LINCS + 13. name + +> Drug ID resolution is done through MyChem.info API + +- Drug + 1. CHEBI + 2. CHEMBL.COMPOUND + 3. DRUGBANK + 4. PUBCHEM.COMPOUND 5. MESH 6. INCHI 7. INCHIKEY 8. UNII - 9. KEGG - 10. UMLS - 11. name - 12. id + 9. UMLS + 10. CAS + 11. HMDB + 12. LINCS + 13. RXCUI + 14. NDC + 15. name > Disease ID Resolution is done through MyDisease.info API @@ -151,17 +188,23 @@ let input = { 5. EFO 6. UMLS 7. MESH - 8. GARD - 9. name + 8. HP + 9. GARD + 10. SNOMEDCT + 11. NCIT + 12. name > Pathway ID Resolution is done through biothings.ncats.io/geneset API - Pathway - 1. Reactome + 1. REACT 2. KEGG - 3. PHARMGKB + 3. PHARMGKB.PATHWAYS 4. WIKIPATHWAYS - 5. name + 5. BIOCARTA + 6. GO + 7. SMPDB + 8. name > MolecularActivity ID Resolution is done through BioThings Gene Ontology Molecular Activity API @@ -170,19 +213,14 @@ let input = { 2. MetaCyc 3. RHEA 4. KEGG.REACTION - 5. Reactome + 5. REACT + 6. name > CellularComponent ID Resolution is done through BioThings Gene Ontology Cellular Component API - CellularComponent 1. GO - 2. MESH - 3. UMLS - 4. NCIT - 5. SNOMEDCT - 6. UBERON - 7. CL - 8. name + 2. name > BiologicalProcess ID Resolution is done through BioThings Gene Ontology Biological Process API @@ -190,7 +228,7 @@ let input = { 1. GO 2. MetaCyc - 3. Reactome + 3. REACT 4. name > AnatomicalEntity ID Resolution is done through BioThings UBERON API @@ -198,9 +236,8 @@ let input = { - AnatomicalEntity 1. UBERON 2. UMLS - 3. NCIT - 4. MESH - 5. name + 3. MESH + 4. name > PhenotypicFeature ID Resolution is done through BioThings HPO API @@ -215,16 +252,21 @@ let input = { 8. MP 9. name -> Cell ID Resolution is done through nodenormalization API +> ClinicalFinding ID Resolution is done through MyDisease.info API + +- ClinicalFinding + 1. LOINC + 2. NCIT + 3. EFO + 4. name + +> Cell ID Resolution is done through Biothings Cell Ontology API - Cell 1. CL - 2. UMLS - 3. NCIT - 4. MESH - 5. UBERON - 6. SNOMEDCT - 7. name + 2. NCIT + 3. MESH + 4. name ## Development @@ -234,9 +276,9 @@ let input = { 3. Run `npm ci` to install the dependencies. 4. scripts are stored in `/src` folder 5. Add test to `/__tests__` folder -6. run `npm run release` to bump version and generte change log +6. run `npm run release` to bump version and generate change log 7. run `npx depcheck` to check for unused packages in package.json ## CHANGELOG -See [CHANGELOG.md](https://github.com/kevinxin90/biomedical_id_resolver.js/blob/master/CHANGELOG.md) +See [CHANGELOG.md](https://github.com/biothings/biomedical_id_resolver.js/blob/master/CHANGELOG.md) diff --git a/__tests__/integration/default_resolver.test.ts b/__tests__/integration/default_resolver.test.ts index ad1007e..7afb7e6 100644 --- a/__tests__/integration/default_resolver.test.ts +++ b/__tests__/integration/default_resolver.test.ts @@ -232,20 +232,20 @@ describe("Test ID Resolver", () => { expect(res["NCIT:C116936"][0]).toBeInstanceOf(ResolvableBioEntity); }) - // skip RHEA test below per https://github.com/biothings/biomedical_id_resolver.js/pull/56 - test.skip("Test chemical ids can be resolved as RHEA ids", async () => { + // update RHEA test to use MolecularActivity semantic type + test("Test molecular activity ids can be resolved as RHEA ids", async () => { const resolver = new DefaultIDResolver(); - const res = await resolver.resolve({ "ChemicalSubstance": ["PUBCHEM.COMPOUND:5460389"] }); - expect(res["PUBCHEM.COMPOUND:5460389"][0]).toBeInstanceOf(ResolvableBioEntity); - expect(res["PUBCHEM.COMPOUND:5460389"][0].dbIDs).toHaveProperty("RHEA"); - expect(res["PUBCHEM.COMPOUND:5460389"][0].dbIDs.RHEA).toContain("RHEA:37975") + const res = await resolver.resolve({ "MolecularActivity": ["GO:0010176"] }); + expect(res["GO:0010176"][0]).toBeInstanceOf(ResolvableBioEntity); + expect(res["GO:0010176"][0].dbIDs).toHaveProperty("RHEA"); + expect(res["GO:0010176"][0].dbIDs.RHEA).toContain("RHEA:37975") }) - // skip RHEA test below per https://github.com/biothings/biomedical_id_resolver.js/pull/56 - test.skip("Test RHEA ids can be correctly resolved", async () => { + // update RHEA test to use MolecularActivity semantic type + test("Test RHEA ids can be correctly resolved", async () => { const resolver = new DefaultIDResolver(); - const res = await resolver.resolve({ "ChemicalSubstance": ["RHEA:37975"] }); + const res = await resolver.resolve({ "MolecularActivity": ["RHEA:37975"] }); expect(res["RHEA:37975"][0]).toBeInstanceOf(ResolvableBioEntity); - expect(res["RHEA:37975"][0].primaryID).toEqual("CHEBI:16169") + expect(res["RHEA:37975"][0].primaryID).toEqual("GO:0010176") }) -}) \ No newline at end of file +}) diff --git a/__tests__/unittest/bioentity.test.ts b/__tests__/unittest/bioentity.test.ts index 9819457..92163c0 100644 --- a/__tests__/unittest/bioentity.test.ts +++ b/__tests__/unittest/bioentity.test.ts @@ -11,7 +11,7 @@ const CDK2_DB_IDs = { const RILUZOLE_DB_IDS = { "CHEMBL.COMPOUND": ["CHEMBL744"], "name": ["Riluzole", "RILUZOLE"], - "PUBCHEM": ["5070"], + "PUBCHEM.COMPOUND": ["5070"], } const DB_ID_WITH_NO_PRIMARY = { @@ -22,7 +22,11 @@ const DISEASE_DB_IDS = { "MONDO": ["MONDO:12345"] } -const CHEMBL7512_DB_IDS = { "CHEMBL.COMPOUND": ["CHEMBL7512"], "PUBCHEM": ["53428"] } +const CHEMBL7512_DB_IDS = { + "CHEMBL.COMPOUND": ["CHEMBL7512"], + "PUBCHEM.COMPOUND": ["53428"] +} + describe("Test ResolvableBioEntity Class", () => { test("return semanticType when called semanticType property", () => { const entity = new ResolvableBioEntity("Gene", CDK2_DB_IDs, {}); @@ -147,4 +151,4 @@ describe("Test IrresolvableBioEntity Class", () => { }) -}) \ No newline at end of file +}) diff --git a/src/common/types.ts b/src/common/types.ts index 892469d..cfe547e 100644 --- a/src/common/types.ts +++ b/src/common/types.ts @@ -13,11 +13,15 @@ export interface BioThingsAPIFailedQueryResponse extends BioThingsAPIQueryRespon export type ResolvableSemanticTypes = | 'Gene' + | 'Transcript' + | 'Protein' | 'SequenceVariant' | 'ChemicalSubstance' + | 'Drug' | 'Disease' | 'DiseaseOrPhenotypicFeature' | 'PhenotypicFeature' + | 'ClinicalFinding' | 'MolecularActivity' | 'BiologicalProcess' | 'CellularComponent' @@ -27,11 +31,15 @@ export type ResolvableSemanticTypes = export enum ResolvableTypes { Gene = 'Gene', + Transcript = 'Transcript', + Protein = 'Protein', SequenceVariant = 'SequenceVariant', ChemicalSubstance = 'ChemicalSubstance', + Drug = 'Drug', Disease = 'Disease', DiseaseOrPhenotypicFeature = 'DiseaseOrPhenotypicFeature', PhenotypicFeature = 'PhenotypicFeature', + ClinicalFinding = 'ClinicalFinding', MolecularActivity = 'MolecularActivity', BiologicalProcess = 'BiologicalProcess', CellularComponent = 'CellularComponent', diff --git a/src/config.ts b/src/config.ts index d8b64e9..112e538 100644 --- a/src/config.ts +++ b/src/config.ts @@ -32,6 +32,20 @@ export const APIMETA: MetaDataItemsObject = { type_of_gene: ['type_of_gene'], }, }, + Transcript: { + id_ranks: ['ENSEMBL', 'SYMBOL', 'name'], + semantic: 'Transcript', + api_name: 'mygene.info', + url: 'https://mygene.info/v3/query', + mapping: { + ENSEMBL: ['ensembl.transcript'], + SYMBOL: ['symbol'], + name: ['name'], + }, + additional_attributes_mapping: { + interpro: ['interpro.desc'], + }, + }, Protein: { id_ranks: ['UniProtKB', 'ENSEMBL', 'SYMBOL', 'UMLS', 'name'], semantic: 'Protein', @@ -56,8 +70,8 @@ export const APIMETA: MetaDataItemsObject = { mapping: { MYVARIANT_HG19: ['_id'], DBSNP: ['dbsnp.rsid', 'clinvar.rsid', 'dbnsfp.rsid'], - HGVS: ['clinvar.hgvs.genomic', 'clinvar.hgvs.protein', 'clinvar.hgvs.coding'], - ClINVAR: ['clinvar.rcv.accession'], + HGVS: ['clinvar.hgvs.genomic', 'clinvar.hgvs.protein', 'clinvar.hgvs.coding', 'dbnsfp.clinvar.hgvs'], + ClINVAR: ['clinvar.variant_id', 'dbnsfp.clinvar.clinvar_id'], }, additional_attributes_mapping: { cadd_consequence: ['cadd.consequence'], @@ -68,39 +82,23 @@ export const APIMETA: MetaDataItemsObject = { }, }, ChemicalSubstance: { - id_ranks: [ - 'CHEBI', - 'CHEMBL.COMPOUND', - 'DRUGBANK', - 'PUBCHEM.COMPOUND', - 'MESH', - 'INCHI', - 'INCHIKEY', - 'UNII', - 'KEGG', - 'UMLS', - 'name', - ], + id_ranks: ['CHEBI', 'CHEMBL.COMPOUND', 'DRUGBANK', 'PUBCHEM.COMPOUND', 'MESH', 'INCHI', 'INCHIKEY', 'UNII', 'UMLS', 'CAS', 'HMDB', 'LINCS', 'name'], semantic: 'ChemicalSubstance', api_name: 'mychem.info', url: 'https://mychem.info/v1/query', mapping: { - 'CHEMBL.COMPOUND': ['chembl.molecule_chembl_id', 'drugbank.xrefs.chembl', 'drugcentral.xrefs.chembl_id'], - DRUGBANK: ['drugcentral.xrefs.drugbank_id', 'pharmgkb.xrefs.drugbank', 'chebi.xrefs.drugbank', 'drugbank.id'], - 'PUBCHEM.COMPOUND': [ - 'pubchem.cid', - 'drugbank.xrefs.pubchem.cid', - 'drugcentral.xrefs.pubchem_cid', - 'pharmgkb.xrefs.pubchem.cid', - ], - CHEBI: ['chebi.id', 'chembl.chebi_par_id', 'drugbank.xrefs.chebi', 'drugcentral.xrefs.chebi'], + 'CHEMBL.COMPOUND': ['chembl.molecule_chembl_id', 'drugbank.xrefs.chembl', 'drugcentral.xrefs.chembl_id', 'unichem.chembl'], + DRUGBANK: ['drugcentral.xrefs.drugbank_id', 'pharmgkb.xrefs.drugbank', 'chebi.xrefs.drugbank', 'drugbank.id', 'unichem.drugbank'], + 'PUBCHEM.COMPOUND': ['pubchem.cid', 'drugbank.xrefs.pubchem.cid', 'drugcentral.xrefs.pubchem_cid', 'pharmgkb.xrefs.pubchem.cid', 'chebi.xrefs.pubchem.cid', 'unichem.pubchem'], + CHEBI: ['chebi.id', 'chembl.chebi_par_id', 'drugbank.xrefs.chebi', 'drugcentral.xrefs.chebi', 'pharmgkb.xrefs.chebi', 'unichem.chebi'], UMLS: ['drugcentral.xrefs.umlscui', 'pharmgkb.xrefs.umls', 'umls.cui'], MESH: ['umls.mesh', 'drugcentral.xrefs.mesh_descriptor_ui', 'ginas.xrefs.MESH', 'pharmgkb.xrefs.mesh'], UNII: ['drugcentral.xrefs.unii', 'unii.unii', 'aeolus.unii', 'ginas.unii'], - INCHIKEY: ['drugbank.inchi_key', 'ginas.inchikey', 'unii.inchikey', 'chebi.inchikey'], - INCHI: ['drugbank.inchi', 'chebi.inchi', 'chembl.inchi'], - KEGG: ['drugbank.xrefs.kegg.cid'], - LINCS: ['unichem.lincs'], + INCHIKEY: ['drugbank.inchi_key', 'ginas.inchikey', 'unii.inchikey', 'chebi.inchikey', 'chembl.inchi_key', 'pubchem.inchi_key'], + INCHI: ['drugbank.inchi', 'chebi.inchi', 'chembl.inchi', 'pharmgkb.inchi', 'pubchem.inchi'], + LINCS: ['unichem.lincs', 'chebi.xrefs.lincs'], + CAS: ['chebi.xrefs.cas', 'ginas.cas_primary', 'pharmgkb.xrefs.cas'], + HMDB: ['chebi.xrefs.hmdb', 'pharmgkb.xrefs.hmdb'], name: ['chembl.pref_name', 'drugbank.name', 'umls.name', 'ginas.preferred_name', 'pharmgkb.name', 'chebi.name'], }, additional_attributes_mapping: { @@ -118,39 +116,25 @@ export const APIMETA: MetaDataItemsObject = { }, }, Drug: { - id_ranks: [ - 'CHEBI', - 'CHEMBL.COMPOUND', - 'DRUGBANK', - 'PUBCHEM.COMPOUND', - 'MESH', - 'INCHI', - 'INCHIKEY', - 'UNII', - 'KEGG', - 'UMLS', - 'LINCS', - 'name', - ], - semantic: 'ChemicalSubstance', + id_ranks: ['CHEBI', 'CHEMBL.COMPOUND', 'DRUGBANK', 'PUBCHEM.COMPOUND', 'MESH', 'INCHI', 'INCHIKEY', 'UNII', 'UMLS', 'CAS', 'HMDB', 'LINCS', 'RXCUI', 'NDC', 'name'], + semantic: 'Drug', api_name: 'mychem.info', url: 'https://mychem.info/v1/query', mapping: { - 'CHEMBL.COMPOUND': ['chembl.molecule_chembl_id', 'drugbank.xrefs.chembl', 'drugcentral.xrefs.chembl_id'], - DRUGBANK: ['drugcentral.xrefs.drugbank_id', 'pharmgkb.xrefs.drugbank', 'chebi.xrefs.drugbank', 'drugbank.id'], - 'PUBCHEM.COMPOUND': [ - 'pubchem.cid', - 'drugbank.xrefs.pubchem.cid', - 'drugcentral.xrefs.pubchem_cid', - 'pharmgkb.xrefs.pubchem.cid', - ], - CHEBI: ['chebi.id', 'chembl.chebi_par_id', 'drugbank.xrefs.chebi', 'drugcentral.xrefs.chebi'], + 'CHEMBL.COMPOUND': ['chembl.molecule_chembl_id', 'drugbank.xrefs.chembl', 'drugcentral.xrefs.chembl_id', 'unichem.chembl'], + DRUGBANK: ['drugcentral.xrefs.drugbank_id', 'pharmgkb.xrefs.drugbank', 'chebi.xrefs.drugbank', 'drugbank.id', 'unichem.drugbank'], + 'PUBCHEM.COMPOUND': ['pubchem.cid', 'drugbank.xrefs.pubchem.cid', 'drugcentral.xrefs.pubchem_cid', 'pharmgkb.xrefs.pubchem.cid', 'chebi.xrefs.pubchem.cid', 'unichem.pubchem'], + CHEBI: ['chebi.id', 'chembl.chebi_par_id', 'drugbank.xrefs.chebi', 'drugcentral.xrefs.chebi', 'pharmgkb.xrefs.chebi', 'unichem.chebi'], UMLS: ['drugcentral.xrefs.umlscui', 'pharmgkb.xrefs.umls', 'umls.cui'], MESH: ['umls.mesh', 'drugcentral.xrefs.mesh_descriptor_ui', 'ginas.xrefs.MESH', 'pharmgkb.xrefs.mesh'], UNII: ['drugcentral.xrefs.unii', 'unii.unii', 'aeolus.unii', 'ginas.unii'], - INCHIKEY: ['drugbank.inchi_key', 'ginas.inchikey', 'unii.inchikey', 'chebi.inchikey'], - INCHI: ['drugbank.inchi', 'chebi.inchi', 'chembl.inchi'], - KEGG: ['drugbank.xrefs.kegg.cid'], + INCHIKEY: ['drugbank.inchi_key', 'ginas.inchikey', 'unii.inchikey', 'chebi.inchikey', 'chembl.inchi_key', 'pubchem.inchi_key'], + INCHI: ['drugbank.inchi', 'chebi.inchi', 'chembl.inchi', 'pharmgkb.inchi', 'pubchem.inchi'], + LINCS: ['unichem.lincs', 'chebi.xrefs.lincs'], + CAS: ['chebi.xrefs.cas', 'ginas.cas_primary', 'pharmgkb.xrefs.cas'], + HMDB: ['chebi.xrefs.hmdb', 'pharmgkb.xrefs.hmdb'], + RXCUI: ['ginas.xrefs.RXCUI', 'unii.rxcui', 'aeolus.rxcui'], + NDC: ['pharmgkb.xrefs.ndc'], name: ['chembl.pref_name', 'drugbank.name', 'umls.name', 'ginas.preferred_name', 'pharmgkb.name', 'chebi.name'], }, additional_attributes_mapping: { @@ -174,7 +158,7 @@ export const APIMETA: MetaDataItemsObject = { url: 'https://biothings.ncats.io/hpo/query', mapping: { UMLS: ['xrefs.umls'], - SNOMEDCT: ['xrefs.snomed_ct'], + SNOMEDCT: ['xrefs.snomed_ct', 'xrefs.snomedct_us'], HP: ['_id'], MEDDRA: ['xrefs.meddra'], EFO: ['xrefs.efo'], @@ -190,28 +174,34 @@ export const APIMETA: MetaDataItemsObject = { api_name: 'mydisease.info', url: 'https://mydisease.info/v1/query', mapping: { - MONDO: ['mondo.mondo'], - DOID: ['mondo.xrefs.doid'], - UMLS: [ - 'mondo.xrefs.umls', - 'mondo.xrefs.umls_cui', - 'disgenet.xrefs.umls', - 'umls.umls', - 'disease_ontology.xrefs.umls_cui', - ], - name: ['mondo.label', 'disgenet.xrefs.disease_name'], + MONDO: ['mondo.mondo', 'disgenet.xrefs.mondo'], + DOID: ['mondo.xrefs.doid', 'disease_ontology.doid', 'disgenet.xrefs.doid'], + UMLS: ['mondo.xrefs.umls', 'mondo.xrefs.umls_cui', 'disgenet.xrefs.umls', 'umls.umls', 'disease_ontology.xrefs.umls_cui'], + name: ['mondo.label', 'disgenet.xrefs.disease_name', 'disease_ontology.name'], MESH: ['mondo.xrefs.mesh', 'disease_ontology.xrefs.mesh', 'ctd.mesh'], - OMIM: ['mondo.xrefs.omim', 'hpo.omim', 'disgenet.xrefs.omim'], - EFO: ['mondo.xrefs.efo'], + OMIM: ['mondo.xrefs.omim', 'hpo.omim', 'disgenet.xrefs.omim', 'disease_ontology.xrefs.omim'], + EFO: ['mondo.xrefs.efo', 'disgenet.xrefs.efo', 'disease_ontology.xrefs.efo'], ORPHANET: ['hpo.orphanet', 'mondo.xrefs.orphanet'], GARD: ['mondo.xrefs.gard', 'disease_ontology.xrefs.gard'], - HP: ['mondo.xrefs.hp'], + HP: ['mondo.xrefs.hp', 'disgenet.xrefs.hp'], SNOMEDCT: ['mondo.xrefs.sctid', 'umls.snomed.preferred', 'umls.snomed.non-preferred'], NCIT: ['mondo.xrefs.ncit', 'disease_ontology.xrefs.ncit'] }, }, + ClinicalFinding: { + id_ranks: ['LOINC', 'NCIT', 'EFO', 'name'], + semantic: 'Disease', + api_name: 'mydisease.info', + url: 'https://mydisease.info/v1/query', + mapping: { + LOINC: ['mondo.xrefs.loinc'], + NCIT: ['mondo.xrefs.ncit', 'disease_ontology.xrefs.ncit'], + EFO: ['mondo.xrefs.efo', 'disgenet.xrefs.efo', 'disease_ontology.xrefs.efo'], + name: ['mondo.label', 'disgenet.xrefs.disease_name', 'disease_ontology.name'], + }, + }, MolecularActivity: { - id_ranks: ['GO', 'MetaCyc', 'RHEA', 'KEGG', 'REACT', 'name'], + id_ranks: ['GO', 'MetaCyc', 'RHEA', 'KEGG.REACTION', 'REACT', 'name'], semantic: 'MolecularActivity', api_name: 'Gene Ontology Molecular Function API', url: 'https://biothings.ncats.io/go_mf/query', @@ -219,46 +209,46 @@ export const APIMETA: MetaDataItemsObject = { GO: ['_id'], MetaCyc: ['xrefs.metacyc'], RHEA: ['xrefs.rhea'], - KEGG: ['xrefs.kegg_reaction'], + 'KEGG.REACTION': ['xrefs.kegg_reaction'], REACT: ['xrefs.reactome'], name: ['name'], }, }, BiologicalProcess: { - id_ranks: ['GO', 'MetaCyc', 'REACT', 'KEGG', 'name'], + id_ranks: ['GO', 'MetaCyc', 'REACT', 'name'], semantic: 'BiologicalProcess', api_name: 'Gene Ontology Biological Process API', url: 'https://biothings.ncats.io/go_bp/query', mapping: { GO: ['_id'], MetaCyc: ['xrefs.metacyc'], - KEGG: ['xrefs.kegg_pathway'], REACT: ['xrefs.reactome'], name: ['name'], }, }, CellularComponent: { - id_ranks: ['GO', 'MetaCyc', 'name'], + id_ranks: ['GO', 'name'], semantic: 'CellularComponent', api_name: 'Gene Ontology Cellular Component API', url: 'https://biothings.ncats.io/go_cc/query', mapping: { GO: ['_id'], - MetaCyc: ['xrefs.metacyc'], name: ['name'], }, }, Pathway: { - id_ranks: ['REACT', 'KEGG', 'PHARMGKB', 'WIKIPATHWAYS', 'BIOCARTA', 'name'], + id_ranks: ['REACT', 'KEGG', 'PHARMGKB.PATHWAYS', 'WIKIPATHWAYS', 'BIOCARTA', 'GO', 'SMPDB', 'name'], semantic: 'Pathway', - api_name: 'geneset API', + api_name: 'Geneset API', url: 'https://biothings.ncats.io/geneset/query', mapping: { REACT: ['reactome'], WIKIPATHWAYS: ['wikipathways'], KEGG: ['kegg'], BIOCARTA: ['biocarta'], - PHARMGKB: ['pharmgkb'], + 'PHARMGKB.PATHWAYS': ['pharmgkb'], + GO: ['go'], + SMPDB: ['smpdb'], name: ['name'], }, additional_attributes_mapping: { @@ -266,7 +256,7 @@ export const APIMETA: MetaDataItemsObject = { }, }, AnatomicalEntity: { - id_ranks: ['UBERON', 'UMLS', 'MESH', 'NCIT', 'name'], + id_ranks: ['UBERON', 'UMLS', 'MESH', 'name'], semantic: 'AnatomicalEntity', api_name: 'UBERON API', url: 'https://biothings.ncats.io/uberon/query', @@ -274,20 +264,18 @@ export const APIMETA: MetaDataItemsObject = { UBERON: ['_id'], UMLS: ['xrefs.umls'], MESH: ['xrefs.mesh'], - NCIT: ['xrefs.ncit'], name: ['name'], }, }, Cell: { - id_ranks: ['CL', 'NCIT', 'MESH', 'EFO', 'name'], + id_ranks: ['CL', 'NCIT', 'MESH', 'name'], semantic: 'Cell', - api_name: 'Cell Onotlogy API', + api_name: 'Cell Ontology API', url: 'https://biothings.ncats.io/cell_ontology/query', mapping: { CL: ['_id'], NCIT: ['xrefs.ncit'], MESH: ['xrefs.mesh'], - EFO: ['xrefs.efo'], name: ['name'], }, },