Oe2 tutorial 1010

695 views

Published on

Tutorial on ontology development in OBO-Edit, expressed in both OBO and OWL presented at the EBI in October 2010.

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
695
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Oe2 tutorial 1010

  1. 1. OBO-Edit tutorial David Osumi-Sutherland, [email_address] FlyBase / Virtual Fly Brain / OBO-Edit Working Group
  2. 2. Advantages of the OBO-Edit environment <ul><li>Standardized system for annotating ontology terms: </li></ul><ul><ul><li>Definitions, comments, synonyms, references. </li></ul></ul><ul><li>Intuitive graphical environment for browsing and editing ontologies. </li></ul><ul><li>Term ID tracking though renames, merges and obsoletion. </li></ul><ul><ul><li>Essential for keeping annotations in an RDB up-to-date with an evolving ontology. </li></ul></ul><ul><li>Sophisticated compound search & query systems. </li></ul><ul><ul><li>When used with term renders, these are very useful for tracking editing progress. </li></ul></ul>
  3. 3. Disadvantages of the OBO-Edit environment <ul><li>Less expressive than OWL: </li></ul><ul><ul><li>No nested class level expressions </li></ul></ul><ul><ul><li>No negation </li></ul></ul><ul><ul><li>No functional properties </li></ul></ul><ul><ul><li>No property chains </li></ul></ul><ul><li>Slower reasoning </li></ul>
  4. 4. OBO and OWL - now <ul><li>Golbriech and Horrocks translation* works for most purposes. </li></ul><ul><li>Protégé 4 can open OBO files </li></ul><ul><ul><li>Standard translation built in to OWL-API and Protégé 4, based on Golbriech and Horrocks. </li></ul></ul><ul><ul><li>Use OWL reasoners as a quick way of </li></ul></ul><ul><ul><ul><li>testing consistency </li></ul></ul></ul><ul><ul><ul><li>running queries </li></ul></ul></ul><ul><li>* http://www.comlab.ox.ac.uk/people/ian.horrocks/Publications/download/2007/GoHo07a.pdf </li></ul>
  5. 5. OBO and OWL – in future <ul><li>Future development plans for OBO-Edit include much closer integration with OWL and Protege 4 </li></ul><ul><ul><li>Improved translations: </li></ul></ul><ul><ul><ul><li>New official OBO <-> OWL ID conversion </li></ul></ul></ul><ul><ul><ul><li>Official OBO foundry OBO <-> OWL translation will be part of the OBO 1.4 spec. </li></ul></ul></ul><ul><ul><li>OWL reasoners in OBO-Edit (?) </li></ul></ul><ul><ul><ul><li>Already working in experimental versions of OBO-Edit </li></ul></ul></ul><ul><ul><li>Plugins for Protégé 4 to produce a more OBO-type environment within Protégé (?). </li></ul></ul>
  6. 6. What is an ontology ? <ul><li>A classification: </li></ul><ul><ul><li>e.g. </li></ul></ul><ul><ul><ul><li>A ‘Johnston organ neuron’ is a type of ‘mechanosensory neuron’ </li></ul></ul></ul><ul><ul><ul><li>A ‘mechanosensory neuron’ is a type of ‘sensory neuron’ </li></ul></ul></ul><ul><ul><li>Efficient and scalable - as long as you follow good engineering principles. </li></ul></ul><ul><li>A query-able store of (scientific) knowledge </li></ul><ul><ul><li>e.g.- </li></ul></ul><ul><ul><ul><li>Every ‘Johnston organ neuron’ has a dendrite that terminates in a ‘Johnston organ’ and has an axon that innervates the ‘AMMC’. </li></ul></ul></ul><ul><ul><li>Efficient and scalable - as long as you follow good engineering principles. </li></ul></ul>
  7. 7. What is an ontology ? <ul><li>The scientific knowledge an ontology contains can make the reasons for classification explicit. </li></ul><ul><ul><li>e.g. </li></ul></ul><ul><ul><ul><li>Any neuron that functions in the transduction of signals involved in sensory perception is a sensory neuron </li></ul></ul></ul><ul><ul><ul><li>Any neuron that functions in the transduction of mechanosensory signals involved in sensory perception is a mechanosensory neuron. </li></ul></ul></ul><ul><ul><ul><li>The transduction of mechanosensory signals involved in sensory perception is a type of transduction of signals involved in sensory perception </li></ul></ul></ul><ul><ul><ul><li>Therefore all mechanosensory neurons are sensory neurons. </li></ul></ul></ul>
  8. 8. What is an (OBO) ontology ? <ul><li>An ontology contains terms </li></ul><ul><li>Terms refer to types (classes) </li></ul><ul><li>Types are classifications of things ( instances ) in the real world, based on some set of criteria. </li></ul><ul><ul><li>My left hand is an instance of the type hand </li></ul></ul><ul><li>The criteria for class membership is recorded using textual definitions , at least some elements of which are formalized as relationships. </li></ul><ul><ul><li>name : hand </li></ul></ul><ul><ul><li>def : “An anatomical structure that has four fingers and a thumb and is attached to the end of an arm.” [reference: DOS] </li></ul></ul><ul><ul><li>relationship : hand has_part finger </li></ul></ul><ul><ul><li>relationship : hand has_part thumb </li></ul></ul><ul><ul><li>relationship : part_of arm </li></ul></ul>Image from Gray’s Anatomy (copyright expired)
  9. 9. Why should you use ontologies? <ul><li>As a way to standardize meta-data: </li></ul><ul><ul><li>Standardized meanings for metadata make mapping between databases much easier. </li></ul></ul><ul><ul><li>Written definitions with references </li></ul></ul><ul><ul><ul><li>ensure accurate manual annotation </li></ul></ul></ul><ul><ul><ul><li>make assertions of scientific fact trace-able </li></ul></ul></ul><ul><ul><ul><li>serve as documentation for future ontology developers </li></ul></ul></ul><ul><ul><li>Classification can be used to group and search annotations. </li></ul></ul><ul><ul><ul><li>e.g.- given the classifications: </li></ul></ul></ul><ul><ul><ul><ul><li>Johnston organ neuron is a type ot mechanosensory neuron. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>mechanosensory neuron is a type of sensory neuron </li></ul></ul></ul></ul><ul><ul><ul><li>A query for all annotations of sensory neuron could find annotations with the terms Johnston organ neuron and mechanosensory neuron. </li></ul></ul></ul>
  10. 10. Why should you use ontologies? <ul><li>As a store of scientific knowledge </li></ul><ul><ul><li>e.g. </li></ul></ul><ul><ul><ul><li>The Drosophila brain is a highly intricate structure of ~100,000 neurons. How can we keep track of their many properties? </li></ul></ul></ul><ul><ul><ul><ul><li>innervation and fasciculation patterns </li></ul></ul></ul></ul><ul><ul><ul><ul><li>neurotransmitter </li></ul></ul></ul></ul><ul><ul><ul><ul><li>function </li></ul></ul></ul></ul><ul><ul><ul><ul><li>location of soma </li></ul></ul></ul></ul><ul><ul><ul><ul><li>lineage </li></ul></ul></ul></ul><ul><ul><ul><li>An ontology with formal and textual definitions and links to the literature provides a scalable, query-able structure for storing this information. </li></ul></ul></ul>
  11. 11. OBO basics- instance/type distinction <ul><li>If OBO terms refer to types, why worry about instances? </li></ul><ul><ul><li>instances are central to defining OBO type-level relations </li></ul></ul><ul><li>OBO <-> OWL: </li></ul><ul><ul><li>OWL class = OBO type </li></ul></ul><ul><ul><li>OWL individual = OBO instance </li></ul></ul><ul><ul><li>OWL SubClassOf = OBO is_a </li></ul></ul>
  12. 12. OBO relations <ul><li>Instance level relations (by convention written in bold ) </li></ul><ul><ul><li>'my left little finger' part_of 'my left hand’ </li></ul></ul><ul><li>To relate types, </li></ul><ul><ul><li>we need quantifiers: </li></ul></ul><ul><ul><ul><li>∀ : for all , all, only, every </li></ul></ul></ul><ul><ul><ul><li>∃ : there exists , some </li></ul></ul></ul><ul><ul><li>e.g. </li></ul></ul><ul><ul><ul><li>Every ‘ left little finger’ part_of some hand* </li></ul></ul></ul><ul><li>In OBO, we use type level relations (by convention written in italics) , burying the quantifiers in the relation definition. </li></ul><ul><li>In OWL: </li></ul><ul><ul><li>instance level relations = properties. </li></ul></ul><ul><ul><li>Quantifiers are stated explicitly when relating classes </li></ul></ul><ul><li>*This is a simplification, ignoring the time component of the OBO relations definitions. </li></ul>Image from Gray’s Anatomy (copyright expired)
  13. 13. Quantifiers <ul><li>It is critical to be aware of the direction of quantifiers when using OBO relations: </li></ul><ul><li>True : All breasts are part of some human </li></ul><ul><li>False : All humans have breasts </li></ul><ul><li>True : All vertebrate motor neurons release neurotransmitter acetylcholine </li></ul><ul><li>False : All neurons that release acetylcholine are vertebrate motor neurons. </li></ul><ul><li>Be especially careful in cases where the instance level relation is symmetric: </li></ul><ul><li>True : Every lion’s mane connected_to some lion’s neck </li></ul><ul><li>False : Every lion’s neck connected_to some lion’s mane </li></ul>
  14. 14. Relationships formalize elements of a definition. <ul><li>We can formally record necessary conditions for class membership. </li></ul><ul><ul><li>e.g. to state that a necessary condition of being in the class finger is to be part of some hand: </li></ul></ul><ul><ul><ul><li>OBO: </li></ul></ul></ul><ul><ul><ul><ul><li>name : finger </li></ul></ul></ul></ul><ul><ul><ul><ul><li>relationship : part_of hand </li></ul></ul></ul></ul><ul><ul><ul><li>OWL: </li></ul></ul></ul><ul><ul><ul><ul><li>finger SubClassOf ( part_of some hand) </li></ul></ul></ul></ul>
  15. 15. Relationships formalize elements of a definition. <ul><li>We can formally record necessary and sufficient conditions for class membership. </li></ul><ul><ul><li>e.g. To state that every neuron that releases the neurotransmitter acetylcholine is a cholinergic neuron </li></ul></ul><ul><ul><ul><li>OBO: </li></ul></ul></ul><ul><ul><ul><ul><li>name : cholinergic neuron </li></ul></ul></ul></ul><ul><ul><ul><ul><li>intersection_of : neuron </li></ul></ul></ul></ul><ul><ul><ul><ul><li>intersection_of : releases_neurotransmitter acetylcholine </li></ul></ul></ul></ul><ul><ul><ul><li>OWL: </li></ul></ul></ul><ul><ul><ul><ul><li>‘ cholinergic neuron’ EquivalentTo: (neuron and releases_neurotransmitter some acetylcholine) </li></ul></ul></ul></ul>
  16. 16. Some simple reasoning <ul><li>U neuron part_of larval antennal segment </li></ul><ul><ul><li>( All U neuron part_of some larval antennal segment) </li></ul></ul><ul><li>U1 neuron is_a U neuron </li></ul><ul><li>therefore U1 neuron part_of larval antennal segment </li></ul><ul><ul><li>( All U neuron part_of some larval antennal segment; U1 neuron SubClassOf U neuron therefore…) </li></ul></ul>
  17. 17. Multiple inheritance needed <ul><li>name : ORN ab1a </li></ul><ul><ul><li>def : A cholinergic olfactory neuron whose dendrite innervates an ab1 basiconic sensillum on the 3 rd segment of the antenna. Like other antennal olfactory neurons, it sends an axon through the antennal nerve that innervates a single antennal lobe glomerulus DL1 </li></ul></ul><ul><ul><ul><li>is_a: olfactory neuron </li></ul></ul></ul><ul><ul><ul><li>is_a: cholinergic neuron </li></ul></ul></ul><ul><ul><ul><li>is_a: antennal sensory neuron </li></ul></ul></ul><ul><ul><ul><li>is_a: DL1 innervating neuron </li></ul></ul></ul>
  18. 18. Ways to classify neurons <ul><li>sensory </li></ul><ul><ul><li>sensory modality </li></ul></ul><ul><ul><li>sense organ </li></ul></ul><ul><li>motor </li></ul><ul><li>interneuron </li></ul><ul><ul><li>local </li></ul></ul><ul><ul><li>relay </li></ul></ul><ul><li>neurotransmitter </li></ul><ul><ul><li>serotonergic, </li></ul></ul><ul><ul><li>dopaminergic… </li></ul></ul><ul><li>Location </li></ul><ul><ul><li>cell body </li></ul></ul><ul><ul><li>fasciculation pattern </li></ul></ul><ul><ul><li>innervation pattern </li></ul></ul><ul><li>all siblings in the same color are (probably) disjoint_from each other. </li></ul>
  19. 19. <ul><li>It is difficult to keep track of multiple </li></ul><ul><li>classification chains to: </li></ul><ul><ul><li>ensure completeness; </li></ul></ul><ul><ul><li>avoid redundancy; </li></ul></ul><ul><ul><li>avoid introducing error due to inheritance of classification criteria from a distant ancestor </li></ul></ul>Multiple inheritance is very hard to manage by hand
  20. 20. Automating multiple inheritance <ul><li>Formal necessary and sufficient definitions + a reasoner </li></ul><ul><li>=> automatic (and therefore manageable) classification </li></ul>
  21. 21. Some simple reasoning <ul><li>‘ sensory neuron’ EquivalentTo ; </li></ul><ul><ul><li>neuron and has_function_in some ‘detection of stimulus involved in sensory perception’ </li></ul></ul><ul><li>‘ sensory neuron’ EquivalentTo : </li></ul><ul><ul><li>neuron and has_function_in some ‘detection of mechanical stimulus involved in sensory perception’ </li></ul></ul><ul><li>‘ detection of mechanical stimulus involved in sensory perception’ is_a ( SubClassOf ) ‘detection of stimulus involved in sensory perception’ </li></ul><ul><li>Therefore ‘mechanosensory neuron’ is_a ( SubClassOf ) ‘sensory neuron’ </li></ul>
  22. 22. Error checking <ul><li>Some classes don’t overlap. Nothing can be an oak tree and a fruit fly; an anatomical structure and a biological process. </li></ul><ul><ul><li>We say that such classes are disjoint </li></ul></ul><ul><li>Declaring classes to be disjoint allows reasoners to find contradictions. </li></ul><ul><li>OBO <-> OWL </li></ul><ul><ul><li>OBO disjoint_from = OWL DisjointWith </li></ul></ul>
  23. 23. Demo – OBO-Edit basics
  24. 24. Basic OBO-Edit2 editing setup <ul><li>- 2 x Ontology Tree Editor (OTE) </li></ul><ul><li>- One parent editor </li></ul><ul><li>- One text editor </li></ul><ul><li>- One search panel </li></ul><ul><li>- One reasoner manager </li></ul><ul><li>- One graph viewer (Note – in OE2.1, only works with Link Pile Reasoner on) </li></ul>
  25. 27. Brief discussion of tutorial ontology
  26. 28. Browsing
  27. 29. Browsing - Trees The ontology tree editor is a good way to browse down the ontology graph, but not all are parents visible in one view Click to expand or contract branch
  28. 30. Preferences help save a picture Quick Filtering
  29. 32. Browsing - parents The parent editor provides a quick way to check all parental relationships – usually these are not all visible in a single tree view
  30. 33. Browsing - graphs A good way to view and browse ancestral relationships, graphs of ancestors via transitive relations answer questions e.g.- what is X? What is X part of? What does X develop from? Note – in version 2.1 beta, requires link pile reasoner to be turned on.
  31. 34. Preferences help save a picture
  32. 35. Graph viewer setup For an uncluttered view:
  33. 36. Browsing – The Text Editor
  34. 37. Browsing - Graph Editor
  35. 38. <ul><li>Right click provides editing options and hide-all </li></ul><ul><li>Choosing quick filtering => manageable view </li></ul>Browsing - Graph Editor Hide parent terms show parent terms Hide child terms show child terms hide term
  36. 39. Basic Searching - single leg
  37. 40. Basic searching – multi-leg Add new leg AND/OR Remove leg nesting (parentheses)
  38. 41. All searches can also be filters or renders
  39. 42. Editing
  40. 43. The ontology tree editor menu <ul><li>Right clicking on the ontology tree editor prompts an extensive editing menu: </li></ul>
  41. 44. Global vs local selection modes local mode -selection in other components doesn’t affect selection here global mode - 2 way auto sync with other components
  42. 45. Drag and drop editing in the ontology tree editor (OTE) <ul><li>Left clicking a term chooses it </li></ul><ul><li>Right clicking displays a menu of editing options </li></ul><ul><li>Dragging and dropping single or multiple terms allows terms to be copied, moved or merged. </li></ul>
  43. 46. Drag and drop term move
  44. 47. Drag and drop term move
  45. 48. Drag and drop term move
  46. 49. Drag and drop term merge
  47. 51. Making new terms <ul><li>First, make sure your ID generator is set up correctly: </li></ul>Edit profile ID prefix ID length start from end at
  48. 52. Create new child <ul><li>Note standard fields for: </li></ul><ul><ul><li>definition </li></ul></ul><ul><ul><ul><li>definition reference </li></ul></ul></ul><ul><ul><li>synonyms </li></ul></ul><ul><ul><ul><li>synonym scope </li></ul></ul></ul><ul><ul><ul><li>synonym reference </li></ul></ul></ul>
  49. 53. Committing Check this box to commit text edits automatically. Note, committing will not change your ontology file
  50. 54. Deletion, obsoletion, destruction … deletes the relationship between the selected term and its immediate parent in the ontology tree editor. When the selected term has only one parent, this option switches to: OTE – right click menu: … changes the status of term to obsolete. The OBO file retains the ID for future reference and to prevent re-use. To indicate replacement terms, drag suitable terms to the obsoleted term => Within the context of a single editing session, or a pre-release file, you may wish instead to destroy the term completely (BUT BE CAREFUL!)
  51. 55. Parent Editor Delete parent relationship Does what it says. But be careful it adds is_a parents by default. For other relations, switch after adding
  52. 56. Managing multiple inheritance
  53. 57. Relationships formalize elements of a definition. (recap) <ul><li>We can formally record necessary and sufficient conditions for class membership. </li></ul><ul><ul><li>e.g. To state that every neuron that releases the neurotransmitter acetylcholine is a cholinergic neuron </li></ul></ul><ul><ul><ul><li>OBO: </li></ul></ul></ul><ul><ul><ul><ul><li>name : cholinergic neuron </li></ul></ul></ul></ul><ul><ul><ul><ul><li>intersection_of : neuron </li></ul></ul></ul></ul><ul><ul><ul><ul><li>intersection_of : releases_neurotransmitter acetylcholine </li></ul></ul></ul></ul><ul><ul><ul><li>OWL: </li></ul></ul></ul><ul><ul><ul><ul><li>‘ cholinergic neuron’ EquivalentTo: (neuron and releases_neurotransmitter some acetylcholine) </li></ul></ul></ul></ul>
  54. 58. Necessary and sufficient definitions <ul><li>Choose the term 'antennal sensillum' </li></ul><ul><ul><li>Check out the text editor cross product tab </li></ul></ul><ul><li>Turn the reasoner off. </li></ul><ul><ul><li>You should see antennal sensillum at the root </li></ul></ul><ul><li>Run the rule-based-reasoner </li></ul><ul><ul><li>check out how the term is integrated non-redundantly into the classification hierarchy. </li></ul></ul><ul><ul><li>view the parent editor </li></ul></ul>
  55. 59. Error checking - recap <ul><li>Some classes don’t overlap. Nothing can be an oak tree and a fruit fly; an anatomical structure and a biological process. </li></ul><ul><ul><li>We say that such classes are disjoint </li></ul></ul><ul><li>Declaring classes to be disjoint allows reasoners to find contradictions. </li></ul><ul><li>OBO <-> OWL </li></ul><ul><ul><li>OBO disjoint_from ≅ OWL DisjointWith </li></ul></ul>
  56. 60. Using the reasoner to check for disjoint violations - demo <ul><li>In the test ontology, make one of the children of biological process an is_a child of sensillum. </li></ul><ul><li>Now run the link pile reasoner </li></ul><ul><li>This should prompt an error report </li></ul><ul><li>Undo </li></ul>
  57. 61. Disjoint declarations <ul><li>Use drag and drop editing and declare terms disjoint as you would assert a relationship: </li></ul><ul><li>Or make declare all is_a children of a specified term disjoint: </li></ul>
  58. 62. Using terms form other ontologies <ul><li>The test ontology we are using contains terms imported* from other ontologies: GO and CHEBI. </li></ul><ul><li>We can use the structure of existing, well maintained ontologies, such as GO and CHEBI, to automate classification of anatomical structures. </li></ul><ul><li>Using terms from other ontologies </li></ul><ul><ul><li>cholinergic neuron </li></ul></ul><ul><ul><li>olfactory sensillum </li></ul></ul><ul><ul><li>*Strategies for importing terms are not covered in this tutorial, please ask me for details if you are interested. </li></ul></ul>
  59. 63. Making new cross product terms <ul><li>Add a new root class: </li></ul>
  60. 64. More necessary and sufficient definitions <ul><li>Making new cross products </li></ul><ul><ul><li>glutamatergic neuron </li></ul></ul><ul><ul><li>taste sensillum </li></ul></ul><ul><ul><li>chemosensory sensillum </li></ul></ul><ul><li>Re-run the rule-based-reasoner </li></ul><ul><li>Check the sensillum hierarchy </li></ul><ul><ul><li>Explain how olfactory sensillum got its parent </li></ul></ul>
  61. 65. Useful renders for working with cross-products <ul><li>Cross-Product detector: </li></ul><ul><li>Multiple asserted inheritance detector: </li></ul><ul><li>Unclassified term detector: </li></ul><ul><li>Incompletely classified term detector: </li></ul>
  62. 66. Detecting redundancy with the reasoner Redundant relationship Use the Rule Base Reasoner* *Link pile reasoner over-flags redundancy when cross-product terms are present
  63. 67. Instantiating inferred is_a for release <ul><li>If your users are not using your ontology with a reasoner, you may need to pre-reason for them. </li></ul><ul><li>To do this, you can use the ‘save implied links’ function in the save interface: </li></ul>
  64. 68. Advanced Searching <ul><li>OE2 can combine string searching and logical querying. </li></ul><ul><li>Logical querying requires the reasoner to be turned on. </li></ul>
  65. 69. Logical queries The first leg of the search finds all subtypes of sensillum. The second leg finds all parts of the head. The ‘matches all’ radio button ensures the two legs are combined by a boolean AND. OWL-DL: sensillum and part_of some head ** Note – reasoner required ** Find all sensilla that are part of some head:
  66. 70. Logical queries How is sensillum classified? What does adPN DL1 develop_from ? Note – this query has no OWL-DL equivalent ** Note – reasoner required **
  67. 71. Acknowledgements – OBO-Edit developers <ul><li>Current developers </li></ul><ul><ul><li>Amina Abdulla </li></ul></ul><ul><ul><li>Chris Mungall </li></ul></ul><ul><ul><li>Jennifer Deegan </li></ul></ul><ul><li>Former developers </li></ul><ul><ul><li>John Day-Richter </li></ul></ul><ul><ul><li>Nomi Harris </li></ul></ul>
  68. 72. Acknowledgements – OBO-Edit Working Group <ul><li>Amina Abdulla , Chris Mungall , Suzanna Lewis, - BBOP, LBNL, Berkeley, CA, USA </li></ul><ul><li>Midori A. Harris, Jennifer Deegan , Amelia Ireland, Jane Lomax - GO-EBI, Hinxton, UK </li></ul><ul><li>David Hill, Alexander D. Diehl, Harold Drabkin, Terry Meehan - MGI, The Jackson Laboratory, Bar Harbor, ME, USA </li></ul><ul><li>Karen R. Christie - SGD, Department of Genetics, Stanford University, Stanford, CA, USA </li></ul><ul><li>Tanya Berardini - TAIR, Carnegie Institution, Department of Plant Biology, Stanford, CA, USA </li></ul><ul><li>Petra Fey - DictyBase, Northwestern University, Chicago, IL, USA </li></ul><ul><li>Carol A. Bastiani, Ranjana Kishore - WormBase, California Institute of Technology, Pasadena, CA, USA </li></ul><ul><li>Victoria Petri - RGD, Medical College of Wisconsin, Milwaukee, WI, USA </li></ul><ul><li>Colin Batchelor- Royal Society of Chemistry, Cambridge UK </li></ul><ul><li>Shuly Avraham - Cold Spring Harbor Laboratory, Cold Spring Harbor, NY </li></ul><ul><li>Pankaj Jaiswal - Gramene, Department of Plant Breeding, Cornell University, Ithaca, NY, USA </li></ul><ul><li>John Osborne - Robert H. Lurie Cancer Center, Northwestern University, Chicago, IL, USA </li></ul>
  69. 73. Acknowledgments <ul><li>Michael Ashburner </li></ul><ul><li>FlyBase (NHGRI) </li></ul><ul><li>Virtual Fly Brain (BBSRC) </li></ul><ul><li>EBI industry programme </li></ul>
  70. 74. Slides showing features not demonstrated in tutorial
  71. 75. Time savers <ul><li>Cloning </li></ul><ul><ul><li>Right click clone option makes clone of chosen term – identical in every way except for ID and ‘CLONE OF’ appended to term name </li></ul></ul><ul><li>Create multiple children </li></ul><ul><ul><li>Right click ‘create multiple children’ option. Does what is says on the box. Pops up interface were a bunch of new terms can be named at once. </li></ul></ul>
  72. 76. Combining Cross-Products with relationships => hidden assertions <ul><li>How could we record the generalization – All neurons with the function ‘smell’ are cholinergic? </li></ul><ul><ul><li>name : olfactory receptor neuron </li></ul></ul><ul><ul><li>intersection_of : neuron </li></ul></ul><ul><ul><li>intersection_of : has_function smell </li></ul></ul><ul><ul><li>relationship : releases_neurotransmitter acetylcholine </li></ul></ul><ul><ul><li>(OWL: EquivalentTo ( neuron and has_function some smell ), SubClassOf ( releases_neurotransmitter some acetylcholine ) </li></ul></ul><ul><li>Why is this potentially dangerous? </li></ul><ul><ul><li>Future editors using ‘has_function smell’ to record the function of a neuron class may not be aware that they are adding the assertion that the class is cholinergic </li></ul></ul><ul><li>Safeguards: </li></ul><ul><ul><li>if neurons classifed by neurotransmitter are disjoint, the reasoner can flag contradictions. </li></ul></ul><ul><ul><li>Keep a record of all examples (perhaps as a standardized comment) </li></ul></ul><ul><ul><li>State this assertion in the term definition with a link to a supporting reference. </li></ul></ul>
  73. 77. If the reasoner is flagging relationships you don’t think are redundant <ul><li>Are you sure your intended meaning for a relationship is transitive? </li></ul><ul><ul><li>e.g.- develops_from (transitive) is sometimes used as if it means ‘directly develops from’ (non-transitive) </li></ul></ul><ul><ul><li>In that case – request a new relation. </li></ul></ul><ul><ul><li>If you are interested in how to link relations such as develops_from and develops_directly_from so that they can be used for reasoning, please ask me or Chris after the tutorial </li></ul></ul>
  74. 78. Importing foreign ‘helper’ terms <ul><li>Formalising definitions is likely to require terms from other ontologies. </li></ul><ul><li>If you want to reason using the classification from another ontology, you need to import the full classification of each term. </li></ul><ul><li>In order to keep up-to-date, you need a mechanism to re-import the foreign terms you use. </li></ul>
  75. 79. Creating and maintaining a helper term filter Load / Save First leg finds helper term 2 nd leg finds terms that classify helper term <ul><li>Open foreign ontology and run the rule based reasoner </li></ul><ul><li>In the search tool, add the following two filter legs for each helper term </li></ul>3. Save filter for future maintenance / use as a save filter
  76. 80. Saving helper terms
  77. 81. Saving helper terms Check filter terms Make sure “allow dangling parents” is NOT checked Record version of foreign ontology here Avoid importing foreign ID rules
  78. 82. Saving helper terms Load helper term filter
  79. 83. Refreshing helper terms <ul><li>The examples I’ve shown here use term names. </li></ul><ul><li>This make the filter easy to read and edit, but names often change. </li></ul><ul><li>Therefore more sustainable to use IDs instead. </li></ul>

×