Presentation is loading. Please wait.

Presentation is loading. Please wait.

Michael Schroeder BioTechnological Center TU Dresden Biotec GoPubMed and beyond: Rules and reasoning for.

Similar presentations


Presentation on theme: "Michael Schroeder BioTechnological Center TU Dresden Biotec GoPubMed and beyond: Rules and reasoning for."— Presentation transcript:

1 Michael Schroeder BioTechnological Center TU Dresden Biotec GoPubMed and beyond: Rules and reasoning for ontology-based literature search

2 By Michael Schroeder, Biotec, REWERSE: a European Network of Excellence nReasoning on the Web with Rules and Semantics nTechnology nRule Markup languages nPolicy specification, composition and conformance nComposition and typing nReasoning-aware querying nEvolution and reactivity nApplication nWeb-based Decision Support for Event, Temporal, and Geographical Data nTowards a Bioinformatics Semantic Web nPersonalised Information Systems nTowards a Bioinformatics Semantic Web nGroups: Dresden, Jena, Lisbon, Linkoeping, Edinburgh, Bucarest, Manchester, Paris nRules and constraints for structure prediction, metabolic pathways, gene expression analysis, ontologies, workflows.

3 By Michael Schroeder, Biotec, GoPubMed and beyond: Rules and reasoning for ontology-based literature search

4 By Michael Schroeder, Biotec, Problem PubMed >12M articles

5 By Michael Schroeder, Biotec, Example Task nWhich enzymes does Levamisole inhibit? nIt is well known that Levamisole inhibits alkaline phosphatase nIt is not well known that Levamisole inhibits phosphofructokinase

6 By Michael Schroeder, Biotec, PubMed Example nA keyword search for levamisole inhibitor produces well over 100 hits in PubMed. nTo find out about specific functions, we have to go through all these papers! nWe are interested in the relevant enzymatic functions. nA refined search for Levamisole inhibitor enzymatic activity produces only 5 hits - a lot of relevant papers have been dropped.

7 By Michael Schroeder, Biotec, GoPubMed Example Query: Levamisole inhibitor Maximum papers: 100 Strict matching 54 papers in biological process 20 in cellular components 72 in molecular function

8 By Michael Schroeder, Biotec, GoPubMed Example Let’s look for some functions: 70 papers including terms, which are enzyme activities

9 By Michael Schroeder, Biotec, GoPubMed Example Transferase 8 Kinase 6 Hydrolase 58 Oxidoreductase 2 Lyase 1

10 By Michael Schroeder, Biotec, GoPubMed Example Alkaline Phosphatase: 52 papers …alkaline phosphatase inhibitor levamisole… Effects of alkaline phosphatase and its inhibitor Levamisole…

11 By Michael Schroeder, Biotec, GoPubMed Example Phosphofructokinase

12 By Michael Schroeder, Biotec, GoPubMed Example Levamisole direclty inhibits tumor phosphofructokinase

13 By Michael Schroeder, Biotec, GoPubMed Example In PubMed the article is listed at position 84! And hence unlikely to be read

14 By Michael Schroeder, Biotec, GoPubMed and beyond: Rules and reasoning for ontology-based literature search

15 By Michael Schroeder, Biotec, Prova

16 By Michael Schroeder, Biotec, Prova nRule-based Java scripting for middleware nCombination of object-oriented and declarative programming nOffer a rule-based platform for distributed agent programming. nExpose logic and agent behaviour as rules; nAccess data sources via wrappers written in Java nMake all Java API from available packages directly accessible from rules; nRun within the Java runtime; nEnable rapid prototyping of applications;

17 By Michael Schroeder, Biotec, PubMed XML Output DEVPED Development (Cambridge, England) Development …

18 By Michael Schroeder, Biotec, Output Year: 2004 ArticleTitle: Developmental potential of defined neural progenitors derived from mouse embryonic stem cells. LastName: Plachta FirstName: Nicolas Initials: N ********************** LastName: Bibel FirstName: Miriam Initials: M ********************** LastName: Tucker FirstName: Kerry Lee Initials: KL ********************** LastName: Barde FirstName: Yves-Alain Initials: YA ****************************************** Year: 2004 ArticleTitle: Eye evolution: a question of genetic promiscuity. LastName: Nilsson ForeName: Dan-E Initials: DE ********************** …

19 By Michael Schroeder, Biotec, Code Snippet %% XML reading tests :- eval(test_xml1()). test_xml1() :- Document=XML("pubmed.xml"), Root = Document.getDocumentElement(), tagname(Root,Elements), Elements.nodes(Element), subtag(Element,SubElements), SubElements.nodes(SubElement), SubElementNodeName = SubElement.getNodeName(), ChildNodes=SubElement.getChildNodes(), ChildNodes.nodes(ChildNode), evaluate(ChildNode). tagname(Root,Elements):- Elements = Root.getElementsByTagName("MedlineCitation"). subtag(Element,SubElements):- SubElements = Element.getElementsByTagName("PubDate"). subtag(Element,SubElements):- SubElements = Element.getElementsByTagName("Article"). subtag(Element,SubElements):- SubElements = Element.getElementsByTagName("Author"). evaluate(ChildNode):- "Year"=ChildNode.getNodeName(), printout(ChildNode). evaluate(ChildNode):- "Initials"=ChildNode.getNodeName(), printout(ChildNode), println([**********************]). evaluate(ChildNode):- "FirstName"=ChildNode.getNodeName(), printout(ChildNode). evaluate(ChildNode):- "ForeName"=ChildNode.getNodeName(), printout(ChildNode). evaluate(ChildNode):- "LastName"=ChildNode.getNodeName(), printout(ChildNode). evaluate(ChildNode):- "ArticleTitle"=ChildNode.getNodeName(), printout(ChildNode). printout(ChildNode):- ChildNodeName = ChildNode.getNodeName(), DataName = ChildNode.getFirstChild(), StringName = DataName.getNodeValue(), println([ChildNodeName, ": ",StringName]). Prolog rules Java objects Unification

20 By Michael Schroeder, Biotec, Traverse the GO tree and find all phosphofructokinases :-eval(consult("utils.prova")). location(database,“go","jdbc:mysql://comas.soi.city.ac.uk","guest","guest"). location(database,"GO","jdbc:mysql://dbserver","guest","guest"). :-solve(isPhosphofructokinase()). isPhosphofructokinase() :- dbopen("GO",DB), println(["DB open"]), sql_select(DB,term,[id,TermID],[name,Name],[where,"name = 'phosphofructokinase activity'"]), println(["Looking for all children of GO-Term (",TermID,"): ",Name]), findall(TermID,isPhosphofructokinase(DB,TermID),_). isPhosphofructokinase(DB,TermID) :- concat(["term1_id=",TermID],WhereClause), sql_select(DB,term2term,[term2_id,ChildTermID],[where, WhereClause]), concat(["id=",ChildTermID],WhereClause2), sql_select(DB,term,[name,ChildName],[where,WhereClause2]), println([TermID," has child ", ChildName,",",ChildTermID]), isPhosphofructokinase(DB,ChildTermID). isPhosphofructokinase(DB,TermID) :- println([TermID," does not have any children."]). Backtracking Built-in DB access Recursion

21 By Michael Schroeder, Biotec, Output Looking for all children of GO-Term (2153): phosphofructokinase activity 2153 has child 1-phosphofructokinase activity, does not have any children has child 6-phosphofructo-2-kinase activity, does not have any children has child 6-phosphofructokinase activity, does not have any children does not have any children. yes

22 By Michael Schroeder, Biotec, Messaging and Reaction Rules nProva is designed to implement agents in a distributed system nProva is based on theoretical work on multi agent systems nProva provides predicates to send and receive messages and to realise reaction rules

23 By Michael Schroeder, Biotec, Code Snippet :- eval(ex004()). a(1). a(2). b(3). b(4). % Send out messages ex004() :- println(["==========ex004=========="]), iam(Me), sendMsg(XID1,self,Me,queryref,a(I)), rcvMult(XID1,self,Me,reply,a(I)), println(["Inline reaction ",rcvMult(XID1,self,Me,reply,a(I))]), sendMsg(XID2,self,Me,queryref,b(J)), rcvMult(XID2,self,Me,reply,b(J)), println(["Inline reaction ",rcvMult(XID2,self,Me,reply,b(J))]). % Reaction rule to general queryref rcvMsg(XID,Protocol,From,queryref,[X|Xs]|LocalContext) :- println(["Rule reaction 1 ",rcvMsg(XID,Protocol,From,queryref,[X|Xs]|LocalContext)]), derive([X|Xs]), sendMsg(XID,Protocol,From,reply,[X|Xs]|LocalContext). rcvMsg(XID,Protocol,From,queryref,[X|Xs]|LocalContext) :- println(["Rule reaction 2 ",rcvMsg(XID,Protocol,From,queryref,[X|Xs]|LocalContext)]), sendMsg(XID,Protocol,From,end_of_transmission,[X|Xs]|LocalContext). % A testing harness for printing incoming end_of_transmission messages. rcvMsg(XID,Protocol,From,end_of_transmission|Extra) :- println(["end_of_transmission for conversation-id ",XID,": "|Extra]). Built-in agent agent communication: sendMsg and rcvMsg Abstracting from protocols like JMS, Jade or inline

24 By Michael Schroeder, Biotec, Output ==========ex004========== Rule reaction 1 Rule reaction 2 Inline reaction Inline reaction end_of_transmission for conversation-id ["a",I] Rule reaction 1 Rule reaction 2 Rule reaction 1 Rule reaction 2 Inline reaction Inline reaction end_of_transmission for conversation-id Inline reaction Inline reaction end_of_transmission for conversation-id end_of_transmission for conversation-id ["a",I] Shutdown complete.

25 By Michael Schroeder, Biotec, Conclusion nGoPubMed facilitates exploration of literature abstracts with the GeneOntology nProva implements Prolog-style rules and reasoning with Java nThanks: nGoPubMed: Andreas Doms, Ralf Delfs, Alex Kozlenkov nProva: Alex Kozlenkov nSupport: EU Projects REWERSE, GeneStream, BioGrid nContact: nMichael Schroeder: nURLs nwww.biotec.tu-dresden.de nwww.rewerse.net (REWERSE project including info on bioinfo group) nwww.semanticwebrules.org (Prova) nwww.gopubmed.org (GoPubMed)


Download ppt "Michael Schroeder BioTechnological Center TU Dresden Biotec GoPubMed and beyond: Rules and reasoning for."

Similar presentations


Ads by Google