HCLS/DemoScript

From W3C Wiki
Jump to: navigation, search


HCLS DEMO USE CASE SCRIPT

Research Questions Actions Search Results
What is a good therapeutic target for AD? Search SWAN for target OR therap*(citesConcept `TherapeuticTarget` - see query 1 below) Returns 3 hypotheses [add specific statements]
What is the mechanism of beta amyloid toxicity? Search SWAN for mechanism OR toxicity(citesConcept `DiseaseProcess` - see query 2 below) Returns 2 RSs -Gong - #33; Walsh - #28
How does beta amyloid impair synaptic function? Browse through both Gong and Walsh hypotheses Gong - #9; #30; Walsh - #24;#21;#25
How might beta amyloid alter LTP in CA1 neurons? Search BrainPharm for CA1 AND beta amyloid Is there a URI for the search result?
What K channels genes might be involved? Search SWAN for K channel AND gene Plant hypothesis – RS8 - IKA may be mediated by voltage-gated K+ channel α-subunits Kv4.2 and Kv4.3…
Is Kv4.2 also expressed in CA1 hippocampal neurons? Search Allen Brain Atlas Query = structac=HPF[xlevel=1] AND altgenesym=Kcnd2. One needs to know that the gene symbol for Kv4.2 is Kcnd2; Kv4.2 is a synonym, hence I used altgenesym here. potassium voltage-gated channel, Shal-related family, member 2 URL = javascript:showSeries('16281');
Is there a genetic linkage of Kv4.2 to AD? Search AlzGene for potassium channel Note: create short list of AlzGene entries for Demo Kv4.2 and Kv4.3 are not found, but another K channel,KCNJ6, has positive association of 1 polymorphism to AD. URL = URL
ALTERNATIVE IDEA – MAY NOT BE FEASIBLE FOR MAY 9: What genes involved in LTP are 1) expressed in CA1 neurons and 2) are positively associated with AD? Query KEGG for Pathway: LTP Result: List of species.
Query Allen Brain on list of genes from KEGG AND hippocampal formation Result: TBD
Query AlzGene on list of genes from Allen Brain Result - TBD
What other data is there on Kv4.2 and LTP? Search PubMed (or SWAN) for Kv4.2 AND LTP PubMed, Pmid 17122039, Chen X, et al., J Neurosci
Is Kv4.2 a reasonable therapeutic target for Alzheimer Disease? Search for Kv4.2 as biomarker in AD brain. Where would one look? Need a repository of gene expression data from CA1 in human AD brain. CCDB? NCBI? TBD
Is there a drug that inhibits A-current Kv4.2 channel in hippocampus? Search PubChem for K+ channel OR A-current. Search used: URL: URL Identified 8 K+ channel inhibitors and 2 A-current inhibitors, one used in seizure.

Modifications/Additions to SWAN

The first two steps in the use case make use of text searches, and we would like to instead do vocabulary based queries, which would be more reliable. However, they haven't been curated yet. So to demonstrate we add a few statements of the sort we would later expect, as below. (using turtle in an attempt to be more readable).


# Swan uses "Concepts" to link research statements to biological entities. So we define
# the concepts we will need for now, as they aren't yet implemented or curated.

core:TherapeuticTarget
      rdf:type owl:Class ;
      rdfs:subClassOf core:Concept .

span:Process
      rdf:type owl:Class ;
      rdfs:subClassOf core:Concept .

core:DiseaseProcess
      rdf:type owl:Class ;
      rdfs:subClassOf span:Process .

# Link to Brainpharm test case. 
<http://www.owl-ontologies.com/Ontology1176287179.owl#alzheimers-disease-process> 
      rdf:type owl:Class ;
      rdfs:subClassOf core:DiseaseProcess .

# mark the disease mechanism statements. To be done during curation in the future. These
# are the ones that come up for '''mechanism OR toxicity'''. We would prefer to not do text searches,
# which are not robust.
<urn:lsid:swan.org:researchstatement:ec9b985e-1b4d-48e0-8c97-60184f4811e3>
      rdf:type owl:Thing ;
      core:citesConcept [ rdf:type core:DiseaseProcess]. 

<urn:lsid:swan.org:researchstatement:6fa87b97-b764-4338-a118-2c4d831f14b4>
      rdf:type owl:Thing ;
      core:citesConcept [ rdf:type core:DiseaseProcess]. 

<urn:lsid:swan.org:researchstatement:ba9f5c1a-a67a-4da3-967d-61ebaee9f880>
      rdf:type owl:Thing ;
      core:citesConcept [ rdf:type core:DiseaseProcess]. 

<urn:lsid:swan.org:researchstatement:076efaa9-51d1-43ee-83bf-8ecf298a64eb>
      rdf:type owl:Thing ;
      core:citesConcept [ rdf:type core:DiseaseProcess]. 

# Mark the therapeutic target statements. To be done during curation in the future.
# These are in the use case as search for text '''target OR therap*'''.

<urn:lsid:swan.org:researchstatement:c22a2aae-88c0-486f-8b01-66b4894132b2>
      rdf:type owl:Thing ;
      core:citesConcept <http://example.com/#addl_target1> .

<http://example.com/#addl_target1>
      rdf:type core:TherapeuticTarget ;
      rdfs:label \"ADDL as target\"^^xsd:string .

<urn:lsid:swan.org:researchstatement:183e8937-e409-45bd-a462-245d0b238f7b>
      rdf:type owl:Thing ;
      core:citesConcept <http://example.com/#abeta_target1> .

<http://example.com/#abeta_target1>
      rdf:type core:TherapeuticTarget ;
      rdfs:label \"Abeta as target\"^^xsd:string .



Query 1: Research statements about therapeutic targets

PREFIX swan: <http://swan.mindinformatics.org/ontology/1.0/20070410/core.owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?statement ?title
FROM <http://purl.org/commons/hcls/20070416>
WHERE { 
?statement rdf:type swan:ResearchStatement . 
?statement swan:title ?title . 
?statement swan:citesConcept ?concept . 
?concept rdf:type swan:TherapeuticTarget . } 
Results:
!<urn:lsid:swan.org:researchstatement:c22a2aae-88c0-486f-8b01-66b4894132b2>	"Aβ-lowering compounds that prevent intra- or extracellular oligomerization would be an attractive therapeutic approach to selectively reduce synaptotoxicity."
!<urn:lsid:swan.org:researchstatement:183e8937-e409-45bd-a462-245d0b238f7b>	"ADDLs provide an alternative to plaques as a target for drug discovery"


Query 2 Disease mechanisms associated with those targets

PREFIX collections: <http://swan.mindinformatics.org/ontology/1.0/20070313/collections.owl#>
PREFIX swan: <http://swan.mindinformatics.org/ontology/1.0/20070410/core.owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?statement ?moretitle
FROM <http://purl.org/commons/hcls/20070416>
WHERE { 
?statement rdf:type swan:ResearchStatement . 
?statement swan:title ?title . 
?statement swan:hasResearchStatementQualifier ?qualifier . 
?referencer swan:pointsToDiscourseElement ?statement . 
?list collections:item ?referencer . 
?list collections:item ?more . 
?more swan:pointsToDiscourseElement ?morers . 
?morers swan:title ?moretitle . 
?statement swan:citesConcept ?concept . 
?concept rdf:type swan:TherapeuticTarget . 
?morers swan:citesConcept ?concept2 . 
?concept2 rdf:type swan:DiseaseProcess . } 
Results:
!<urn:lsid:swan.org:researchstatement:c22a2aae-88c0-486f-8b01-66b4894132b2>	"Soluble Aβ oligomers are the principal effectors of synaptic dysfunction and loss that characterize Alzheimer Disease"
!<urn:lsid:swan.org:researchstatement:c22a2aae-88c0-486f-8b01-66b4894132b2>	"Oligomeric Aβ interaction with neurons may induce synaptic changes and cognitive impairment in young APP transgenic mice."
!<urn:lsid:swan.org:researchstatement:c22a2aae-88c0-486f-8b01-66b4894132b2>	"Immunodepletion of Aβ from conditioned media using R1282 antibody completely prevented the block of LTP."
!<urn:lsid:swan.org:researchstatement:183e8937-e409-45bd-a462-245d0b238f7b>	"Memory failure in APP transgenic mice is reversed by anti-Aβ antibodies, and the memory recovery is rapid, occurring within 24 h of a single injection of antibody, without reducing amyloid plaque load."


Gene ontology to find proteins associated with the A-Current

# What protein (records) are associated with the gene ontology function (GO:0005250 : A-type (transient outward) potassium channel activity). Note we need to make an assertion that the realization of GO:0005250 is neurondb's I A current.

prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix go: <http://purl.org/obo/owl/GO#>
prefix ro: <http://www.obofoundry.org/ro/ro.owl#>
select distinct ?gene_record
from <http://purl.org/commons/hcls/goa>
where 
 { ?protein rdfs:subClassOf ?restriction.
   ?restriction owl:onProperty ro:has_function.
   ?restriction owl:someValuesFrom go:GO_0005250.
   ?protein rdfs:subClassOf ?parent.
   ?parent owl:equivalentClass ?res2.
   ?res2 owl:hasValue ?gene_record.
   filter (!(isBlank(?parent)))
 } 

==>

http://purl.org/commons/record/ncbi_gene/30819 (KCND2 human)
http://purl.org/commons/record/ncbi_gene/3752 (KCND2 rat)
http://purl.org/commons/record/ncbi_gene/65180 (KCND2 human)
http://purl.org/commons/record/ncbi_gene/65195 (KCND3 rat)


To associate the genes we found with the above query to the CA1 pyramidal neurons we want to link from the mesh term for Pyramidal Cell to papers then out to genes and see if they are in that set. This is circumstantial, but helpful. We don't yet have pubmed->gene in the store.

Queries for relevant papers using MESH

Let's start with pyramidal cells. We found the identifier using the MESH browser (yes, we could have done this in sparql)


prefix mesh: <http://purl.org/commons/record/mesh/>

select count (?pubmed)
FROM <http://purl.org/commons/hcls/pubmesh>
where 
 { 
      ?pubmed ?p mesh:D017966
}

=> 5328 

too many!


Let's narrow it down by adding more MESH terms, first we found the appropriate channel mesh:D051672 - thanks to June knowing the domain. It's going to be important to map Senselab classes to the appropriate MESH terms for this all to hang together. And we added mesh:D017774 - Long term potentiation. Unfortunately there were no papers that had all 3, so we started loosening up the query. Taking out mesh:D017966, we find 3 papers, the third of which is called "Altered Abeta formation and long-term potentiation in a calsenilin knock-out." That's a 'Bingo' because it was a paper that June wasn't aware of.


prefix mesh: <http://purl.org/commons/record/mesh/>
prefix dc: <http://purl.org/dc/elements/1.1/>
prefix sc: <http://purl.org/science/owl/sciencecommons/>
select ?article  ?title 
FROM <http://purl.org/commons/hcls/pubmesh>
where 
 { 
 #     ?pubmed ?p mesh:D017966. # pyramidal cells (2 out 3 aint bad)
      ?pubmed ?p2 mesh:D051672. # shal potassium channel (KCND1,2,3)
      ?pubmed ?p3 mesh:D017774. # long term potentiation
      ?article sc:identified_by_pmid ?pubmed.
      ?article dc:title ?title
}
==>

http://purl.org/science/article/pmid/11145972 The neuronal MAP kinase cascade: a biochemical signal integration system subserving synaptic plasticity and memory.
http://purl.org/science/article/pmid/11807168 Molecular psychology: roles for the ERK MAP kinase cascade in memory.
http://purl.org/science/article/pmid/14534243 Altered Abeta formation and long-term potentiation in a calsenilin knock-out.


Starting to get ideas about what other queries to do. Here we ask for the other MESH terms associated with that paper.


# All the mesh terms for the bingo paper
prefix skos: <http://www.w3.org/2004/02/skos/core#>

select distinct ?p ?term ?name

from <http://purl.org/commons/hcls/20070416>
from <http://purl.org/commons/hcls/pubmesh>

where
{   graph <http://purl.org/commons/hcls/pubmesh>
    { <http://purl.org/commons/record/pmid/14534243> ?p ?term }

    graph <http://purl.org/commons/hcls/20070416>
     { ?term skos:prefLabel ?name. }
     
} order by ?p

==>

sc:has-as-major-mesh	mesh:D012097	"Repressor Proteins"
sc:has-as-major-mesh	mesh:D024642	"Potassium Channels, Voltage-Gated"
sc:has-as-major-mesh	mesh:D002135Q000172	"Calcium-Binding Proteins - deficiency"
sc:has-as-major-mesh	mesh:D016229Q000096	"Amyloid beta-Protein - biosynthesis"
sc:has-as-major-mesh	mesh:D017774Q000235	"Long-Term Potentiation - genetics"
sc:has-as-minor-mesh	mesh:D000818	"Animals"
sc:has-as-minor-mesh	mesh:D001522	"Behavior, Animal"
sc:has-as-minor-mesh	mesh:D000831	"Animals, Newborn"
sc:has-as-minor-mesh	mesh:D001616	"beta-Galactosidase"
sc:has-as-minor-mesh	mesh:D002135	"Calcium-Binding Proteins"
sc:has-as-minor-mesh	mesh:D002451	"Cell Compartmentation"
sc:has-as-minor-mesh	mesh:D002531	"Cerebellum"
sc:has-as-minor-mesh	mesh:D009043	"Motor Activity"
sc:has-as-minor-mesh	mesh:D004558	"Electric Stimulation"
sc:has-as-minor-mesh	mesh:D006624	"Hippocampus"
sc:has-as-minor-mesh	mesh:D051379	"Mice"
sc:has-as-minor-mesh	mesh:D008810	"Mice, Inbred C57BL"
sc:has-as-minor-mesh	mesh:D011401	"Promoter Regions (Genetics)"
sc:has-as-minor-mesh	mesh:D015221	"Potassium Channels"
sc:has-as-minor-mesh	mesh:D016229	"Amyloid beta-Protein"
sc:has-as-minor-mesh	mesh:D016564	"Amyloid beta-Protein Precursor"
sc:has-as-minor-mesh	mesh:D017774	"Long-Term Potentiation"
sc:has-as-minor-mesh	mesh:D018345	"Mice, Knockout"
sc:has-as-minor-mesh	mesh:D018390	"Gene Targeting"
sc:has-as-minor-mesh	mesh:D018408	"Patch-Clamp Techniques"
sc:has-as-minor-mesh	mesh:D018507	"Gene Expression Regulation, Developmental"
sc:has-as-minor-mesh	mesh:D019706	"Excitatory Postsynaptic Potentials"
sc:has-as-minor-mesh	mesh:D051605	"Kv Channel-Interacting Proteins"
sc:has-as-minor-mesh	mesh:D051672	"Shal Potassium Channels"
sc:has-as-minor-mesh	mesh:D001522Q000502	"Behavior, Animal - physiology"
sc:has-as-minor-mesh	mesh:D001616Q000096	"beta-Galactosidase - biosynthesis"
sc:has-as-minor-mesh	mesh:D001616Q000235	"beta-Galactosidase - genetics"
sc:has-as-minor-mesh	mesh:D002135Q000096	"Calcium-Binding Proteins - biosynthesis"
sc:has-as-minor-mesh	mesh:D002135Q000235	"Calcium-Binding Proteins - genetics"
sc:has-as-minor-mesh	mesh:D002451Q000502	"Cell Compartmentation - physiology"
sc:has-as-minor-mesh	mesh:D002531Q000378	"Cerebellum - metabolism"
sc:has-as-minor-mesh	mesh:D006624Q000378	"Hippocampus - metabolism"
sc:has-as-minor-mesh	mesh:D006624Q000502	"Hippocampus - physiology"
sc:has-as-minor-mesh	mesh:D009043Q000235	"Motor Activity - genetics"
sc:has-as-minor-mesh	mesh:D015221Q000378	"Potassium Channels - metabolism"
sc:has-as-minor-mesh	mesh:D016564Q000378	"Amyloid beta-Protein Precursor - metabolism"
sc:has-as-minor-mesh	mesh:D019706Q000502	"Excitatory Postsynaptic Potentials - physiology"


There's a bit to say about the use of "graph <http://purl.org/commons/hcls/pubmesh> { .... }" in the query. We've been loading the portions of the database into separate named graphs to make it easier to clean up when we make mistakes. However querying over multiple graphs isn't optimized in the current Virtuoso server. By explicitly noting where we expect which triple to come from, which is what the "graph <> {}" scoping does, the query can be run much more quickly.