Skip to content

Commit

Permalink
Merge branch 'main' into clinvar-id-change
Browse files Browse the repository at this point in the history
  • Loading branch information
colleenXu committed Aug 17, 2021
2 parents 53d403a + 6a9f225 commit 839556d
Show file tree
Hide file tree
Showing 12 changed files with 327 additions and 182 deletions.
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,32 @@

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

## [3.10.0](https://github.com/biothings/biomedical_id_resolver.js/compare/v3.9.1...v3.10.0) (2021-08-16)


### Features

* support Disease NCIT, SNOMEDCT IDs ([9cc4908](https://github.com/biothings/biomedical_id_resolver.js/commit/9cc4908a62fe176212e0f2b23ed0d9ca381b7c83))


### Bug Fixes

* add BiologicalProcess KEGG back in ([ccf257a](https://github.com/biothings/biomedical_id_resolver.js/commit/ccf257a6041d01157d6646113b1ff699145d63f6))
* add ClinicalFinding semantic type ([56f083f](https://github.com/biothings/biomedical_id_resolver.js/commit/56f083ff06406bdb5d8ebc59d0ebe40319928c4b))
* add Disease, SequenceVariant mappings ([e36bc09](https://github.com/biothings/biomedical_id_resolver.js/commit/e36bc091d1f1988441fd96f987829fe146f65de0))
* add MEDDRA id mapping for Disease semantic type ([e914976](https://github.com/biothings/biomedical_id_resolver.js/commit/e9149760a1361389b27d5b674545f897068a16a6))
* add Pathway GO, SMPDB IDs ([c8b2556](https://github.com/biothings/biomedical_id_resolver.js/commit/c8b2556846dcf8d482cfabab85cb39afdf6b37db))
* adjust fields for mapping SNOMEDCT ([88dd2a4](https://github.com/biothings/biomedical_id_resolver.js/commit/88dd2a49021bfc42b22ade2936fb0f56d7a80e80))
* config + types file: ChemicalSubstance -> SmallMolecule, drug semantic type ([2cfbe88](https://github.com/biothings/biomedical_id_resolver.js/commit/2cfbe889bc32d070a2712a7dbbc43649ecdaa754))
* quick fixes to README to match config file ([da6df54](https://github.com/biothings/biomedical_id_resolver.js/commit/da6df549d54837d340501a8424e7a7166be241a0))
* reformatting, add mappings + ID prefixes ([546f5a7](https://github.com/biothings/biomedical_id_resolver.js/commit/546f5a70f6f2a003e737e27a0133440829d8095a))
* remove ChemicalSubstance support ([d78a30f](https://github.com/biothings/biomedical_id_resolver.js/commit/d78a30f7fd254812a808ca2479d0a3c759d7b3ff))
* simple changes ([df2139c](https://github.com/biothings/biomedical_id_resolver.js/commit/df2139c70c3be0292fddf9e1a6bcfa78961874d6))
* try to add backwards compatibility for ChemicalSubstance ([987ab97](https://github.com/biothings/biomedical_id_resolver.js/commit/987ab97fb52fb9baa94f3bd425f19857c130065e))
* update README to reflect config/types file changes ([3792602](https://github.com/biothings/biomedical_id_resolver.js/commit/3792602fcc361b65f5551b13451f3fa7f4d2b1a1))
* update rhea tests ([95ec48f](https://github.com/biothings/biomedical_id_resolver.js/commit/95ec48f23e9eca197f1d31db61815afb163fb845))
* update tests for ChemicalSubstance -> SmallMolecule ([0699af0](https://github.com/biothings/biomedical_id_resolver.js/commit/0699af00ede0dedbb063bf405c7d59159ce517f7))

### [3.9.1](https://github.com/biothings/biomedical_id_resolver.js/compare/v3.9.0...v3.9.1) (2021-06-22)

## [3.9.0](https://github.com/kevinxin90/biomedical_id_resolver.js/compare/v3.8.0...v3.9.0) (2021-04-27)
Expand Down
173 changes: 107 additions & 66 deletions README.md
Original file line number Diff line number Diff line change
@@ -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=main)](https://coveralls.io/github/biothings/biomedical_id_resolver.js?branch=main)
![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)



Expand All @@ -25,7 +25,7 @@ const resolve = require('biomedical_id_resolver');
// input should be an object, with semantic type as the key, and array of CURIEs as value
let input = {
"Gene": ["NCBIGene:1017", "NCBIGene:1018", "HGNC:1177"],
"ChemicalSubstance": ["CHEBI:15377"],
"SmallMolecule": ["CHEBI:15377"],
"Disease": ["MONDO:0004976"],
"Cell": ["CL:0002372"]
};
Expand Down Expand Up @@ -104,43 +104,76 @@ let input = {
## Available Semantic Types & prefixes
> Gene ID resolution is done through MyGene.info API
> Gene, Transcript, Protein ID resolution is done through MyGene.info API
- Gene
1. NCBIGene
2. ENSEMBL
3. HGNC
4. SYMBOL
4. MGI
5. OMIM
6. UniProtKB
7. UMLS
8. name
6. UMLS
7. SYMBOL
8. UniProtKB
9. name
- Transcript
1. ENSEMBL
2. SYMBOL
3. name
- Protein
1. UniProtKB
2. ENSEMBL
3. UMLS
4. SYMBOL
5. name
> Variant ID resolution is done through MyVariant.info API
- SequenceVariant
1. HGVS
1. CLINVAR
2. DBSNP
3. MYVARIANT_HG19
4. ClinVar
3. HGVS
4. MYVARIANT_HG19
> ChemicalSubstance ID resolution is done through MyChem.info API
> SmallMolecule, Drug ID resolution is done through MyChem.info API
- ChemicalSubstance
1. CHEBI
- SmallMolecule
1. PUBCHEM.COMPOUND
2. CHEMBL.COMPOUND
3. UNII
4. CHEBI
5. DRUGBANK
6. MESH
7. CAS
8. HMDB
9. KEGG.COMPOUND
10. INCHI
11. INCHIKEY
12. UMLS
13. LINCS
14. name
- Drug
1. RXCUI
2. NDC
3. DRUGBANK
4. PUBCHEM
5. MESH
6. INCHI
7. INCHIKEY
8. UNII
9. KEGG
10. UMLS
11. name
12. id
> Disease ID Resolution is done through MyDisease.info API
4. PUBCHEM.COMPOUND
5. CHEMBL.COMPOUND
6. UNII
7. CHEBI
8. MESH
9. CAS
10. HMDB
11. KEGG.COMPOUND
12. INCHI
13. INCHIKEY
14. UMLS
15. LINCS
16. name
> Disease, ClinicalFinding ID Resolution is done through MyDisease.info API
- Disease
Expand All @@ -151,80 +184,88 @@ let input = {
5. EFO
6. UMLS
7. MESH
8. GARD
9. name
8. MEDDRA
9. NCIT
10. SNOMEDCT
11. HP
12. GARD
13. name
- ClinicalFinding
1. LOINC
2. NCIT
3. EFO
4. name
> Pathway ID Resolution is done through biothings.ncats.io/geneset API
- Pathway
1. Reactome
2. KEGG
3. PHARMGKB
4. WIKIPATHWAYS
5. name
1. GO
2. REACT
3. KEGG
4. SMPDB
5. PHARMGKB.PATHWAYS
6. WIKIPATHWAYS
7. BIOCARTA
8. name
> MolecularActivity ID Resolution is done through BioThings Gene Ontology Molecular Activity API
- MolecularActivity
1. GO
2. MetaCyc
2. REACT
3. RHEA
4. KEGG.REACTION
5. Reactome
4. MetaCyc
5. KEGG.REACTION
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. MetaCyc
3. name
> BiologicalProcess ID Resolution is done through BioThings Gene Ontology Biological Process API
- BiologicalProcess
1. GO
2. MetaCyc
3. Reactome
4. name
2. REACT
3. MetaCyc
4. KEGG
5. name
> AnatomicalEntity ID Resolution is done through BioThings UBERON API
- AnatomicalEntity
1. UBERON
2. UMLS
3. NCIT
4. MESH
3. MESH
4. NCIT
5. name
> PhenotypicFeature ID Resolution is done through BioThings HPO API
- PhenotypicFeature
1. UMLS
2. SNOMEDCT
3. HP
4. MEDDRA
5. EFO
6. NCIT
7. MESH
8. MP
1. HP
2. EFO
3. NCIT
4. UMLS
5. MEDDRA
6. MP
7. SNOMEDCT
8. MESH
9. name
> Cell ID Resolution is done through nodenormalization API
> 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. EFO
5. name
## Development
Expand All @@ -234,9 +275,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/main/CHANGELOG.md)
8 changes: 4 additions & 4 deletions __tests__/integration/biolink_based_resolver.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ describe("Test ID Resolver", () => {

test("Test BioThings output include integer should be converted to string", async () => {
const resolver = new BioLinkBasedResolver();
const res = await resolver.resolve({ "ChemicalSubstance": ["CHEMBL.COMPOUND:CHEMBL744"] });
const res = await resolver.resolve({ "SmallMolecule": ["CHEMBL.COMPOUND:CHEMBL744"] });
expect(res['CHEMBL.COMPOUND:CHEMBL744'][0]).toBeInstanceOf(ResolvableBioEntity);
expect(res['CHEMBL.COMPOUND:CHEMBL744'][0].dbIDs["PUBCHEM.COMPOUND"]).toEqual(["5070"]);
})

test("Test valid inputs from multiple semantic types should be corretly resolved", async () => {
const resolver = new BioLinkBasedResolver();
const res = await resolver.resolve({ "Gene": ["NCBIGene:1017"], "ChemicalSubstance": ["DRUGBANK:DB01609"] });
const res = await resolver.resolve({ "Gene": ["NCBIGene:1017"], "SmallMolecule": ["DRUGBANK:DB01609"] });
expect(res).toHaveProperty("NCBIGene:1017");
expect(res['NCBIGene:1017']).toHaveLength(1);
expect(res['NCBIGene:1017'][0]).toBeInstanceOf(ResolvableBioEntity);
Expand Down Expand Up @@ -52,7 +52,7 @@ describe("Test ID Resolver", () => {
const resolver = new BioLinkBasedResolver();
const res = await resolver.resolve({
Gene: [...fakeNCBIGeneInputs, ...fakeOMIMGeneInputs],
ChemicalSubstance: fakeDrugbankInputs
SmallMolecule: fakeDrugbankInputs
})
expect(Object.keys(res)).toHaveLength(fakeDrugbankInputs.length + fakeNCBIGeneInputs.length + fakeOMIMGeneInputs.length);
expect(res['OMIM:0'][0]).toBeInstanceOf(IrresolvableBioEntity)
Expand Down Expand Up @@ -127,7 +127,7 @@ describe("Test ID Resolver", () => {

test("Test input with space in it should be correctly resolved", async () => {
const resolver = new BioLinkBasedResolver();
const res = await resolver.resolve({ "ChemicalSubstance": ["name:Regorafenib", "name:Sunitinib", "name:Imatinib", "name:Ponatinib", "name:Dasatinib", "name:Bosutinib", "name:Imatinib Mesylate"] });
const res = await resolver.resolve({ "SmallMolecule": ["name:Regorafenib", "name:Sunitinib", "name:Imatinib", "name:Ponatinib", "name:Dasatinib", "name:Bosutinib", "name:Imatinib Mesylate"] });
expect(res).toHaveProperty("name:Imatinib Mesylate");
expect(res).toHaveProperty("name:Regorafenib");
expect(res["name:Imatinib Mesylate"]).toHaveLength(1);
Expand Down
4 changes: 2 additions & 2 deletions __tests__/integration/biolink_based_validator.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,11 @@ describe("Integration test for BioLink Based Validator", () => {

test("Item with comma in it should be counted as irresolvable", () => {
const input = {
ChemicalSubstance: ["KEGG:1,2"]
SmallMolecule: ["KEGG:1,2"]
}
const validator = new BioLinkBasedValidator(input);
validator.validate();
expect(validator.resolvable).toEqual({});
expect(validator.irresolvable).toHaveProperty('ChemicalSubstance', ["KEGG:1,2"]);
expect(validator.irresolvable).toHaveProperty('SmallMolecule', ["KEGG:1,2"]);
})
})
Loading

0 comments on commit 839556d

Please sign in to comment.