- DGIdb 2.0: mining clinically relevant drug-gene interactions
-
- . Wagner AH, Coffman AC, Ainscough BJ, Spies NC, Skidmore ZL, Campbell
- KM, Krysiak K, Pan D, McMichael JF, Eldred JM, Walker JR, Wilson RK,
- Mardis ER, Griffith M, Griffith OL. Nucleic Acids Research. 2016 Jan
+
-
- DGIdb: mining the druggable genome
-
- . Griffith M, Griffith OL, Coffman AC, Weible JV, McMichael JF, Spies
- NC, Koval J, Das I, Callaway MB, Eldred JM, Miller CA, Subramanian J,
+
+
+ DGIdb: mining the druggable genome.
+ {' '}
+ Griffith M, Griffith OL, Coffman AC, Weible JV, McMichael JF, Spies NC,
+ Koval J, Das I, Callaway MB, Eldred JM, Miller CA, Subramanian J,
Govindan R, Kumar RD, Bose R, Ding L, Walker JR, Larson DE, Dooling DJ,
Smith SM, Ley TJ, Mardis ER, Wilson RK. Nature Methods. 2013
Dec;10(12):1209-10. doi: https://doi.org/10.1038/nmeth.2689. PMID:
diff --git a/server/app/tsv_exporters/gene_interactions_tsv.rb b/server/app/tsv_exporters/gene_interactions_tsv.rb
index f7f40860..d30a6b9e 100644
--- a/server/app/tsv_exporters/gene_interactions_tsv.rb
+++ b/server/app/tsv_exporters/gene_interactions_tsv.rb
@@ -16,7 +16,7 @@ def self.to_row(object: )
i.drug.name,
i.drug.approved ? 'Approved' : 'Not Approved',
i.drug.drug_attributes
- .select { |da| da.name == 'Drug Indications' }
+ .select { |da| da.name == 'Indication' }
.map(&:value)
.join(','),
i.interaction_score
diff --git a/server/lib/genome/importers/api_importers/go/api_client.rb b/server/lib/genome/importers/api_importers/go/api_client.rb
index f6efa3ef..39284b36 100644
--- a/server/lib/genome/importers/api_importers/go/api_client.rb
+++ b/server/lib/genome/importers/api_importers/go/api_client.rb
@@ -22,7 +22,7 @@ def make_get_request(uri)
end
def gene_lookup_base_url(id)
- "http://api.geneontology.org/api/bioentity/function/%22GO:#{id}%22"
+ "https://api.geneontology.org/api/bioentity/function/%22GO:#{id}%22"
end
def params(start, rows)
diff --git a/server/lib/genome/importers/file_importers/caris_molecular_intelligence.rb b/server/lib/genome/importers/file_importers/caris_molecular_intelligence.rb
index 28d54ed9..e99deb15 100644
--- a/server/lib/genome/importers/file_importers/caris_molecular_intelligence.rb
+++ b/server/lib/genome/importers/file_importers/caris_molecular_intelligence.rb
@@ -18,7 +18,7 @@ def create_new_source
{
base_url: 'https://www.carislifesciences.com/molecular-profiling-technology/',
site_url: 'http://www.carismolecularintelligence.com/',
- source_db_version: set_current_date_version,
+ source_db_version: '2020-09-04', # using static file
source_db_name: source_db_name,
full_name: 'Caris Molecular Intelligence',
source_trust_level_id: SourceTrustLevel.EXPERT_CURATED,
diff --git a/server/lib/genome/importers/file_importers/cgi.rb b/server/lib/genome/importers/file_importers/cgi.rb
index 4748d94d..5356ba1f 100644
--- a/server/lib/genome/importers/file_importers/cgi.rb
+++ b/server/lib/genome/importers/file_importers/cgi.rb
@@ -23,7 +23,7 @@ def create_new_source
pmid: '29592813',
pmcid: 'PMC5875005',
doi: '10.1186/s13073-018-0531-8',
- source_db_version: set_current_date_version,
+ source_db_version: '2022-02-01', # using static file
source_db_name: source_db_name,
full_name: 'Cancer Genome Interpreter',
license: License::CC_BY_NC_4_0,
diff --git a/server/lib/genome/importers/file_importers/clearity_foundation_biomarkers.rb b/server/lib/genome/importers/file_importers/clearity_foundation_biomarkers.rb
index fd481b7c..7e5c5874 100644
--- a/server/lib/genome/importers/file_importers/clearity_foundation_biomarkers.rb
+++ b/server/lib/genome/importers/file_importers/clearity_foundation_biomarkers.rb
@@ -18,6 +18,7 @@ def create_new_source
{
base_url: 'http://www.clearityfoundation.org/healthcare-pros/drugs-and-biomarkers.aspx',
site_url: 'https://www.clearityfoundation.org/healthcare-pros/drugs-and-biomarkers.aspx',
+ citation: 'http://www.clearityfoundation.org/healthcare-pros/drugs-and-biomarkers.aspx',
source_db_version: '26-July-2013',
source_trust_level_id: SourceTrustLevel.EXPERT_CURATED,
source_db_name: source_db_name,
diff --git a/server/lib/genome/importers/file_importers/clearity_foundation_clinical_trial.rb b/server/lib/genome/importers/file_importers/clearity_foundation_clinical_trial.rb
index e4390c66..dc474891 100644
--- a/server/lib/genome/importers/file_importers/clearity_foundation_clinical_trial.rb
+++ b/server/lib/genome/importers/file_importers/clearity_foundation_clinical_trial.rb
@@ -18,6 +18,7 @@ def create_new_source
{
base_url: 'https://www.clearityfoundation.org/form/findtrials.aspx',
site_url: 'https://www.clearityfoundation.org/form/findtrials.aspx',
+ citation: 'https://www.clearityfoundation.org/form/findtrials.aspx',
source_db_version: '15-June-2013',
source_trust_level_id: SourceTrustLevel.EXPERT_CURATED,
source_db_name: source_db_name,
diff --git a/server/lib/genome/importers/file_importers/drugbank.rb b/server/lib/genome/importers/file_importers/drugbank.rb
index 18d1480a..7547848a 100644
--- a/server/lib/genome/importers/file_importers/drugbank.rb
+++ b/server/lib/genome/importers/file_importers/drugbank.rb
@@ -31,7 +31,7 @@ def create_new_source
pmid: '29126136',
pmcid: 'PMC5753335',
doi: '10.1093/nar/gkx1037',
- source_db_version: '5.1.9',
+ source_db_version: '5.1.10',
source_db_name: 'DrugBank',
full_name: 'DrugBank - Open Data Drug & Drug Target Database',
license: License::CUSTOM_NON_COMMERCIAL,
diff --git a/server/lib/genome/importers/file_importers/dtc.rb b/server/lib/genome/importers/file_importers/dtc.rb
index 4608045b..94abfac0 100644
--- a/server/lib/genome/importers/file_importers/dtc.rb
+++ b/server/lib/genome/importers/file_importers/dtc.rb
@@ -27,7 +27,7 @@ def create_new_source
pmid: '30219839',
pmcid: 'PMC6146131',
doi: '10.1093/database/bay083',
- source_db_version: set_current_date_version,
+ source_db_version: '2020-09-02', # using static file
source_db_name: source_db_name,
full_name: 'Drug Target Commons',
license: License::CC_BY_NC_SA_3_0,
diff --git a/server/lib/genome/importers/file_importers/fda.rb b/server/lib/genome/importers/file_importers/fda.rb
index 786f96fe..ce3b9f78 100644
--- a/server/lib/genome/importers/file_importers/fda.rb
+++ b/server/lib/genome/importers/file_importers/fda.rb
@@ -18,6 +18,7 @@ def create_new_source
{
base_url: 'https://www.fda.gov/drugs/science-and-research-drugs/table-pharmacogenomic-biomarkers-drug-labeling',
site_url: 'https://www.fda.gov/drugs/science-and-research-drugs/table-pharmacogenomic-biomarkers-drug-labeling',
+ citation: 'https://www.fda.gov/drugs/science-and-research-drugs/table-pharmacogenomic-biomarkers-drug-labeling',
source_db_version: set_current_date_version,
source_db_name: source_db_name,
full_name: 'FDA Pharmacogenomic Biomarkers',
diff --git a/server/lib/genome/importers/file_importers/foundation_one_genes.rb b/server/lib/genome/importers/file_importers/foundation_one_genes.rb
index 24d784f9..db075a22 100644
--- a/server/lib/genome/importers/file_importers/foundation_one_genes.rb
+++ b/server/lib/genome/importers/file_importers/foundation_one_genes.rb
@@ -23,7 +23,7 @@ def create_new_source
pmid: '22585170',
pmcid: 'PMC3353152',
doi: '10.1158/2159-8290.CD-11-0184',
- source_db_version: set_current_date_version,
+ source_db_version: '2020-09-03', # using static file
source_trust_level_id: SourceTrustLevel.EXPERT_CURATED,
source_db_name: source_db_name,
full_name: 'Foundation One',
diff --git a/server/lib/genome/importers/file_importers/guide_to_pharmacology.rb b/server/lib/genome/importers/file_importers/guide_to_pharmacology.rb
index e9d1a623..e6d159e1 100644
--- a/server/lib/genome/importers/file_importers/guide_to_pharmacology.rb
+++ b/server/lib/genome/importers/file_importers/guide_to_pharmacology.rb
@@ -49,7 +49,6 @@ def create_new_source
license: License::CC_BY_SA_4_0,
license_link: 'https://www.guidetopharmacology.org/about.jsp'
)
- @source.source_db_version = set_current_date_version
@source.source_types << SourceType.find_by(type: 'interaction')
@source.source_types << SourceType.find_by(type: 'potentially_druggable')
@source.save
@@ -58,12 +57,12 @@ def create_new_source
def import_gene_claims
refseq_id_pattern = /^((AC|AP|NC|NG|NM|NP|NR|NT|NW|XM|XP|XR|YP|ZP)_\d+|(NZ\_[A-Z]{4}\d+))(\.\d+)?$/
- CSV.foreach(gene_file_path, headers: true) do |line|
- gene_name = line['Human Entrez Gene']
- next if blank?(gene_name) || gene_name.include?('|')
+ CSV.foreach(gene_file_path, headers: true, skip_lines: /GtoPdb Version/) do |line|
+ gene_lui = line['Human Entrez Gene']
+ next if blank?(gene_lui) || gene_lui.include?('|')
- gene_claim = create_gene_claim("ncbigene:#{gene_name}", GeneNomenclature::NCBI_ID)
- target_to_entrez[line['Target id']] = gene_name
+ gene_claim = create_gene_claim("NCBIGENE:#{gene_lui}", GeneNomenclature::NCBI_ID)
+ target_to_entrez[line['Target id']] = gene_lui
unless blank?(line['HGNC id'])
create_gene_claim_alias(gene_claim, "hgnc:#{line['HGNC id']}", GeneNomenclature::HGNC_ID)
end
@@ -112,52 +111,57 @@ def import_gene_claims
end
def import_interaction_claims
- CSV.foreach(interaction_file_path, headers: true) do |line|
- next unless valid_line?(line)
+ CSV.foreach(interaction_file_path, headers: true, skip_lines: /GtoPdb Version/) do |line|
+ next unless valid_interaction_line?(line)
- gene_claim = GeneClaim.first_or_create(name: "NCBIGENE:#{line['target_id']}")
+ gene_claim = create_gene_claim("NCBIGENE:#{line['Target ID']}", GeneNomenclature::NCBI_ID)
create_gene_claim_aliases(gene_claim, line)
- drug_claim = create_drug_claim("pubchem.substance:#{line['ligand_pubchem_sid']}",
- DrugNomenclature::PUBCHEM_SUBSTANCE_ID)
+ drug_claim = create_drug_claim("iuphar.ligand:#{line['Ligand ID']}".upcase,
+ DrugNomenclature::GTOP_LIGAND_ID)
create_drug_claim_aliases(drug_claim, line)
- unless blank?(line['ligand_species'])
- create_drug_claim_attribute(drug_claim, DrugAttributeName::SPECIES_NAME, line['ligand_species'])
+ unless blank?(line['Ligand Species'])
+ create_drug_claim_attribute(drug_claim, DrugAttributeName::SPECIES_NAME, line['Ligand Species'])
end
- create_drug_claim_approval_rating(drug_claim, 'Approved') if line['approved_drug'] == 't'
+ create_drug_claim_approval_rating(drug_claim, 'Approved') if line['Approved'] == 't'
interaction_claim = create_interaction_claim(gene_claim, drug_claim)
- type = line['type'].downcase
+ type = line['Type'].downcase
create_interaction_claim_type(interaction_claim, type) unless type == 'none'
- unless blank?(line['pubmed_ids'])
- line['pubmed_ids'].split('|').each do |pmid|
+ unless blank?(line['Pubmed ID'])
+ line['Pubmed ID'].split('|').each do |pmid|
create_interaction_claim_publication(interaction_claim, pmid)
end
end
create_interaction_claim_attributes(interaction_claim, line)
- create_interaction_claim_link(interaction_claim, 'Ligand Biological Activity', "https://www.guidetopharmacology.org/GRAC/LigandDisplayForward?ligandId=#{line['ligand_id']}&tab=biology")
+ create_interaction_claim_link(interaction_claim, 'Ligand Biological Activity', "https://www.guidetopharmacology.org/GRAC/LigandDisplayForward?ligandId=#{line['Ligand ID']}&tab=biology")
end
backfill_publication_information
end
- def valid_line?(line)
- line['target_species'] == 'Human' && blank?(line['target_ligand']) && !blank?(line['ligand_pubchem_sid']) && !blank?(line['target_ensembl_gene_id']) && !blank?(target_to_entrez[line['target_id']])
+ # Valid interactions should:
+ # * describe humans
+ # * have pubchem substance IDs to ensure drug descriptiveness
+ # * have ensembl gene IDs to ensure gene descriptiveness
+ # * have NCBI gene IDs to ensure gene descriptiveness
+ def valid_interaction_line?(line)
+ line['Target Species'] == 'Human' && blank?(line['Target Ligand']) && !blank?(line['Ligand PubChem SID']) && !blank?(line['Target Ensembl Gene ID']) && !blank?(target_to_entrez[line['Target ID']])
end
def create_gene_claim_aliases (gene_claim, line)
- create_gene_claim_alias(gene_claim, line['target'], GeneNomenclature::NAME) unless blank?(line['target'])
- unless blank?(line['target_ensembl_gene_id'])
- line['target_ensembl_gene_id'].split('|').each do |ensembl_id|
+ create_gene_claim_alias(gene_claim, line['Target'], GeneNomenclature::NAME) unless blank?(line['Target'])
+ unless blank?(line['Target Ensembl Gene ID'])
+ line['Target Ensembl Gene ID'].split('|').each do |ensembl_id|
create_gene_claim_alias(gene_claim, "ensembl:#{ensembl_id}", GeneNomenclature::NCBI_ID)
end
end
- unless blank?(line['target_gene_symbol'])
- line['target_gene_symbol'].split('|').each do |gene_symbol|
+ unless blank?(line['Target Gene Symbol'])
+ line['Target Gene Symbol'].split('|').each do |gene_symbol|
create_gene_claim_alias(gene_claim, gene_symbol, GeneNomenclature::SYMBOL)
end
end
- unless blank?(line['target_uniprot'])
- line['target_uniprot'].split('|').each do |uniprot_id|
+ unless blank?(line['Target UniProt ID'])
+ line['Target UniProt ID'].split('|').each do |uniprot_id|
create_gene_claim_alias(gene_claim, "uniprot:#{uniprot_id}", GeneNomenclature::UNIPROTKB_ID)
end
end
@@ -168,10 +172,12 @@ def strip_tags(drug_alias)
end
def create_drug_claim_aliases(drug_claim, line)
- create_drug_claim_alias(drug_claim, strip_tags(line['ligand']).upcase, DrugNomenclature::GTOP_LIGAND_NAME)
- return if blank?(line['ligand_gene_symbol'])
+ create_drug_claim_alias(drug_claim, strip_tags(line['Ligand']).upcase, DrugNomenclature::GTOP_LIGAND_NAME)
+ create_drug_claim_alias(drug_claim, "pubchem.substance:#{line['Ligand PubChem SID']}", DrugNomenclature::PUBCHEM_SUBSTANCE_ID)
- line['ligand_gene_symbol'].split('|').each do |gene_symbol|
+ return if blank?(line['Ligand Gene Symbol'])
+
+ line['Ligand Gene Symbol'].split('|').each do |gene_symbol|
create_drug_claim_attribute(drug_claim, DrugAttributeName::GENE_SYMBOL, gene_symbol)
end
end
@@ -182,13 +188,13 @@ def blank?(value)
def create_interaction_claim_attributes(interaction_claim, line)
attributes = {
- InteractionAttributeName::CONTEXT => line['ligand_context'],
- InteractionAttributeName::BINDING_SITE => line['receptor_site'],
- InteractionAttributeName::ASSAY => line['assay_description'],
- InteractionAttributeName::MOA => line['action'],
- InteractionAttributeName::DETAILS => line['action_comment'],
- InteractionAttributeName::ENDOGENOUS_DRUG => line['endogenous'],
- InteractionAttributeName::DIRECT => line['primary_target']
+ InteractionAttributeName::CONTEXT => line['Ligand Context'],
+ InteractionAttributeName::BINDING_SITE => line['Receptor Site'],
+ InteractionAttributeName::ASSAY => line['Assay Description'],
+ InteractionAttributeName::MOA => line['Action'],
+ InteractionAttributeName::DETAILS => line['Action comment'],
+ InteractionAttributeName::ENDOGENOUS_DRUG => line['Endogenous'],
+ InteractionAttributeName::DIRECT => line['Primary Target']
}
boolean_parser = {
't' => 'True',
diff --git a/server/lib/genome/importers/file_importers/pharmgkb.rb b/server/lib/genome/importers/file_importers/pharmgkb.rb
index cebd2680..338855ad 100644
--- a/server/lib/genome/importers/file_importers/pharmgkb.rb
+++ b/server/lib/genome/importers/file_importers/pharmgkb.rb
@@ -23,7 +23,7 @@ def create_new_source
pmid: '34216021',
pmcid: 'PMC8457105',
doi: '10.1002/cpt.2350',
- source_db_version: set_current_date_version,
+ source_db_version: '2020-08-18', # using static file, see issue #420
source_db_name: source_db_name,
full_name: 'PharmGKB - The Pharmacogenomics Knowledgebase',
license: License::CC_BY_SA_4_0,
diff --git a/server/lib/genome/names.rb b/server/lib/genome/names.rb
index 31e2dc21..e0096a1b 100644
--- a/server/lib/genome/names.rb
+++ b/server/lib/genome/names.rb
@@ -35,6 +35,7 @@ module DrugNomenclature
WIKIDATA_ID = 'Wikidata ID'
CONCEPT_ID = 'Concept ID'
GTOP_LIGAND_NAME = 'GuideToPharmacology Ligand Name'
+ GTOP_LIGAND_ID = 'GuideToPharmacology Ligand ID'
DRUGBANK_ID = 'DrugBank ID'
PHARMGKB_ID = 'PharmGKB ID'
CHEMBL_ID = 'ChEMBL ID'