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 ms@mpi-cbg.de http://www.biotec.tu-dresden.de Biotec GoPubMed and beyond: Rules and reasoning for ontology-based literature search

2 By Michael Schroeder, Biotec, 20032 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, 20033 GoPubMed and beyond: Rules and reasoning for ontology-based literature search

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

5 By Michael Schroeder, Biotec, 20035 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, 20036 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, 20037 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, 20038 GoPubMed Example Let’s look for some functions: 70 papers including terms, which are enzyme activities

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

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

11 By Michael Schroeder, Biotec, 200311 GoPubMed Example Phosphofructokinase

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

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

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

15 By Michael Schroeder, Biotec, 200315 Prova

16 By Michael Schroeder, Biotec, 200316 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, 200317 PubMed XML Output 15469972 2004 10 7 0950-1991 2004 10 6 DEVPED Development (Cambridge, England) Development …

18 By Michael Schroeder, Biotec, 200318 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, 200319 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, 200320 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, 200321 Output Looking for all children of GO-Term (2153): phosphofructokinase activity 2153 has child 1-phosphofructokinase activity,2154 2154 does not have any children. 2153 has child 6-phosphofructo-2-kinase activity,2155 2155 does not have any children. 2153 has child 6-phosphofructokinase activity,2156 2156 does not have any children. 2153 does not have any children. yes

22 By Michael Schroeder, Biotec, 200322 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, 200323 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, 200324 Output ==========ex004========== Rule reaction 1 ["rcvMsg","mediator@bioinf-mobile3","self","mediator","queryref",["a",I]] Rule reaction 2 ["rcvMsg","mediator@bioinf-mobile3","self","mediator","queryref",["a",I]] Inline reaction ["rcvMult","mediator@bioinf-mobile3","self","mediator","reply",["a",1]] Inline reaction ["rcvMult","mediator@bioinf-mobile3","self","mediator","reply",["a",2]] end_of_transmission for conversation-id mediator@bioinf-mobile3: ["a",I] Rule reaction 1 ["rcvMsg","mediator@bioinf-mobile6","self","mediator","queryref",["b",N@@16]] Rule reaction 2 ["rcvMsg","mediator@bioinf-mobile6","self","mediator","queryref",["b",N@@16]] Rule reaction 1 ["rcvMsg","mediator@bioinf-mobile8","self","mediator","queryref",["b",N@@16]] Rule reaction 2 ["rcvMsg","mediator@bioinf-mobile8","self","mediator","queryref",["b",N@@16]] Inline reaction ["rcvMult","mediator@bioinf-mobile6","self","mediator","reply",["b",3]] Inline reaction ["rcvMult","mediator@bioinf-mobile6","self","mediator","reply",["b",4]] end_of_transmission for conversation-id mediator@bioinf-mobile6: ["b",N@@16] Inline reaction ["rcvMult","mediator@bioinf-mobile8","self","mediator","reply",["b",3]] Inline reaction ["rcvMult","mediator@bioinf-mobile8","self","mediator","reply",["b",4]] end_of_transmission for conversation-id mediator@bioinf-mobile8: ["b",N@@16] end_of_transmission for conversation-id mediator@bioinf-mobile3: ["a",I] Shutdown complete.

25 By Michael Schroeder, Biotec, 200325 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: ms@biotec.tu-dresden.de 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