NOTE: We are working on migrating this site away from MediaWiki, so editing pages will be disabled for now.
Difference between revisions of "Chado Phylogeny Module"
m |
(Latest version of tables) |
||
Line 48: | Line 48: | ||
|+ phylonode Structure | |+ phylonode Structure | ||
|- | |- | ||
− | ! | + | ! FK |
! Name | ! Name | ||
! Type | ! Type | ||
Line 128: | Line 128: | ||
|+ phylonode_dbxref Structure | |+ phylonode_dbxref Structure | ||
|- | |- | ||
− | ! | + | ! FK |
! Name | ! Name | ||
! Type | ! Type | ||
Line 162: | Line 162: | ||
|+ phylonode_organism Structure | |+ phylonode_organism Structure | ||
|- | |- | ||
− | ! | + | ! FK |
! Name | ! Name | ||
! Type | ! Type | ||
Line 194: | Line 194: | ||
|+ phylonode_pub Structure | |+ phylonode_pub Structure | ||
|- | |- | ||
− | ! | + | ! FK |
! Name | ! Name | ||
! Type | ! Type | ||
Line 223: | Line 223: | ||
== Table: phylonode_relationship == | == Table: phylonode_relationship == | ||
− | This is for | + | This is for relationships that are not strictly hierarchical; for example, horizontal gene transfer. Most phylogenetic trees are strictly hierarchical, nevertheless it is here for completeness. |
{| border="1" cellpadding="3" | {| border="1" cellpadding="3" | ||
|+ phylonode_relationship Structure | |+ phylonode_relationship Structure | ||
|- | |- | ||
− | ! | + | ! FK |
! Name | ! Name | ||
! Type | ! Type | ||
Line 260: | Line 260: | ||
| integer | | integer | ||
| '' '' | | '' '' | ||
+ | |- class="tr1" | ||
+ | | | ||
+ | [[Chado_Tables#Table:_phylotree| phylotree]] | ||
+ | | phylotree_id | ||
+ | | integer | ||
+ | | '' NOT NULL '' | ||
|} | |} | ||
Line 271: | Line 277: | ||
|+ phylonodeprop Structure | |+ phylonodeprop Structure | ||
|- | |- | ||
− | ! | + | ! FK |
! Name | ! Name | ||
! Type | ! Type | ||
Line 315: | Line 321: | ||
|+ phylotree Structure | |+ phylotree Structure | ||
|- | |- | ||
− | ! | + | ! FK |
! Name | ! Name | ||
! Type | ! Type | ||
Line 342: | Line 348: | ||
| '' ''<br /><br />Type: protein, nucleotide, taxonomy, for example. The type should be any SO type, or "taxonomy". | | '' ''<br /><br />Type: protein, nucleotide, taxonomy, for example. The type should be any SO type, or "taxonomy". | ||
|- class="tr0" | |- class="tr0" | ||
+ | | | ||
+ | [[Chado_Tables#Table:_analysis| analysis]] | ||
+ | | analysis_id | ||
+ | | integer | ||
+ | | '' '' | ||
+ | |- class="tr1" | ||
| | | | ||
| comment | | comment | ||
Line 351: | Line 363: | ||
* [[Chado_Tables#Table:_phylonode| phylonode]] | * [[Chado_Tables#Table:_phylonode| phylonode]] | ||
+ | |||
+ | * [[Chado_Tables#Table:_phylonode_relationship| phylonode_relationship]] | ||
* [[Chado_Tables#Table:_phylotree_pub| phylotree_pub]] | * [[Chado_Tables#Table:_phylotree_pub| phylotree_pub]] | ||
Line 365: | Line 379: | ||
|+ phylotree_pub Structure | |+ phylotree_pub Structure | ||
|- | |- | ||
− | ! | + | ! FK |
! Name | ! Name | ||
! Type | ! Type | ||
Line 389: | Line 403: | ||
---- | ---- | ||
− | |||
[[Category:Chado]] | [[Category:Chado]] |
Revision as of 22:09, 13 April 2007
This page or section needs to be edited. Please help by editing this page to add your revisions or additions.
Contents
Introduction
For representing phylogenetic trees; the trees represent the phylogeny of some some kind of sequence feature, protein or nucleotide, or actual organism taxonomy trees.
This module also has the ability to easily create multiple trees, to easily create super trees, to retrieve nodes easily from different levels in a tree without recursion (nested sets), and the ability to associate trees with algorithms (referencing the Chado Companalysis Module).
This module relies heavily on the Sequence module. In particular, all the leaf nodes in a tree correspond to features; these will usually be features of type SO:protein or SO:polypeptide (but other trees are possible - e.g. intron trees). If it is desirable to store multiple alignments for each non-leaf node, then each node can be mapped to a feature of type SO:match. Please refer to the sequence module docs for details on storing multiple alignments.
Annotating nodes
Each node can have a feature attached; this 'feature' is the multiple alignment for non-leaf nodes. It is these features that are annotated rather than annotating the nodes themselves. This has lots of advantages - we can piggyback off of the sequence module and reuse the tables there the leaf nodes may have annotations already attached - for example, GO associations. In fact, it is even possible to annotate ranges along an alignment - this would entail creating a new feature which has a featureloc on the alignment feature.
The nested set tree implementation by way of Joe Celko; see the excellent introduction by Aaron Mackey at http://www.oreillynet.com/pub/a/network/2002/11/27/bioconf.html.
Open Issues
Should there be an additional table, phylonode_relationshipprop? This table would Increase the detail with which one can describe the edges between phylonodes, and these details could include such things as bootstrapping details or divergence times. The current thinking is that such a table should be created but input from the Chado designers would be useful here.
More Information
See the page on the related Organism module.
Tables
Table: phylonode
This is the most pervasive element in the phylogeny module, cataloging the "phylonodes" of tree graphs. Edges are implied by the parent_phylonode_id reflexive closure. For all nodes in a nested set implementation the left and right index will be *between* the parents left and right indexes.
FK | Name | Type | Description |
---|---|---|---|
phylonode_id | serial | PRIMARY KEY | |
phylotree_id | integer | UNIQUE#1 UNIQUE#2 NOT NULL | |
parent_phylonode_id | integer | Root phylonode can have null parent_phylonode_id value. | |
left_idx | integer | UNIQUE#1 NOT NULL | |
right_idx | integer | UNIQUE#2 NOT NULL | |
type_id | integer | Type: e.g. root, interior, leaf. | |
feature_id | integer | Phylonodes can have optional features attached to them e.g. a protein or nucleotide sequence usually attached to a leaf of the phylotree for non-leaf nodes, the feature may be a feature that is an instance of SO:match; this feature is the alignment of all leaf features beneath it. | |
label | character varying(255) | ||
distance | double precision |
Tables referencing this one via Foreign Key Constraints:
Table: phylonode_dbxref
For example, for orthology, paralogy group identifiers; could also be used for NCBI taxonomy; for sequences, refer to phylonode_feature, feature associated dbxrefs.
FK | Name | Type | Description |
---|---|---|---|
phylonode_dbxref_id | serial | PRIMARY KEY | |
phylonode_id | integer | UNIQUE#1 NOT NULL | |
dbxref_id | integer | UNIQUE#1 NOT NULL |
Table: phylonode_organism
This linking table should only be used for nodes in taxonomy trees; it provides a mapping between the node and an organism. One node can have zero or one organisms, one organism can have zero or more nodes (although typically it should only have one in the standard NCBI taxonomy tree).
FK | Name | Type | Description |
---|---|---|---|
phylonode_organism_id | serial | PRIMARY KEY | |
phylonode_id | integer | UNIQUE NOT NULL One phylonode cannot refer to >1 organism. | |
organism_id | integer | NOT NULL |
Table: phylonode_pub
FK | Name | Type | Description |
---|---|---|---|
phylonode_pub_id | serial | PRIMARY KEY | |
phylonode_id | integer | UNIQUE#1 NOT NULL | |
pub_id | integer | UNIQUE#1 NOT NULL |
Table: phylonode_relationship
This is for relationships that are not strictly hierarchical; for example, horizontal gene transfer. Most phylogenetic trees are strictly hierarchical, nevertheless it is here for completeness.
FK | Name | Type | Description |
---|---|---|---|
phylonode_relationship_id | serial | PRIMARY KEY | |
subject_id | integer | UNIQUE#1 NOT NULL | |
object_id | integer | UNIQUE#1 NOT NULL | |
type_id | integer | UNIQUE#1 NOT NULL | |
rank | integer | ||
phylotree_id | integer | NOT NULL |
Table: phylonodeprop
FK | Name | Type | Description |
---|---|---|---|
phylonodeprop_id | serial | PRIMARY KEY | |
phylonode_id | integer | UNIQUE#1 NOT NULL | |
type_id | integer | UNIQUE#1 NOT NULL type_id could designate phylonode hierarchy relationships, for example: species taxonomy (kingdom, order, family, genus, species), "ortholog/paralog", "fold/superfold", etc. | |
value | text | UNIQUE#1 NOT NULL DEFAULT ''::text | |
rank | integer | UNIQUE#1 NOT NULL |
Table: phylotree
Global anchor for phylogenetic tree.
FK | Name | Type | Description |
---|---|---|---|
phylotree_id | serial | PRIMARY KEY | |
dbxref_id | integer | NOT NULL | |
name | character varying(255) | ||
type_id | integer | Type: protein, nucleotide, taxonomy, for example. The type should be any SO type, or "taxonomy". | |
analysis_id | integer | ||
comment | text |
Tables referencing this one via Foreign Key Constraints:
Table: phylotree_pub
Tracks citations global to the tree e.g. multiple sequence alignment supporting tree construction.
FK | Name | Type | Description |
---|---|---|---|
phylotree_pub_id | serial | PRIMARY KEY | |
phylotree_id | integer | UNIQUE#1 NOT NULL | |
pub_id | integer | UNIQUE#1 NOT NULL |