#include <MatchAligner.h>
Collaboration diagram for TraceBacker3D:

Public Member Functions | |
| TraceBacker3D (int queryFinalFrame, int subjectFinalFrame, bool p1IsQuery, Alignment &alignment) | |
| bool | operator() (PathMatrix< PathType3D >::CellIterator ¤t) |
Private Attributes | |
| AlignBreakType | p1Gap_ |
| AlignBreakType | p2Gap_ |
| AlignBreakType | p1FrameShift_ |
| AlignBreakType | p2FrameShift_ |
| int | k_ |
| int | l_ |
| Alignment & | alignment_ |
Definition at line 927 of file MatchAligner.h.
| TraceBacker3D::TraceBacker3D | ( | int | queryFinalFrame, | |
| int | subjectFinalFrame, | |||
| bool | p1IsQuery, | |||
| Alignment & | alignment | |||
| ) | [inline] |
Definition at line 937 of file MatchAligner.h.
00939 : 00940 p1Gap_( (p1IsQuery) ? 00941 alignBreakGapQuery : alignBreakGapSubject ), 00942 p2Gap_( (p1IsQuery) ? 00943 alignBreakGapSubject : alignBreakGapQuery ), 00944 p1FrameShift_( (p1IsQuery) ? 00945 alignBreakFrameShiftQuery : alignBreakFrameShiftSubject ), 00946 p2FrameShift_( (p1IsQuery) ? 00947 alignBreakFrameShiftSubject : alignBreakFrameShiftQuery ), 00948 k_( (p1IsQuery) ? 00949 queryFinalFrame : subjectFinalFrame ), 00950 l_( (p1IsQuery) ? 00951 subjectFinalFrame : queryFinalFrame ), 00952 alignment_(alignment) 00953 {} bool operator()( PathMatrix<PathType3D>::CellIterator& current );
| bool TraceBacker3D::operator() | ( | PathMatrix< PathType3D >::CellIterator & | current | ) |
Definition at line 1410 of file MatchAligner.cpp.
References alignBreakNull, fromFinished, fromN, fromPrevFrame1, fromPrevFrame2, fromSW, and fromW.
01411 { 01412 01413 // cout << (int)(current.second-current.first->begin()) 01414 // << " frame1: " << k_ << " frame2: " << l_ 01415 // << endl; 01416 01417 alignment_.push_front( AlignInfo() ); 01418 alignment_.front().breakType=alignBreakNull; 01419 01420 if (((*current.second)[k_][l_])&fromFinished) 01421 { 01422 return false; 01423 } 01424 else if (((*current.second)[k_][l_])&fromW) 01425 { 01426 // cout << "going W" << endl; 01427 current.second 01428 = (current.first-1)->begin() 01429 + (current.second-current.first->begin()); 01430 --current.first; 01431 alignment_.front().numMatches++; 01432 } // ~else if 01433 else if (((*current.second)[k_][l_])&fromN) 01434 { 01435 // cout << "going N" << endl; 01436 assert(current.second!=current.first->begin()); 01437 --current.second; 01438 alignment_.push_front( AlignInfo() ); 01439 alignment_.front().breakType=p1Gap_; 01440 } // ~else if 01441 else if (((*current.second)[k_][l_])&fromSW) 01442 { 01443 // cout << "going SW" << endl; 01444 current.second 01445 = (current.first-1)->begin() 01446 + (current.second-current.first->begin()); 01447 ++current.second; 01448 --current.first; 01449 alignment_.push_front( AlignInfo() ); 01450 alignment_.front().breakType=p2Gap_; 01451 } // ~else if 01452 else if (((*current.second)[k_][l_])&fromPrevFrame1) 01453 { 01454 // cout << "shifting frame p1" << endl; 01455 if (k_==0) 01456 { // then need to do a SW shift 01457 // (equivalent to a W shift in the full d.p. matrix) 01458 current.second 01459 = (current.first-1)->begin() 01460 + (current.second-current.first->begin()); 01461 ++current.second; 01462 --current.first; 01463 k_=2; 01464 } // ~if 01465 else k_--; 01466 alignment_.push_front( AlignInfo() ); 01467 alignment_.front().breakType=p1FrameShift_; 01468 } // ~else if 01469 else if (((*current.second)[k_][l_])&fromPrevFrame2) 01470 { 01471 // cout << "shifting frame p2" << endl; 01472 if (l_==0) 01473 { // then need to do a N shift 01474 // (equivalent to a N shift in the full d.p. matrix) 01475 assert(current.second!=current.first->begin()); 01476 --current.second; 01477 l_=2; 01478 } // ~if 01479 else l_--; 01480 alignment_.push_front( AlignInfo() ); 01481 alignment_.front().breakType=p2FrameShift_; 01482 } // ~else if 01483 else assert (1==0); 01484 01485 return true; 01486 01487 } // ~bool TraceBacker3D::operator()
AlignBreakType TraceBacker3D::p1Gap_ [private] |
Definition at line 957 of file MatchAligner.h.
AlignBreakType TraceBacker3D::p2Gap_ [private] |
Definition at line 958 of file MatchAligner.h.
AlignBreakType TraceBacker3D::p1FrameShift_ [private] |
Definition at line 959 of file MatchAligner.h.
AlignBreakType TraceBacker3D::p2FrameShift_ [private] |
Definition at line 960 of file MatchAligner.h.
int TraceBacker3D::k_ [private] |
Definition at line 962 of file MatchAligner.h.
int TraceBacker3D::l_ [private] |
Definition at line 963 of file MatchAligner.h.
Alignment& TraceBacker3D::alignment_ [private] |
Definition at line 964 of file MatchAligner.h.
1.5.2