TraceBackerBasic Class Reference

#include <MatchAligner.h>

Collaboration diagram for TraceBackerBasic:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TraceBackerBasic (AlignBreakType p1Gap, AlignBreakType p2Gap, Alignment &alignment)
bool operator() (PathMatrix< PathType >::CellIterator &current)

Private Attributes

AlignBreakType p1Gap_
AlignBreakType p2Gap_
Alignmentalignment_

Detailed Description

Definition at line 669 of file MatchAligner.h.


Constructor & Destructor Documentation

TraceBackerBasic::TraceBackerBasic ( AlignBreakType  p1Gap,
AlignBreakType  p2Gap,
Alignment alignment 
) [inline]

Definition at line 672 of file MatchAligner.h.

00673                                            :
00674     p1Gap_(p1Gap), p2Gap_(p2Gap),
00675     alignment_(alignment) {}


Member Function Documentation

bool TraceBackerBasic::operator() ( PathMatrix< PathType >::CellIterator &  current  ) 

Definition at line 1139 of file MatchAligner.cpp.

References alignBreakNull, fromFinished, fromN, fromSW, and fromW.

01140 {
01141   //  cout << (int)(current.second-current.first->begin());
01142 
01143   alignment_.push_front( AlignInfo() );
01144   alignment_.front().breakType=alignBreakNull;
01145 
01146   if (*current.second&fromFinished)
01147   {
01148     //    cout << "finished traceback" << endl;
01149     return false;
01150   } // ~if
01151   else if (*current.second&fromW)
01152   {
01153     //    cout << "going W" << endl;
01154     current.second 
01155       = (current.first-1)->begin() 
01156       + (current.second-current.first->begin());
01157     --current.first;
01158     alignment_.front().numMatches++; // doesn't check for mismatch
01159   } // ~else if
01160   else if (*current.second&fromN)
01161   {
01162     //    cout << "going N" << endl;
01163     assert(current.second!=current.first->begin());
01164     --current.second;
01165     alignment_.push_front( AlignInfo() );
01166     alignment_.front().breakType=p1Gap_; 
01167   } // ~else if
01168   else if (*current.second&fromSW)
01169   {
01170     //    cout << "going SW" << endl;
01171     current.second 
01172       = (current.first-1)->begin() 
01173       + (current.second-current.first->begin());
01174     ++current.second;
01175     --current.first;
01176     alignment_.push_front( AlignInfo() );
01177     alignment_.front().breakType=p2Gap_; 
01178   } // ~else if
01179   else assert (1==0);
01180 
01181   return true;
01182 } // ~bool TraceBackerBasic::operator()


Member Data Documentation

AlignBreakType TraceBackerBasic::p1Gap_ [private]

Definition at line 679 of file MatchAligner.h.

AlignBreakType TraceBackerBasic::p2Gap_ [private]

Definition at line 680 of file MatchAligner.h.

Alignment& TraceBackerBasic::alignment_ [private]

Definition at line 681 of file MatchAligner.h.


The documentation for this class was generated from the following files:
Generated on Fri Dec 21 13:22:57 2007 for ssaha by  doxygen 1.5.2