| Tables | 
| phylotree | 
| phylotree_pub | 
| phylotreeprop | 
| phylonode | 
| phylonode_dbxref | 
| phylonode_pub | 
| phylonode_organism | 
| phylonodeprop | 
| phylonode_relationship | 
| phylotree | Top | 
| Field Name | Data Type | Size | Default Value | Other | Foreign Key | 
|---|---|---|---|---|---|
| phylotree_id | integer | 20 | PRIMARY KEY, UNIQUE, NOT NULL | ||
| dbxref_id | integer | 20 | NOT NULL | dbxref.dbxref_id | |
| name | varchar | 255 | NULL | ||
| type_id | integer | 20 | Type: protein, nucleotide, taxonomy, for example. The type should be any SO type, or "taxonomy". | cvterm.cvterm_id | |
| analysis_id | integer | 20 | NULL | analysis.analysis_id | |
| comment | text | 64000 | NULL | 
| Name | Fields | 
|---|---|
| phylotree_idx1 | phylotree_id | 
| Type | Fields | 
|---|---|
| NOT NULL | phylotree_id | 
| NOT NULL | dbxref_id | 
| FOREIGN KEY | dbxref_id | 
| FOREIGN KEY | type_id | 
| FOREIGN KEY | analysis_id | 
| UNIQUE | phylotree_id | 
| phylotree_pub | Top | 
| Field Name | Data Type | Size | Default Value | Other | Foreign Key | 
|---|---|---|---|---|---|
| phylotree_pub_id | integer | 20 | PRIMARY KEY, NOT NULL | ||
| phylotree_id | integer | 20 | UNIQUE, NOT NULL | phylotree.phylotree_id | |
| pub_id | integer | 20 | UNIQUE, NOT NULL | pub.pub_id | 
| Name | Fields | 
|---|---|
| phylotree_pub_idx1 | phylotree_id | 
| phylotree_pub_idx2 | pub_id | 
| Type | Fields | 
|---|---|
| NOT NULL | phylotree_pub_id | 
| NOT NULL | phylotree_id | 
| FOREIGN KEY | phylotree_id | 
| NOT NULL | pub_id | 
| FOREIGN KEY | pub_id | 
| UNIQUE | phylotree_id, pub_id | 
| phylotreeprop | Top | 
| Field Name | Data Type | Size | Default Value | Other | Foreign Key | 
|---|---|---|---|---|---|
| phylotreeprop_id | integer | 20 | PRIMARY KEY, NOT NULL | ||
| phylotree_id | integer | 20 | UNIQUE, NOT NULL | phylotree.phylotree_id | |
| type_id | integer | 20 | UNIQUE, NOT NULL, The name of the property/slot is a cvterm. The meaning of the property is defined in that cvterm. | cvterm.cvterm_id | |
| value | text | 64000 | NULL | The value of the property, represented as text. Numeric values are converted to their text representation. This is less efficient than using native database types, but is easier to query. | |
| rank | integer | 10 | 0 | UNIQUE, NOT NULL, Property-Value ordering. Any phylotree can have multiple values for any particular property type these are ordered in a list using rank, counting from zero. For properties that are single-valued rather than multi-valued, the default 0 value should be used | 
| Name | Fields | 
|---|---|
| phylotreeprop_idx1 | phylotree_id | 
| phylotreeprop_idx2 | type_id | 
| Type | Fields | 
|---|---|
| NOT NULL | phylotreeprop_id | 
| NOT NULL | phylotree_id | 
| NOT NULL | type_id | 
| NOT NULL | rank | 
| FOREIGN KEY | phylotree_id | 
| FOREIGN KEY | type_id | 
| UNIQUE | phylotree_id, type_id, rank | 
| phylonode | Top | 
| Field Name | Data Type | Size | Default Value | Other | Foreign Key | 
|---|---|---|---|---|---|
| phylonode_id | integer | 20 | PRIMARY KEY, NOT NULL | ||
| phylotree_id | integer | 20 | UNIQUE, NOT NULL | phylotree.phylotree_id | |
| parent_phylonode_id | integer | 20 | NULL | Root phylonode can have null parent_phylonode_id value. | phylonode.phylonode_id | 
| left_idx | integer | 10 | UNIQUE, NOT NULL | ||
| right_idx | integer | 10 | UNIQUE, NOT NULL | ||
| type_id | integer | 20 | Type: e.g. root, interior, leaf. | cvterm.cvterm_id | |
| feature_id | integer | 20 | 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. | feature.feature_id | |
| label | varchar | 255 | NULL | ||
| distance | float | 20 | NULL | 
| Name | Fields | 
|---|---|
| phylonode_parent_phylonode_id_idx | parent_phylonode_id | 
| Type | Fields | 
|---|---|
| NOT NULL | phylonode_id | 
| NOT NULL | phylotree_id | 
| FOREIGN KEY | phylotree_id | 
| FOREIGN KEY | parent_phylonode_id | 
| NOT NULL | left_idx | 
| NOT NULL | right_idx | 
| FOREIGN KEY | type_id | 
| FOREIGN KEY | feature_id | 
| UNIQUE | phylotree_id, left_idx | 
| UNIQUE | phylotree_id, right_idx | 
| phylonode_dbxref | Top | 
| Field Name | Data Type | Size | Default Value | Other | Foreign Key | 
|---|---|---|---|---|---|
| phylonode_dbxref_id | integer | 20 | PRIMARY KEY, NOT NULL | ||
| phylonode_id | integer | 20 | UNIQUE, NOT NULL | phylonode.phylonode_id | |
| dbxref_id | integer | 20 | UNIQUE, NOT NULL | dbxref.dbxref_id | 
| Name | Fields | 
|---|---|
| phylonode_dbxref_idx1 | phylonode_id | 
| phylonode_dbxref_idx2 | dbxref_id | 
| Type | Fields | 
|---|---|
| NOT NULL | phylonode_dbxref_id | 
| NOT NULL | phylonode_id | 
| FOREIGN KEY | phylonode_id | 
| NOT NULL | dbxref_id | 
| FOREIGN KEY | dbxref_id | 
| UNIQUE | phylonode_id, dbxref_id | 
| phylonode_pub | Top | 
| Field Name | Data Type | Size | Default Value | Other | Foreign Key | 
|---|---|---|---|---|---|
| phylonode_pub_id | integer | 20 | PRIMARY KEY, NOT NULL | ||
| phylonode_id | integer | 20 | UNIQUE, NOT NULL | phylonode.phylonode_id | |
| pub_id | integer | 20 | UNIQUE, NOT NULL | pub.pub_id | 
| Name | Fields | 
|---|---|
| phylonode_pub_idx1 | phylonode_id | 
| phylonode_pub_idx2 | pub_id | 
| Type | Fields | 
|---|---|
| NOT NULL | phylonode_pub_id | 
| NOT NULL | phylonode_id | 
| FOREIGN KEY | phylonode_id | 
| NOT NULL | pub_id | 
| FOREIGN KEY | pub_id | 
| UNIQUE | phylonode_id, pub_id | 
| phylonode_organism | Top | 
| Field Name | Data Type | Size | Default Value | Other | Foreign Key | 
|---|---|---|---|---|---|
| phylonode_organism_id | integer | 20 | PRIMARY KEY, NOT NULL | ||
| phylonode_id | integer | 20 | UNIQUE, NOT NULL, One phylonode cannot refer to >1 organism. | phylonode.phylonode_id | |
| organism_id | integer | 20 | NOT NULL | organism.organism_id | 
| Name | Fields | 
|---|---|
| phylonode_organism_idx1 | phylonode_id | 
| phylonode_organism_idx2 | organism_id | 
| Type | Fields | 
|---|---|
| NOT NULL | phylonode_organism_id | 
| NOT NULL | phylonode_id | 
| FOREIGN KEY | phylonode_id | 
| NOT NULL | organism_id | 
| FOREIGN KEY | organism_id | 
| UNIQUE | phylonode_id | 
| phylonodeprop | Top | 
| Field Name | Data Type | Size | Default Value | Other | Foreign Key | 
|---|---|---|---|---|---|
| phylonodeprop_id | integer | 20 | PRIMARY KEY, NOT NULL | ||
| phylonode_id | integer | 20 | UNIQUE, NOT NULL | phylonode.phylonode_id | |
| type_id | integer | 20 | UNIQUE, NOT NULL, type_id could designate phylonode hierarchy relationships, for example: species taxonomy (kingdom, order, family, genus, species), "ortholog/paralog", "fold/superfold", etc. | cvterm.cvterm_id | |
| value | text | 64000 | UNIQUE, NOT NULL | ||
| rank | integer | 10 | 0 | UNIQUE, NOT NULL, It is not clear how useful the rank concept is here, leave it in for now. | 
| Name | Fields | 
|---|---|
| phylonodeprop_idx1 | phylonode_id | 
| phylonodeprop_idx2 | type_id | 
| Type | Fields | 
|---|---|
| NOT NULL | phylonodeprop_id | 
| NOT NULL | phylonode_id | 
| FOREIGN KEY | phylonode_id | 
| NOT NULL | type_id | 
| FOREIGN KEY | type_id | 
| NOT NULL | value | 
| NOT NULL | rank | 
| UNIQUE | phylonode_id, type_id, value, rank | 
| phylonode_relationship | Top | 
| Field Name | Data Type | Size | Default Value | Other | Foreign Key | 
|---|---|---|---|---|---|
| phylonode_relationship_id | integer | 20 | PRIMARY KEY, NOT NULL | ||
| subject_id | integer | 20 | UNIQUE, NOT NULL | phylonode.phylonode_id | |
| object_id | integer | 20 | UNIQUE, NOT NULL | phylonode.phylonode_id | |
| type_id | integer | 20 | UNIQUE, NOT NULL | cvterm.cvterm_id | |
| rank | integer | 10 | |||
| phylotree_id | integer | 20 | NOT NULL | phylotree.phylotree_id | 
| Name | Fields | 
|---|---|
| phylonode_relationship_idx1 | subject_id | 
| phylonode_relationship_idx2 | object_id | 
| phylonode_relationship_idx3 | type_id | 
| Type | Fields | 
|---|---|
| NOT NULL | phylonode_relationship_id | 
| NOT NULL | subject_id | 
| FOREIGN KEY | subject_id | 
| NOT NULL | object_id | 
| FOREIGN KEY | object_id | 
| NOT NULL | type_id | 
| FOREIGN KEY | type_id | 
| NOT NULL | phylotree_id | 
| FOREIGN KEY | phylotree_id | 
| UNIQUE | subject_id, object_id, type_id |