Augustus 3.4.0
|
Mapping of sequence intervals from positions in the genome to positions in the alignment and vice versa. More...
#include <liftover.hh>
Public Member Functions | |
LiftOver (Alignment *a, vector< int > &o) | |
template<typename T > | |
void | projectToAli (vector< map< int_fast64_t, T * > > &seqints, map< int_fast64_t, list< pair< int, T * > > > &alignedSIs) |
template<typename T > | |
void | projectToGenome (map< int_fast64_t, list< pair< int, T * > > > &alignedSIs, vector< AnnoSequence * > const &seqRanges, vector< map< int_fast64_t, T * > > &seqints, bool insertMissingSIs=true) |
Mapping of sequence intervals from positions in the genome to positions in the alignment and vice versa.
A sequence interval can be any object T for which functions
int_fast64_ T::getKey() // returns a SeqIntKey encoding start position and length of the SI
T* create(int_fast64_t key , const char* dna) // creates a new SI from a SeqIntKey after verification (e.g. if SI is an // intron, check whether splice sites are present in the sequence)
exist. Sequence positions can be encoded as zero-length SIs.
Purpose: lifting over of exons, introns and non-canonical SS to other species (is it possible to generalize this class to lifting over whole gene structures?)