BioCantor paradigm

The basis of the BioCantor paradigm is that objects are linked by flexible parent/child relationships; flexible operations can be performed by jumping around the resulting hierarchy. In most cases, parent/child relationships are used to establish the parent as the frame of reference for the location of the child, though parent/child relationships are not required to define a coordinate system.

Three main object types populate this paradigm. Location objects represent blocked features (which can represent, say, a multi-exon transcript). Sequence objects hold sequence data. Parent objects define parent/child relationships. The Parent class is very flexible in order to accommodate different types of relationships. For example, a Parent object can optionally hold a pointer to a Sequence, meaning that sequence is the frame of reference for an object with that Parent. A Parent object can optionally hold a Location, meaning that is the location of the child relative to that parent. Parent has several optional parameters which enable different types of relationships and operations. See “Instantiating BioCantor objects” for concrete examples.

Objects hold pointers to their own (optional) parent. Parent objects do not hold pointers to children and can be reused for multiple children. Location objects, Sequence objects, and Parent objects can all have parents. Multi-level hierarchies are established when Parent objects have their own parents.

See the remaining documentation for detailed explanations of how to instantiate and use these classes.