Skip to content

Commit

Permalink
Merge pull request #399 from griffithlab/interaction_linkout
Browse files Browse the repository at this point in the history
WIP: Add linkout to source's interaction claim pages
  • Loading branch information
susannasiebert committed Jul 21, 2020
2 parents 122cb6e + a9e3516 commit 4580f06
Show file tree
Hide file tree
Showing 32 changed files with 157 additions and 21 deletions.
2 changes: 1 addition & 1 deletion app/controllers/interactions_controller.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
class InteractionsController < ApplicationController
def show
interaction = DataModel::Interaction.find(params[:id])
interaction = DataModel::Interaction.for_show.find(params[:id])
@interaction = InteractionPresenter.new(interaction)
@title = @interaction.display_name
end
Expand Down
4 changes: 4 additions & 0 deletions app/models/data_model/interaction.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,9 @@ def directionality
def self.for_tsv
eager_load(:gene, :drug, :interaction_types, :sources)
end

def self.for_show
eager_load(:gene, :drug, :interaction_types, :interaction_attributes, :publications, interaction_claims: [:drug_claim, :gene_claim, :interaction_claim_types, :interaction_claim_attributes, :publications, :interaction_claim_links, source: [:source_type]])
end
end
end
3 changes: 2 additions & 1 deletion app/models/data_model/interaction_claim.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ class InteractionClaim < ::ActiveRecord::Base
include Genome::Extensions::UUIDPrimaryKey

has_many :interaction_claim_attributes, inverse_of: :interaction_claim
has_many :interaction_claim_links, inverse_of: :interaction_claim
belongs_to :gene_claim, inverse_of: :interaction_claims
belongs_to :drug_claim, inverse_of: :interaction_claims
belongs_to :source, inverse_of: :interaction_claims, counter_cache: true
Expand All @@ -11,7 +12,7 @@ class InteractionClaim < ::ActiveRecord::Base
has_and_belongs_to_many :publications

def self.for_show
eager_load(:interaction_claim_types, :interaction_claim_attributes, :source, :drug_claim, gene_claim: [:gene, :source])
eager_load(:interaction_claim_types, :interaction_claim_attributes, :source, :publications, :interaction_claim_links, :drug_claim, gene_claim: [:gene], interaction: [:gene, :drug])
end

def self.for_tsv
Expand Down
6 changes: 6 additions & 0 deletions app/models/data_model/interaction_claim_link.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module DataModel
class InteractionClaimLink < ::ActiveRecord::Base
include Genome::Extensions::UUIDPrimaryKey
belongs_to :interaction_claim, inverse_of: :interaction_claim_attributes
end
end
1 change: 1 addition & 0 deletions app/presenters/interaction_claim_presenter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ def as_json
interaction_types: @interaction_claim.interaction_claim_types.map{|t| t.type},
attributes: @interaction_claim.interaction_claim_attributes.map{|a| ClaimAttributePresenter.new(a).as_json},
publications: @interaction_claim.publications.map(&:pmid),
source_links: @interaction_claim.interaction_claim_links.map{|l| {url: l.link_url, text: l.link_text} },
}
end
end
14 changes: 12 additions & 2 deletions app/views/interaction_claims/_interaction_claim.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,22 @@
%a{href: PMID.pubmed_url(publication.pmid)}
= publication.citation
%div{class: "cell category", style: "float: right; width: 50%"}
%div(class="item-panel")
%div{class: "item-panel", style:"margin-bottom: 10px"}
%h4
Other Info:
%div{style: "height: 456px; overflow-y: scroll; "}
%div{style: "height: 197px; overflow-y: scroll; "}
%table{class: "table table-condensed table-striped", id: "table_info"}
-interaction_claim.interaction_claim_attributes.each do |attribute|
%tr
%td{style: "width: 300px"}=attribute.name
%td{style: "width: 350px"}=attribute.value
%div(class="item-panel")
%h4
Source Links:
%div{style: "height: 198px; overflow-y: scroll; "}
%table{class: "table table-condensed table-striped", id: "table_info"}
-interaction_claim.interaction_claim_links.each do |link|
%tr
%td
%a{href: link.link_url}
= link.link_text
13 changes: 11 additions & 2 deletions app/views/interaction_claims/_interaction_claim_summary.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,21 @@
%td=attribute.value
%div(class="cell category")
%div(class="item-panel")
%div{class: "item-panel", style: "margin-bottom:10px"}
%h4
Publications:
%table{class: "table table-condensed table-striped", style: "table-layout:fixed;" }
-interaction_claim.publications[0..2].each do |publication|
%tr
%td
%a{href: PMID.pubmed_url(publication.pmid)}
= publication.citation
= publication.citation
%div(class="item-panel")
%h4
Source Links:
%table{class: "table table-condensed table-striped", style: "table-layout:fixed;" }
-interaction_claim.interaction_claim_links.each do |link|
%tr
%td
%a{href: link.link_url}
= link.link_text
2 changes: 1 addition & 1 deletion data
Submodule data updated from 3eb1cb to 8d921d
12 changes: 12 additions & 0 deletions db/migrate/20200615173440_add_interaction_claim_linkout.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
class AddInteractionClaimLinkout < ActiveRecord::Migration[6.0]
def change
create_table :interaction_claim_links, id: false do |t|
t.text :id, null: false, primary_key: true
t.text :interaction_claim_id, null: false
t.string :link_text, null: false
t.string :link_url, null: false
end

add_foreign_key :interaction_claim_links, :interaction_claims
end
end
33 changes: 31 additions & 2 deletions db/structure.sql
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ CREATE FUNCTION public.clean(text) RETURNS text

SET default_tablespace = '';

SET default_with_oids = false;
SET default_table_access_method = heap;

--
-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -
Expand Down Expand Up @@ -495,6 +495,18 @@ CREATE TABLE public.interaction_claim_attributes (
);


--
-- Name: interaction_claim_links; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.interaction_claim_links (
id text NOT NULL,
interaction_claim_id text NOT NULL,
link_text character varying NOT NULL,
link_url character varying NOT NULL
);


--
-- Name: interaction_claim_types; Type: TABLE; Schema: public; Owner: -
--
Expand Down Expand Up @@ -924,6 +936,14 @@ ALTER TABLE ONLY public.interaction_claim_attributes
ADD CONSTRAINT interaction_claim_attributes_pkey PRIMARY KEY (id);


--
-- Name: interaction_claim_links interaction_claim_links_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.interaction_claim_links
ADD CONSTRAINT interaction_claim_links_pkey PRIMARY KEY (id);


--
-- Name: interaction_claim_types_interaction_claims interaction_claim_types_interaction_claims_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
Expand Down Expand Up @@ -1866,6 +1886,14 @@ ALTER TABLE ONLY public.drug_aliases
ADD CONSTRAINT fk_rails_4d255ac147 FOREIGN KEY (drug_id) REFERENCES public.drugs(id) ON DELETE CASCADE;


--
-- Name: interaction_claim_links fk_rails_af235a7f08; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.interaction_claim_links
ADD CONSTRAINT fk_rails_af235a7f08 FOREIGN KEY (interaction_claim_id) REFERENCES public.interaction_claims(id);


--
-- Name: drugs fk_rails_de0c74dec1; Type: FK CONSTRAINT; Schema: public; Owner: -
--
Expand Down Expand Up @@ -2027,6 +2055,7 @@ INSERT INTO "schema_migrations" (version) VALUES
('20170913202927'),
('20170914145053'),
('20191016180948'),
('20191107152512');
('20191107152512'),
('20200615173440');


8 changes: 7 additions & 1 deletion lib/genome/importers/cgi/new_cgi.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ def create_interaction_claims
if row['Source'].include?('PMID')
add_interaction_claim_publications(interaction_claim, row['Source'])
end
create_interaction_claim_link(interaction_claim, 'Cancer Biomarkers database', 'https://www.cancergenomeinterpreter.org/biomarkers')
end
else
gene_claim = create_gene_claim(row['Gene'], 'CGI Gene Name')
Expand All @@ -65,6 +66,7 @@ def create_interaction_claims
if row['Source'].include?('PMID')
add_interaction_claim_publications(interaction_claim, row['Source'])
end
create_interaction_claim_link(interaction_claim, 'Cancer Biomarkers database', 'https://www.cancergenomeinterpreter.org/biomarkers')
end
end
if row['Drug'].include?(';')
Expand All @@ -81,6 +83,7 @@ def create_interaction_claims
if row['Source'].include?('PMID')
add_interaction_claim_publications(interaction_claim, row['Source'])
end
create_interaction_claim_link(interaction_claim, 'Cancer Biomarkers database', 'https://www.cancergenomeinterpreter.org/biomarkers')
end
else
gene_claim = create_gene_claim(row['Gene'], 'CGI Gene Name')
Expand All @@ -91,6 +94,7 @@ def create_interaction_claims
if row['Source'].include?('PMID')
add_interaction_claim_publications(interaction_claim, row['Source'])
end
create_interaction_claim_link(interaction_claim, 'Cancer Biomarkers database', 'https://www.cancergenomeinterpreter.org/biomarkers')
end
end
end
Expand All @@ -105,6 +109,7 @@ def create_interaction_claims
if row['Source'].include?('PMID')
add_interaction_claim_publications(interaction_claim, row['Source'])
end
create_interaction_claim_link(interaction_claim, 'Cancer Biomarkers database', 'https://www.cancergenomeinterpreter.org/biomarkers')
end
else
gene_claim = create_gene_claim(row['Gene'], 'CGI Gene Name')
Expand All @@ -114,6 +119,7 @@ def create_interaction_claims
if row['Source'].include?('PMID')
add_interaction_claim_publications(interaction_claim, row['Source'])
end
create_interaction_claim_link(interaction_claim, 'Cancer Biomarkers database', 'https://www.cancergenomeinterpreter.org/biomarkers')
end
end
end
Expand All @@ -137,4 +143,4 @@ def add_interaction_claim_publications(interaction_claim, source_string)
end
end
end
end; end; end
end; end; end
6 changes: 5 additions & 1 deletion lib/genome/importers/chembl/chembl_tsv_importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,11 @@ def self.run(tsv_path)
attribute :action_type, name: 'Interaction Type', transform: downcase, unless: blank_filter
end
end.save!
s = DataModel::Source.where(source_db_name: source_info['source_db_name'])
s.interaction_claims.each do |ic|
Genome::OnlineUpdater.new.create_interaction_claim_link(ic, 'Drug Mechanisms', "https://www.ebi.ac.uk/chembl/compound_report_card/#{ic.drug_claim.name}/#MechanismOfAction")
end
end
end
end
end
end
1 change: 1 addition & 0 deletions lib/genome/importers/drug_bank/new_drug_bank.rb
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ def import_claims
row['pmid'].split(DELIMITER).each do |pmid|
create_interaction_claim_publication(interaction_claim, pmid) unless pmid == 'N/A'
end
create_interaction_claim_link(interaction_claim, "Drug Target", "https://www.drugbank.ca/drugs/#{row['drug_id']}#targets")
interaction_claim.save
end
end
Expand Down
4 changes: 3 additions & 1 deletion lib/genome/importers/fda/fda.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,15 @@ def create_drug_claims(row, gene_claim, fusion_protein)
if not fusion_protein.nil?
create_interaction_claim_attribute(interaction_claim, 'Fusion protein', fusion_protein)
end
create_interaction_claim_link(interaction_claim, 'Table of Pharmacogenomic Biomarkers in Drug Labeling', 'https://www.fda.gov/drugs/science-and-research-drugs/table-pharmacogenomic-biomarkers-drug-labeling')
end
else
drug_claim = create_drug_claim(row['Drug'], row['Drug'], 'FDA Drug Name')
interaction_claim = create_interaction_claim(gene_claim, drug_claim)
if not fusion_protein.nil?
create_interaction_claim_attribute(interaction_claim, 'Fusion protein', fusion_protein)
end
create_interaction_claim_link(interaction_claim, 'Table of Pharmacogenomic Biomarkers in Drug Labeling', 'https://www.fda.gov/drugs/science-and-research-drugs/table-pharmacogenomic-biomarkers-drug-labeling')
end
end

Expand All @@ -72,4 +74,4 @@ def create_interaction_claims
end
end
end
end; end; end
end; end; end
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ def import_claims
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")
end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ def self.run(tsv_path)
attribute :interaction_type, name: 'Interaction Type', unless: blank_filter
end
end.save!
s = DataModel::Source.where(source_db_name: source_info['source_db_name'])
s.interaction_claims.each do |ic|
Genome::OnlineUpdater.new.create_interaction_claim_link(ic, 'Overview of Targeted Therapies for Cancer', "https://www.mycancergenome.org/content/page/overview-of-targeted-therapies-for-cancer/")
end
end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ def self.run(tsv_path)
attribute :indication_of_interaction, name: 'Indication of Interaction'
end
end.save!
s = DataModel::Source.where(source_db_name: source_info['source_db_name'])
s.interaction_claims.each do |ic|
Genome::OnlineUpdater.new.create_interaction_claim_link(ic, 'Clinical Trials', "https://www.mycancergenome.org/content/clinical_trials/")
end
end
end
end
Expand Down
1 change: 1 addition & 0 deletions lib/genome/importers/nci/nci.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ def create_interaction_claims
create_drug_claim_alias(drug_claim, row['NCI drug code'], 'NCI drug code')
interaction_claim = create_interaction_claim(gene_claim, drug_claim)
create_interaction_claim_publication(interaction_claim, row['PMID'])
create_interaction_claim_link(interaction_claim, "The Cancer Gene Index Gene-Disease and Gene-Compound XML Documents", 'https://wiki.nci.nih.gov/display/cageneindex/The+Cancer+Gene+Index+Gene-Disease+and+Gene-Compound+XML+Documents')
end
end
end
Expand Down
4 changes: 4 additions & 0 deletions lib/genome/importers/pharmgkb/pharmgkb_tsv_importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ def self.run(tsv_path)
end
end
end
s = DataModel::Source.where(source_db_name: source_info['source_db_name'])
s.interaction_claims.each do |ic|
Genome::OnlineUpdater.new.create_interaction_claim_link(ic, 'Drug Label Annotations', "https://www.pharmgkb.org/chemical/#{ic.drug_claim.name}/labelAnnotation")
end
end
end
end
Expand Down
6 changes: 5 additions & 1 deletion lib/genome/importers/talc/talc_tsv_importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,11 @@ def self.run(tsv_path)

end
end.save!
s = DataModel::Source.where(source_db_name: source_info['source_db_name'])
s.interaction_claims.each do |ic|
Genome::OnlineUpdater.new.create_interaction_claim_link(ic, s.citation, "https://www.sciencedirect.com/science/article/pii/S1525730413002350")
end
end
end
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ def self.run(tsv_path)
attribute :target_novelty, name: 'Novel drug target', unless: blank_filter
end
end.save!
s = DataModel::Source.where(source_db_name: source_info['source_db_name'])
s.interaction_claims.each do |ic|
Genome::OnlineUpdater.new.create_interaction_claim_link(ic, s.citation, "https://www.annualreviews.org/doi/10.1146/annurev-pharmtox-011613-135943")
end
end
end
end
Expand Down
4 changes: 4 additions & 0 deletions lib/genome/importers/tend/tend_tsv_importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ def self.run(tsv_path)
end
end
end
s = DataModel::Source.where(source_db_name: source_info['source_db_name'])
DataModel::InteractionClaim.where(source_id: s.id).each do |ic|
Genome::OnlineUpdater.new.create_interaction_claim_link(ic, 'Trends in the exploitation of novel drug targets, Table 1', "https://www.nature.com/articles/nrd3478/tables/1")
end
end
end
end
Expand Down
10 changes: 7 additions & 3 deletions lib/genome/importers/ttd/ttd_tsv_importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ module Importers
module TTD
def source_info
{
base_url: 'http://bidd.nus.edu.sg/group/cjttd/ZFTTD',
site_url: 'http://bidd.nus.edu.sg/group/ttd/ttd.asp',
base_url: 'http://db.idrblab.net/ttd/',
site_url: 'http://bidd.nus.edu.sg/group/cjttd/',
citation: "Update of TTD: Therapeutic Target Database. Zhu F, Han BC, ..., Zheng CJ, Chen YZ. Nucleic Acids Res. 38(suppl 1):D787-91, 2010. PMID: 19933260.",
source_db_version: '4.3.02 (2011.08.25)',
source_type_id: DataModel::SourceType.INTERACTION,
Expand Down Expand Up @@ -36,7 +36,11 @@ def self.run(tsv_path)
end
end
end
s = DataModel::Source.find_by(source_db_name: source_info['source_db_name'])
s.interaction_claims.each do |ic|
Genome::OnlineUpdater.new.create_interaction_claim_link(ic, 'TTD Target Information', "http://idrblab.net/ttd/data/target/details/#{ic.gene_claim.name}")
end
end
end
end
end
end

0 comments on commit 4580f06

Please sign in to comment.