Schema Version: 1.3



Features can be arranged in graphs, e.g. "exon part_of transcript part_of gene"; If type is thought of as a verb, the each arc or edge makes a statement Subject Verb Object. The object can also be thought of as parent (containing feature), and subject as child (contained feature or subfeature). We include the relationship rank/order, because even though most of the time we can order things implicitly by sequence coordinates, we can not always do this - e.g. transpliced genes. It is also useful for quickly getting implicit introns.


Column Type Size Foreign Key Nullable Default Comments
feature_relationship_id bigserial 19
subject_id int8 19
feature.feature_id feature_relationship_subject_id_fkey C

The subject of the subj-predicate-obj sentence. This is typically the subfeature.

object_id int8 19
feature.feature_id feature_relationship_object_id_fkey C

The object of the subj-predicate-obj sentence. This is typically the container feature.

type_id int8 19
cvterm.cvterm_id feature_relationship_type_id_fkey C

Relationship type between subject and object. This is a cvterm, typically from the OBO relationship ontology, although other relationship types are allowed. The most common relationship type is OBO_REL:part_of. Valid relationship types are constrained by the Sequence Ontology.

value text 2147483647

Additional notes or comments.

rank int4 10

The ordering of subject features with respect to the object feature may be important (for example, exon ordering on a transcript - not always derivable if you take trans spliced genes into consideration). Rank is used to order these; starts from zero.

Table contained -1 rows


Constraint Name Type Sort Column(s)
feature_relationship_pkey Primary key Asc feature_relationship_id
feature_relationship_c1 Must be unique Asc/Asc/Asc/Asc subject_id + object_id + type_id + rank
feature_relationship_idx1 Performance Asc subject_id
feature_relationship_idx2 Performance Asc object_id
feature_relationship_idx3 Performance Asc type_id