Difference between revisions of "CDAO"

From Evolutionary Informatics Working Group
Jump to: navigation, search
(Working meeting march 24-april 4)
m (Day 1, Monday)
Line 261: Line 261:
  
 
* Group 1 - TU related
 
* Group 1 - TU related
Descendant
+
** ** Descendant
Ancestor
+
** Ancestor
HTU
+
** HTU
Hypothetical Taxonomic Unit
+
** Hypothetical Taxonomic Unit
Most Recent Common Ancestor
+
** Most Recent Common Ancestor
MRCA
+
** ** MRCA
Operational Taxonomic Unit
+
** Operational Taxonomic Unit
OTU
+
** OTU
Outgroup
+
** Outgroup
Leaf node
+
** Leaf node
Terminal node
+
** Terminal node
Root
+
** Root
Basal
+
** Basal
  
  
 
* Group 2 - Tree related
 
* Group 2 - Tree related
Branch support
+
** Branch support
Tree
+
** Tree
Unresolved
+
** Unresolved
Cladrogram
+
** Cladrogram
Dichotomy
+
** Dichotomy
Edge
+
** Edge
Fully resolved
+
** Fully resolved
Monophyly
+
** Monophyly
Network
+
** Network
Bifurcation
+
** Bifurcation
Phylogenetic Tree
+
** Phylogenetic Tree
Phylogentic Tree Topology
+
** Phylogentic Tree Topology
Bipartition
+
** Bipartition
Bootstrap support
+
** Bootstrap support
Branch
+
** Branch
Subtree
+
** Subtree
Lineage
+
** Lineage
Topology
+
** Topology
Polytomy
+
** Polytomy
Unrooted
+
** Unrooted
  
  
 
* Group 3 - Character related
 
* Group 3 - Character related
Trait
+
** Trait
Character
+
** Character
Character-state
+
** Character-state
Character-State Data Matrix
+
** Character-State Data Matrix
Derived
+
** Derived
Apomorphy
+
** Apomorphy
Primitive
+
** Primitive
State
+
** State
Missing data
+
** Missing data
  
  
 
* Group 4 - Others
 
* Group 4 - Others
Gap
+
** Gap
Indel
+
** Indel
Homology
+
** Homology
Polymorphism
+
** Polymorphism
Taxon
+
** Taxon
Taxonomic Rank
+
** Taxonomic Rank
  
  
Line 324: Line 324:
  
 
* Group 1
 
* Group 1
HTU = Hypothetical Taxonomic Unit = Ancestor
+
** HTU = Hypothetical Taxonomic Unit = Ancestor
Leaf node = OTU = Operational Taxonomic Unit = Terminal node
+
** Leaf node = OTU = Operational Taxonomic Unit = Terminal node
Descendant = Child
+
** Descendant = Child
Root
+
** Root
Outgroup
+
** Outgroup
  
Most Recent Common Ancestor = MRCA
+
** Most Recent Common Ancestor = MRCA
Basal
+
** Basal
 
(These two concepts may be derived from an algorithm reading the ontology-annotated file, but they are not explicitly defined in the ontology itself. The information is there, but no specific concept is provided. If we choose to represent all the MRCA of all OTU/HTU and which TUs are more or less basal than other ones, we think the representation file would be very big.)
 
(These two concepts may be derived from an algorithm reading the ontology-annotated file, but they are not explicitly defined in the ontology itself. The information is there, but no specific concept is provided. If we choose to represent all the MRCA of all OTU/HTU and which TUs are more or less basal than other ones, we think the representation file would be very big.)
  
Line 337: Line 337:
  
 
* Group 2
 
* Group 2
Tree = Cladogram = Network = Phylogenetic Tree
+
** Tree = Cladogram = Network = Phylogenetic Tree
Dichotomy = Fully resolved = Bifurcation = Monophyly = Bipartition
+
** Dichotomy = Fully resolved = Bifurcation = Monophyly = Bipartition
Edge = Branch
+
** Edge = Branch
Polytomy = Unresolved
+
** Polytomy = Unresolved
Unrooted
+
** Unrooted
Subtree = Lineage
+
** Subtree = Lineage
Branch confidence level = Branch support = Bootstrap support
+
** Branch confidence level = Branch support = Bootstrap support
 
(here we used confidence level as it can support any confidence analysis, even if bootstrap is the most used)
 
(here we used confidence level as it can support any confidence analysis, even if bootstrap is the most used)
  
Topology = Phylogenetic Tree Topology
+
** Topology = Phylogenetic Tree Topology
 
(the topology is something we need to have to build ontology-based representations, it is imported from NEXUS file and it can be retrieve by the ontology file through child-parent relationships)
 
(the topology is something we need to have to build ontology-based representations, it is imported from NEXUS file and it can be retrieve by the ontology file through child-parent relationships)
  
Line 352: Line 352:
  
 
* Group 3 - Character related
 
* Group 3 - Character related
Trait: Defined as any characteristic of the TU that the annotator would like to describe
+
** Trait: Defined as any characteristic of the TU that the annotator would like to describe
Character: Defined as the characteristics used for evolutionary classification
+
** Character: Defined as the characteristics used for evolutionary classification
State = Character-state
+
** State = Character-state
Derived = Apomorphy
+
** Derived = Apomorphy
Primitive
+
** Primitive
Missing data
+
** Missing data
  
Character-State Data Matrix
+
** Character-State Data Matrix
 
(This would be in the input file of the ontology and could also be retrieved from the ontology-annotated file by algorithms)
 
(This would be in the input file of the ontology and could also be retrieved from the ontology-annotated file by algorithms)
  
Line 365: Line 365:
  
 
* Group 4 - Others
 
* Group 4 - Others
Gap = defined in the transformation
+
** Gap = defined in the transformation
Indel = defined in the transformation
+
** Indel = defined in the transformation
Homology
+
** Homology
Polymorphism = we didn't understand what it means
+
** Polymorphism = we didn't understand what it means
Taxon = defined as a property of an OTU
+
** Taxon = defined as a property of an OTU
Taxonomic Rank
+
** Taxonomic Rank
  
  

Revision as of 02:53, 25 March 2008

Comparative Data Analysis Ontology

The material previously on this page has been moved to CDAOManuscript.

This page is for ongoing work and contains links to supporting docs, past work, and sub-topics.

Protege

  • Some slides illustrating a brief introduction to the use of Protege [[1]HTML] [[2]PDF] [[3]Flash]


Initial test-driven development strategy

To get started, we propose to use a test-driven strategy based on explicit tests of the basic concepts from the ConceptGlossary. Attached is the media:prioritized_concept_list.txt (1 is highest priority, 3 is lowest). Here is how it works. Imagine we have a *high-level test language* and this is the code for testing the ontology on its implementation of the "ancestor" concept:

load_ontology("CDAO");
load_data("ancestor_test.nex"); 
statements = { "otuA is_a ancestor_of otuB", "htuAB is_a ancestor_of otuB" }; 
truth_value = { "false", "true" }; 
evaluate( statements, answers ); 

Here is the "ancestor_test.nex" file:

#NEXUS
BEGIN TAXA;
      dimensions ntax=4;
      taxlabels A B C D;  
END;
BEGIN TREES;
      tree bush = [&R] ((otuA,otuB)htuAB,(otuC,otuD)htuCD)htuABCD;
END;

Sorry, I ran out of time with this. But I'm going to try to do this for about 5 of the simple concepts before Monday.

Test Data Sets

Each data set comes with a tree and a character matrix in NEXUS format. To explore these data sets you may wish to:

There are four different categories of character sets:

  • DNA: aligned nucleotides coded via IUPAC standard (T, C, G, A, and so on)
  • protein: aligned amino acids coded via IUPAC standard (A, C, D, E, F, G, H, I and so on)
  • continuous: numeric values of continuous characters (e.g., 0.001, 0.230)
  • morphology: discrete morphological characters with ad hoc numeric encoding (e.g., 0 = absent, 1 = present)

The DNA data are "CDS" or "coding sequence" data, meaning the sequence of nucleotide triplets in the protein-coding part of a gene.

There are three grades of difficulty:

  • Simplified: small number of OTUs and characters; unambiguous states; single bifurcating tree
  • Typical: may contain many OTUs, multiple trees, polytomies, other stuff
  • Demanding: may contain ambiguous characters, mixed data types, notes, assumptions, etc.


type difficulty description comments NEXUS
CDS (DNA) Simplified Subset of 10 ATPase CDSs comments PF00137_10_cds.nex
CDS (DNA) Typical Eukaryotic cytochrome C CDSs comments PF00034_39_cds.nex
CDS (DNA) Typical Eukaryotic ATPase CDSs comments PF00137_47_cds.nex
CDS (DNA) Demanding NA comments [[Media:|NA]]
Protein (AA) Simplified Subset of 10 ATPases comments PF00137_10_protein.nex
Protein (AA) Typical Eukaryotic cytochrome Cs comments PF00034_39_protein.nex
Protein (AA) Typical Eukaryotic ATPases comments PF00137_47_protein.nex
Protein (AA) Demanding NA comments [[Media:|NA]]
Continuous Simplified NA comments [[Media:|NA]]
Continuous Typical Inhibitor sensitivity data for human kinases -log(IC50) scaled kinase_rescaled3_sets.nex
Continuous Demanding NA comments [[Media:|NA]]
Morphological Simplified NA comments [[Media:|NA]]
Morphological Typical Nematode vulval morphology and development Kiontke, et al., 2007 Kiontke_CB_fixed.nex
Morphological Demanding NA comments [[Media:|NA]]

Initial Implementation

  • The preliminary draft of the CDAO work done at NMSU is available here [4]. This is a current view of the content of the ontology [5]. In particular
    • MAO-Prime: [[6]Web page] this is a Protege implementation of the MAO along with the inclusion of some description of individual nucleotides, amino-acids, and meta symbols such as gap.
    • CDAO: [[7]Web page] this is a fairly direct implementation of the draft ontology developed during the Fall meeting of the EvoInfo group at NESCent
    • Transformations: [[8]Web Page] During the Fall meeting we discussed the need of including in the ontology a description of possible transformations; this is an attempt of this.
    • Tree: [[9]Web Page] this is a draft ontology for the description of trees, mostly drawn from Nexus and from Chado.


Evaluation

  • Some preliminary considerations:
    • Comparison of NeXML elements with ontology concepts (Updated Feb. 18, 2008) [10]
    • Comparison of Nexus elements with ontology concepts (Updated Mar. 1, 2008) [11]
    • Comparison of CHADO (Phylogeny Module) elements with ontology concepts (Added Feb. 25, 2008) [12]

Meeting Notes

Telecon, 7 March, 2007

present: Francisco Prodoscimi, Julie Thompson, Enrico Pontelli, Arlin Stoltzfus

What activities to do before the meeting? Plan for development?

  1. represent 4 simple test cases
    1. nt alignment plus tree
    2. prot alignment plus tree
    3. kinases with inhibitor sensitivity
    4. worm morphologies
  2. carry out operations with reasoning
    1. set and logic operations on characters and OTUs
    2. tree operations (clade selection, prune)
    3. other?
  3. map ontology to other representations
    1. NEXUS
    2. neXML
  4. start compiling list of concepts that are missing
    1. review Enrico's proposal
  5. look ahead to future challenges
    1. genetic encoding of characters
    2. ambiguous, multi-dimensional, or otherwise complex characters

Other issues for meeting and for paper

  • what is the scope?
  • How to integrate with other ontologies?
    • table from 'related artefacts' exercise
    • genetic code as a test case for integration
      • requires nt aa mapping to specify code
      • requires species taxonomy to assign code to species
      • requires cell ontology to assign code to compartmental genome (nuc, mito, cp)

Next meeting

  • telecon, 14 March, 2:00 pm UTC
  • agenda
    • nt and prot test data sets (arlin)
    • protege demo (brandon)

telecon, 14 March, 2:00 UTC

Working meeting march 24-april 4

Day 1, Monday

We began by checking the concepts in the prioritized_concept_list, trying to make them available in the current version of the ontology. Most of the concepts were added in the tree subsection, although a number of them were shown to be redundant or better represented as other terms and relationships. We have also converted some terms that were classes to properties and other from properties to classes -- in the context of an OWL representation.

First we grouped the terms in related groups:

  • Group 1 - TU related
    • ** Descendant
    • Ancestor
    • HTU
    • Hypothetical Taxonomic Unit
    • Most Recent Common Ancestor
    • ** MRCA
    • Operational Taxonomic Unit
    • OTU
    • Outgroup
    • Leaf node
    • Terminal node
    • Root
    • Basal


  • Group 2 - Tree related
    • Branch support
    • Tree
    • Unresolved
    • Cladrogram
    • Dichotomy
    • Edge
    • Fully resolved
    • Monophyly
    • Network
    • Bifurcation
    • Phylogenetic Tree
    • Phylogentic Tree Topology
    • Bipartition
    • Bootstrap support
    • Branch
    • Subtree
    • Lineage
    • Topology
    • Polytomy
    • Unrooted


  • Group 3 - Character related
    • Trait
    • Character
    • Character-state
    • Character-State Data Matrix
    • Derived
    • Apomorphy
    • Primitive
    • State
    • Missing data


  • Group 4 - Others
    • Gap
    • Indel
    • Homology
    • Polymorphism
    • Taxon
    • Taxonomic Rank


Then, we defined the synonymous usage of terms. When the terms are synonymous concepts or representation, we chose just one of them to present.


  • Group 1
    • HTU = Hypothetical Taxonomic Unit = Ancestor
    • Leaf node = OTU = Operational Taxonomic Unit = Terminal node
    • Descendant = Child
    • Root
    • Outgroup
    • Most Recent Common Ancestor = MRCA
    • Basal

(These two concepts may be derived from an algorithm reading the ontology-annotated file, but they are not explicitly defined in the ontology itself. The information is there, but no specific concept is provided. If we choose to represent all the MRCA of all OTU/HTU and which TUs are more or less basal than other ones, we think the representation file would be very big.)


  • Group 2
    • Tree = Cladogram = Network = Phylogenetic Tree
    • Dichotomy = Fully resolved = Bifurcation = Monophyly = Bipartition
    • Edge = Branch
    • Polytomy = Unresolved
    • Unrooted
    • Subtree = Lineage
    • Branch confidence level = Branch support = Bootstrap support

(here we used confidence level as it can support any confidence analysis, even if bootstrap is the most used)

    • Topology = Phylogenetic Tree Topology

(the topology is something we need to have to build ontology-based representations, it is imported from NEXUS file and it can be retrieve by the ontology file through child-parent relationships)


  • Group 3 - Character related
    • Trait: Defined as any characteristic of the TU that the annotator would like to describe
    • Character: Defined as the characteristics used for evolutionary classification
    • State = Character-state
    • Derived = Apomorphy
    • Primitive
    • Missing data
    • Character-State Data Matrix

(This would be in the input file of the ontology and could also be retrieved from the ontology-annotated file by algorithms)


  • Group 4 - Others
    • Gap = defined in the transformation
    • Indel = defined in the transformation
    • Homology
    • Polymorphism = we didn't understand what it means
    • Taxon = defined as a property of an OTU
    • Taxonomic Rank


Once all these concepts were defined and added to the ontology, we began to make a simple representation of a simple hypothetical dataset. During this preliminary representation we have found some errors, and modified some concepts from properties to classes (such like the branch one, etc). Moreover, we had some difficulties to work with Protégé since it seems to be in a very beta release and each time we found something that would be represented better in the ontology by changing slightly the concepts, we need to rebuild and re-enter manually all the concepts in our test set.

  • Question : can synonyms be represented in Protégé? I think it would be useful for scientists to be able to choose the term they want to use.

Related Work

  • we are working on a direct generation of an ontology from the Concept Glossary. We are documenting the progress at this page [13]. Note that the page is not up-to-date at this moment (hopefully it will be by the end of the day or tomorrow [3/18/2008]). The goal is to eventually show that CDAO can map over all these concepts.