lib/genome/importers/d_gene/dgene.rb
require 'genome/online_updater'
module Genome; module Importers; module DGene;
class DGene < Genome::OnlineUpdater
attr_reader :file_path
def initialize(file_path)
@file_path = file_path
end
def import
remove_existing_source
create_new_source
create_gene_claims
end
private
def remove_existing_source
Utils::Database.delete_source('dGene')
end
def create_new_source
@source ||= DataModel::Source.create(
{
base_url: 'http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0067980',
site_url: 'http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0067980',
citation: 'Prioritizing Potentially Druggable Mutations with dGene: An Annotation Tool for Cancer Genome Sequencing Data. Kumar RD, Chang LW, Ellis MJ, Bose R. PLoS One. 2013 Jun 27;8(6):e67980. PMID: 23826350.',
source_db_version: '27-Jun-2013',
source_type_id: DataModel::SourceType.POTENTIALLY_DRUGGABLE,
source_db_name: 'dGene',
full_name: 'dGENE - The Druggable Gene List',
license_link: 'https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0067980#pone.0067980.s002',
license: 'Creative Commons Attribution License (Version not specified)'
}
)
end
def create_gene_claims
CSV.foreach(file_path, :headers => true, :col_sep => "\t") do |row|
if row['tax_id'] == '9606'
gene_claim = create_gene_claim(row['Symbol'], 'Gene Symbol')
create_gene_claim_alias(gene_claim, row['GeneID'], 'Gene ID')
row['Synonyms'].split('|').each do |indv_synonym|
create_gene_claim_alias(gene_claim, indv_synonym, 'dGene Synonym')
end
create_gene_claim_category(gene_claim, categories[row['class']])
if row['class'] == 'PI3K' || row['class'] == 'ST_KINASE' || row['class'] == 'Y_KINASE'
create_gene_claim_category(gene_claim, 'KINASE')
end
end
end
end
def categories
@categories ||= {
'GPCR' => 'G PROTEIN COUPLED RECEPTOR',
'NHR' => 'NUCLEAR HORMONE RECEPTOR',
'PI3K' => 'PHOSPHATIDYLINOSITOL 3 KINASE',
'PROTEASE' => 'PROTEASE',
'PROT_INHIB' => 'PROTEASE INHIBITOR',
'PTEN' => 'PTEN FAMILY',
'PTP' => 'PROTEIN PHOSPHATASE',
'PTP_MTMR' => 'MYOTUBULARIN RELATED PROTEIN PHOSPHATASE',
'ST_KINASE' => 'SERINE THREONINE KINASE',
'Y_KINASE' => 'TYROSINE KINASE'
}
end
end
end;end;end