Augustus 3.4.0
|
global multiple sequence alignment with efficiently stored long gaps. More...
#include <alignment.hh>
Public Member Functions | |
Alignment (size_t k) | |
void | printTextGraph (ostream &strm) |
void | merge (Alignment *other, const MsaSignature *sig=NULL) |
int | maxRange () |
int | numRows () const |
int | numFilledRows () const |
int | getCumFragLen () const |
int | getMaxSeqIdLen () const |
string | getSignature () const |
int | numFitting (const MsaSignature *sig) const |
void | shiftAliPositions (int offset) |
void | pack () |
Public Attributes | |
int | aliLen |
vector< AlignmentRow * > | rows |
Friends | |
bool | mergeable (Alignment *a1, Alignment *a2, int maxGapLen, float mergeableFrac, bool strong) |
ostream & | operator<< (ostream &strm, const Alignment &a) |
Alignment * | mergeAliList (list< Alignment * > alis, const MsaSignature *sig) |
void | capAliSize (list< Alignment * > &alis, int maxRange) |
void | reduceOvlpRanges (list< Alignment * > &alis, size_t maxCov, float covPen) |
int | medianChrStartEndDiff (Alignment *a1, Alignment *a2) |
global multiple sequence alignment with efficiently stored long gaps.
Generation of exon candidates
1000 1010 1020 1030 1040 1050 chromosomal
chr21 |.........|..........|.........|..........|.........| positions ********* ************ in species 1 \ \ / / align chr21 *********----------—************---------— ment chr7 -—*****--------------—******************** | | \ a fragment \
chr7 |.........|..........|.........|..........|.........| chromosomal 2000 2010 2020 2030 2040 2050 positions in species 2 Here: Alignment a; a.aliLen = 46 a.rows[0].frags = ((1002, 0, 9), (1027, 23, 12)) a.rows[0].chrStart() = 1002 a.rows[0].chrEnd() = 1037
Coordinates are LEFT TO RIGHT, for reverse strand alignments, they refer to the REVERSE COMPLEMENT of the sequence.
|
friend |
For each alignment in the 'alis' list, if necessary, chunk it into piece alignments that have sequence ranges of size at most maxRange. The new alignments are added to the end. The maxRange limit can be violated in the untypical case that a single gapless fragment exceed this length threshold. The (recursively chosen) split point is before the largest gap in the interval [2/3*maxRange, maxRange].