588 |
|
class GXBandSet:public GList<GXBand> { |
589 |
|
public: |
590 |
|
GXSeed* qmatch; //long match (mismatches allowed) if a very good match was extended well |
591 |
+ |
GXSeed* tmatch; //terminal match to be used if there is no better alignment |
592 |
|
int idxoffset; //global anti-diagonal->index offset (a_len-1) |
593 |
|
//used to convert a diagonal to an index |
594 |
|
//diagonal is always b_ofs-a_ofs, so the minimum value is -a_len+1 |
602 |
|
GXBandSet(int a_len, int b_len):GList<GXBand>(a_len+b_len-1, false, true, false) { |
603 |
|
idxoffset=a_len-1; |
604 |
|
qmatch=NULL; |
605 |
+ |
tmatch=NULL; //terminal match to be used if everything else fails |
606 |
|
//diag will range from -a_len+1 to b_len-1, so after adjustment |
607 |
|
//by idxoffset we get a max of a_len+b_len-2 |
608 |
|
int bcount=a_len+b_len-1; |
691 |
|
//stricter boundary check |
692 |
|
badj=2; |
693 |
|
admax=1; |
694 |
+ |
if (alnlen<=6) badj++; |
695 |
|
} |
696 |
|
if (adist>admax) return false; |
697 |
|
if (type==galn_TrimRight) { |