This document summarizes a presentation about building chemical semantic web services using SADI, ChEBI, and CHEMINF. It discusses how SADI allows services to be discovered and composed to answer queries by reasoning over chemical ontologies. As an example, it describes how a SPARQL query engine could discover and invoke web services to determine if caffeine is a drug-like molecule according to the Lipinski rule of five.
Human Factors of XR: Using Human Factors to Design XR Systems
Building Chemical Semantic Web Services with SADI, ChEBI, and CHEMINF
1. We’re all SMILES! Building Chemical Semantic Web Services with SADI, ChEBI, and CHEMINF 1 ChEBI User Group Meeting:June 24, 2010 Michel Dumontier, Ph.D. Associate Professor of Bioinformatics Carleton University Department of Biology School of Computer Science Institute of Biochemistry Ottawa Institute of Systems Biology Ottawa-Carleton Institute of Biomedical Engineering
2.
3. Syntactic Web… It takes a lot of digging to get answers 3 ChEBI User Group Meeting:June 24, 2010
4. We need to get to the deep web Surface web:167 terabytes Deep web:91,000 terabytes 545-to-one ChEBI User Group Meeting:June 24, 2010 4
5. ChEBI User Group Meeting:June 24, 2010 and tap into the global web of structured knowledge 5
6. The Semantic Web is the new global web of knowledge 6 ChEBI User Group Meeting:June 24, 2010 It is about standards for publishing, sharing and querying knowledge drawn from diverse sources It makes possible the answering sophisticated questions using background knowledge
7. Goals Provision chemical data on the Web Find cheminformatic services that will consume the data Answer questions about chemicals by reasoning over essential chemical knowledge ChEBI User Group Meeting:June 24, 2010 7
8. Is caffeine a drug-like molecule? ChEBI User Group Meeting:June 24, 2010 8
9. Lipinski Rule of Five Rule of thumb for druglikeness (orally active in humans) (4 rules with multiples of 5) Less than 500 Dalton Less than 5 hydrogen bond donors Less than 10 hydrogen bond acceptors A partition coefficient value between -5 and 5 We need a more formal (machine understandable) description ChEBI User Group Meeting:June 24, 2010 9
11. The Web Ontology Language (OWL) Has Explicit Semantics Can therefore be used to capture knowledge in a machine understandable way 11 ChEBI User Group Meeting:June 24, 2010
12. Lipinski Rule of Five Empirically derived ruleset for druglikeness (4 rules with multiples of 5) Less than 500 Dalton Less than 5 hydrogen bond donors Less than 10 hydrogen bond acceptors A partition coefficient value between -5 and 5 A formal description using OWL: ChEBI User Group Meeting:June 24, 2010 12
13. To calculate these attributes, we need access to a computable representation of the molecular structure ChEBI User Group Meeting:June 24, 2010 13 ball & stick model for caffeine
14. The chemical graph specifies the type and connectivity of atoms in molecules. It describes a part of chemical structureSMILES strings are common representations of the chemical graph ChEBI User Group Meeting:June 24, 2010 14 Cn1cnc2n(C)c(=O)n(C)c(=O)c12 ball & stick model for caffeine SMILES string for caffeine
15. Chemical descriptors Chemical descriptors are data (quantities or values) that provide information about substances, molecular entities, and their parts (rings, atoms, bonds, etc). Sometimes they enumerate material parts, they quantify or describe qualities, functions or dispositions Often used to build Quantitative Structure Activity Relationships (QSAR) models Example descriptors : Mass values Partition coefficients Heats of formation Aromaticity values Molecular formulas ChEBI User Group Meeting:June 24, 2010 15
16. The Chemical Information Ontology (CHEMINF) 100 chemical descriptors 50 chemical qualities Relates descriptors to their specifications, the software that generated them (along with the running parameters, and the algorithms that they implement) Contributors: Nico Adams, Leonid Chepelev, Michel Dumontier, Janna Hastings, EgonWillighagen, Peter Murray-Rust, CristophSteinbeck ChEBI User Group Meeting:June 24, 2010 16 http://semanticchemistry.googlecode.com
17. CHEMINF provides the vocabulary to define an input (SMILES-annotated molecule) and an output (molecule annotated with a descriptor) ChEBI User Group Meeting:June 24, 2010 17
18. Ultimately, the goal is to use an OWL reasoner to reason about the attributes to determine whether the compound is drug-like ChEBI User Group Meeting:June 24, 2010 18
19. Semantic Automated Discovery and Integration http://sadiframework.org SADI is a framework to create Semantic Web services using OWL classes as service inputs and outputs Mark Wilkinson, UBC Michel Dumontier, Carleton University Christopher Baker, UNB 19 ChEBI User Group Meeting:June 24, 2010
20. SADI OWL classes in SADI are local to individual services They should uniquely specify the service input and outputs (they exactly have the right restrictions) one service’s world-view can conflict with another,but a client can use any or all maximize interoperability by reusing types and relations ChEBI User Group Meeting:June 24, 2010 20
21. Create code stubs using the ontology Publish the ontology to a web-accessible location http://semanticscience.org/sadi/ontology/lipinskiserviceontology.owl Make sure that the class names are resolvable (easy when using the hash notation) http://semanticscience.org/sadi/ontology/lipinskiserviceontology.owl#smiles-molecule http://semanticscience.org/sadi/ontology/lipinskiserviceontology.owl#logp-molecule http://semanticscience.org/sadi/ontology/lipinskiserviceontology.owl#hbdc-molecule http://semanticscience.org/sadi/ontology/lipinskiserviceontology.owl#hdba-molecule http://semanticscience.org/sadi/ontology/lipinskiserviceontology.owl#lipinksi-druglike-molecule Download/checkout the code http://sadiframework.org Run the code generator specify the URIs that correspond to input and output types ChEBI User Group Meeting:June 24, 2010 21
22. Implement the functionality Java version Uses Jena to manipulate the RDF graph Uses Maven to build from command-line or Eclipse; Invokes Jetty for service testing Chemistry We used the Chemistry Development Kit (CDK) to implement 4 services ChEBI User Group Meeting:June 24, 2010 22
23. Working with the service (GET) Responds to a GET by providing the service description in RDF conforms to Feta (BioMoby, myGrid) ChEBI User Group Meeting:June 24, 2010 23 curl http://cbrass.biordf.net/logpdc/logpc <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:j.0="http://www.mygrid.org.uk/mygrid-moby-service#" > <rdf:Descriptionrdf:about=""> <j.0:hasServiceDescriptionText>no description</j.0:hasServiceDescriptionText> <j.0:hasServiceNameText rdf:datatype="http://www.w3.org/2001/XMLSchema#string">logpc</j.0:hasServiceNameText> <j.0:hasOperation rdf:resource="#operation"/> <rdf:typerdf:resource="http://www.mygrid.org.uk/mygrid-moby-service#serviceDescription"/> </rdf:Description> <rdf:Descriptionrdf:about="#input"> <j.0:objectType rdf:resource="http://semanticscience.org/sadi/ontology/lipinskiserviceontology.owl#smilesmolecule"/> <rdf:typerdf:resource="http://www.mygrid.org.uk/mygrid-moby-service#parameter"/> </rdf:Description> <rdf:Descriptionrdf:about="#operation"> <j.0:outputParameter rdf:resource="#output"/> <j.0:inputParameter rdf:resource="#input"/> <rdf:typerdf:resource="http://www.mygrid.org.uk/mygrid-moby-service#operation"/> </rdf:Description> <rdf:Descriptionrdf:about="#output"> <j.0:objectType rdf:resource="http://semanticscience.org/sadi/ontology/lipinskiserviceontology.owl#alogpsmilesmolecule"/> <rdf:typerdf:resource="http://www.mygrid.org.uk/mygrid-moby-service#parameter"/> </rdf:Description> </rdf:RDF>
24. Working with the service (POST) Responds to a POST with service output (process an input file) ChEBI User Group Meeting:June 24, 2010 24 <rdf:RDFxmlns="http://semanticscience.org/sadi/ontology/caffeine.rdf#" xmlns:so="http://semanticscience.org/sadi/ontology/lipinskiserviceontology.owl#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sio="http://semanticscience.org/resource/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#"> <so:smilesmoleculerdf:about="http://semanticscience.org/sadi/ontology/caffeine.rdf#m"> <sio:SIO_000008 rdf:resource = "http://semanticscience.org/sadi/ontology/caffeine.rdf#msmiles"/> </so:smilesmolecule> <sio:CHEMINF_000018 rdf:about = "http://semanticscience.org/sadi/ontology/caffeine.rdf#msmiles"> <sio:SIO_000300 rdf:datatype="xsd:string">Cn1cnc2n(C)c(=O)n(C)c(=O)c12</sio:SIO_000300> </sio:CHEMINF_000018> </rdf:RDF> curl --data @caffeine.rdf http://cbrass.biordf.net/logpdc/logpc <rdf:Descriptionrdf:about="http://semanticscience.org/sadi/ontology/caffeine.rdf#mdalogp"> <rdf:typerdf:resource="http://semanticscience.org/resource/CHEMINF_000251"/> <j.0:SIO_000300 rdf:datatype="http://www.w3.org/2001/XMLSchema#double">-0.4311000000000006</j.0:SIO_000300> </rdf:Description>
25. Publish and Register the service ChEBI User Group Meeting:June 24, 2010 25 http://sadiframework.org/registry
27. ChEBI User Group Meeting:June 24, 2010 27 Semantic Health and Research Environment SHARE is an application that execute (SPARQL) queries as workflows over SADI Services
28. “Reckoning”dynamic discovery of instances of OWL classes through synthesis and invocation of a Web Service workflow capable of generating data described by the OWL class restrictions, followed by reasoning to classify the data into that ontology 28 ChEBI User Group Meeting:June 24, 2010
29. 29 SPARQL is the newcool kid on the query block SQLSPARQL ChEBI User Group Meeting:June 24, 2010
30. SHARE SPARQL engine triple patterns are matched against service descriptions knowledge base is dynamically populated queries can contain OWL classes, which are expanded to the required triple patterns query is optimized to minimize the number of service calls and the amount of data sent over the network ChEBI User Group Meeting:June 24, 2010 30
44. Simplified migration path for existing web services (java, perl)38 ChEBI User Group Meeting:June 24, 2010
45. Benefits Data remains distributed – no warehouse! Data is not “exposed” as a SPARQL endpoint greater provider-control over computational resources Yet data appears to be a SPARQL endpoint… no modification of SPARQL or reasoner required. ChEBI User Group Meeting:June 24, 2010 39
46. Join Us! SADI and CardioSHARE are Open Source Come join us – we’re having a lot of fun!! http://sadiframework.org ChEBI User Group Meeting:June 24, 2010 40
47. ChEBI User Group Meeting:June 24, 2010 41 Acknowledgements Leonid Chepelev (implementing the services) Luke McCarthy (technical support) Mark Wilkinson (vision and leadership) CHEMINF Group Janna Hastings Nico Adams EgonWillighagen This research is supported by The Heart + Stroke Foundation of BC and Yukon, Microsoft Research, The Canadian Institutes of Health Research, The Natural Sciences and Engineering Research Council of Canada and CANARIE.
Editor's Notes
Can’t answer questions that require background knowledge
Research – that’s what brought you hereSkils – marketable in whatever you choose to do thereafterKnowledeable – where the field has been and where it is goingImprove oral and written scientific communication skillsResearch – tell people what you’ve been doingTrack progress – develop a sense of progress