#include <MatchAligner.h>
Inheritance diagram for MatchTaskAlign:


Public Member Functions | |
| MatchTaskAlign (SourceReader &querySource, SourceReader &subjectSource, MatchAligner *pAlign, bool reverseQueryCoords=true, bool doAlignment=true, ostream &outputStream=cout) | |
| virtual | ~MatchTaskAlign () |
| virtual void | operator() (MatchStore &store) |
| void | reverseQueryCoords (bool yesOrNo=true) |
| void | doAlignment (bool yesOrNo=true) |
Protected Attributes | |
| MatchAligner * | pAlign_ |
| ostream & | outputStream_ |
| SourceReader & | querySource_ |
| SourceReader & | subjectSource_ |
| bool | reverseQueryCoords_ |
| bool | doAlignment_ |
Definition at line 109 of file MatchAligner.h.
| MatchTaskAlign::MatchTaskAlign | ( | SourceReader & | querySource, | |
| SourceReader & | subjectSource, | |||
| MatchAligner * | pAlign, | |||
| bool | reverseQueryCoords = true, |
|||
| bool | doAlignment = true, |
|||
| ostream & | outputStream = cout | |||
| ) |
Definition at line 50 of file MatchAligner.cpp.
00055 : 00056 querySource_(querySource), 00057 subjectSource_(subjectSource), 00058 pAlign_(pAlign), 00059 // numCols_(numCols), 00060 reverseQueryCoords_(reverseQueryCoords), 00061 doAlignment_(doAlignment), 00062 outputStream_(outputStream) 00063 { 00064 } // ~MatchTaskAlign::MatchTaskAlign
| MatchTaskAlign::~MatchTaskAlign | ( | ) | [virtual] |
Definition at line 67 of file MatchAligner.cpp.
References pAlign_.
00068 { 00069 delete pAlign_; 00070 } // ~MatchTaskAlign::~MatchTaskAlign
| void MatchTaskAlign::operator() | ( | MatchStore & | store | ) | [virtual] |
Implements MatchTask.
Definition at line 73 of file MatchAligner.cpp.
References doAlignment_, SourceReader::extractSource(), SourceReader::extractSourceReverse(), outputStream_, querySource_, reverseQueryCoords_, and subjectSource_.
00074 { 00075 // cout << "MTA::()" << endl; 00076 00077 if (store.empty()) return; 00078 00079 SequenceOffset effectiveQueryStart, effectiveQueryEnd; 00080 00081 00082 vector<Match*>::const_iterator i(store.begin()); 00083 00084 // outputStream_ << endl << "Matches For Query " 00085 // << (*i)->getQueryNum() 00086 // << " (" << (*i)->getQuerySize() 00087 // << " bases): " << (*i)->getQueryName() 00088 // << "\n\n"; 00089 00090 outputStream_ << setprecision(2) << setiosflags(ios::fixed); 00091 00092 // vector<char> queryData, subjectData; 00093 00094 for( ;i!=store.end();++i) 00095 { 00096 00097 if( reverseQueryCoords_ && (!(*i)->isQueryForward()) ) 00098 { 00099 effectiveQueryStart = (*i)->getQuerySize()-(*i)->getQueryEnd()+1; 00100 effectiveQueryEnd = (*i)->getQuerySize()-(*i)->getQueryStart()+1; 00101 } // ~if 00102 else 00103 { 00104 effectiveQueryStart = (*i)->getQueryStart(); 00105 effectiveQueryEnd = (*i)->getQueryEnd(); 00106 } // ~else 00107 00108 outputStream_ 00109 << ((*i)->isQueryForward()?"F":"R") 00110 << ((*i)->isSubjectForward()?"F":"R") << "\t" 00111 << (*i)->getQueryName() << "\t" 00112 << effectiveQueryStart << "\t" 00113 << effectiveQueryEnd << "\t" 00114 << (*i)->getSubjectName() << "\t" 00115 << (*i)->getSubjectStart() << "\t" 00116 << (*i)->getSubjectEnd() << "\t" 00117 << (*i)->getNumBases() << "\t" 00118 << 100.0*((*i)->getNumBases()) / 00119 ((*i)->getQueryEnd()-(*i)->getQueryStart()+1) 00120 << endl; 00121 00122 // suppress output of graphical alignments if required 00123 if( !doAlignment_ ) continue; 00124 00125 00126 char* pSubject; 00127 char* pQuery; 00128 00129 // cout << "extracting subject" << endl; 00130 00131 if ((*i)->isSubjectForward()) 00132 { 00133 // cout << "extracting subject fwd" << endl; 00134 subjectSource_.extractSource( &pSubject, //subjectData, 00135 (*i)->getSubjectNum(), 00136 (*i)->getSubjectStart(), 00137 (*i)->getSubjectEnd() ); 00138 } // ~if 00139 else 00140 { 00141 // cout << "extracting subject rev" << endl; 00142 subjectSource_.extractSourceReverse( &pSubject, //subjectData, 00143 (*i)->getSubjectNum(), 00144 (*i)->getSubjectStart(), 00145 (*i)->getSubjectEnd() ); 00146 } // ~else 00147 00148 if (pSubject[0]=='\0') continue; // did not get subject data from server 00149 00150 if ((*i)->isQueryForward()) 00151 { 00152 // cout << "extracting query fwd" << endl; 00153 querySource_.extractSource 00154 ( &pQuery, //queryData, 00155 (*i)->getQueryNum(), 00156 effectiveQueryStart, 00157 effectiveQueryEnd ); 00158 } // ~if 00159 else 00160 { 00161 // cout << "extracting query rev" << endl; 00162 querySource_.extractSourceReverse 00163 ( &pQuery, //queryData, 00164 (*i)->getQueryNum(), 00165 effectiveQueryStart, 00166 effectiveQueryEnd ); 00167 } // ~else 00168 // cout << "all extractions done" << endl; 00169 00170 (*pAlign_)( pQuery,//(const char*) &queryData[0], 00171 effectiveQueryStart, 00172 effectiveQueryEnd, 00173 pSubject,//(const char*) &subjectData[0], 00174 (*i)->getSubjectStart(), 00175 (*i)->getSubjectEnd() ); 00176 00177 // queryData.clear(); 00178 // subjectData.clear(); 00179 } // ~for i 00180 00181 00182 } // ~MatchTaskAlign::operator()(MatchStore& store)
Here is the call graph for this function:

| void MatchTaskAlign::reverseQueryCoords | ( | bool | yesOrNo = true |
) | [inline] |
Definition at line 122 of file MatchAligner.h.
References reverseQueryCoords_.
00123 { 00124 reverseQueryCoords_ = yesOrNo; 00125 } // ~void reverseQueryCoords( bool yesOrNo= true)
| void MatchTaskAlign::doAlignment | ( | bool | yesOrNo = true |
) | [inline] |
Definition at line 127 of file MatchAligner.h.
References doAlignment_.
00128 { 00129 doAlignment_ = yesOrNo; 00130 } // ~void doAlignment( bool yesOrNo= true)
MatchAligner* MatchTaskAlign::pAlign_ [protected] |
ostream& MatchTaskAlign::outputStream_ [protected] |
SourceReader& MatchTaskAlign::querySource_ [protected] |
SourceReader& MatchTaskAlign::subjectSource_ [protected] |
bool MatchTaskAlign::reverseQueryCoords_ [protected] |
Definition at line 144 of file MatchAligner.h.
Referenced by operator()(), and reverseQueryCoords().
bool MatchTaskAlign::doAlignment_ [protected] |
1.5.2