coitrees implements a fast static interval tree data structure with genomic
data in mind.
The data structure used a fairly standard interval tree, but with nodes stored in van Emde Boas layout, which improves average cache locality, and thus query performance. The downside is that building the tree is more expensive so a relatively large number of queries needs to made for it to break even.
The data structure
COITree is constructed with an array of
structs which store integer, end-inclusive intervals along with associated
metadata. The tree can be queried directly for coverage or overlaps, or
through the intermediary
SortedQuerenty which keeps track of some state
to accelerate overlaping queries.
COITree data structure. A representation of a static set of intervals with associated metadata, enabling fast overlap and coverage queries.
Iterate through nodes in a tree in sorted order by interval start position.
An interval with associated metadata.
An alternative query strategy that can be much faster when queries are performed in sorted order and overlap.
A trait facilitating COITree index types.