PSL_COLUMN_COUNT(21);
86 autocolumnCount =
columns.size();
87 if(columnCount != PSL_COLUMN_COUNT && columnCount != PSL_COLUMN_COUNT+1) {
91 "PSL Error: Record has invalid column count.");
126vector<string> values;
129 for(
const auto&
value: values) {
134 for(
const auto&
value: values) {
139 for(
const auto&
value: values) {
148 "PSL Error: Number of blockSizes does not match blockCount.");
154 "PSL Error: Number of blockStartsQ does not match blockCount.");
160 "PSL Error: Number of blockStartsT does not match blockCount.");
174ostr <<
"matches : "<<
mMatches<<endl;
177ostr <<
"nCount : "<<
mCountN<<endl;
182ostr <<
"strand : "<< strand << endl;
183ostr <<
"qName : "<< nameQ << endl;
184ostr <<
"qSize : "<<
mSizeQ<< endl;
185ostr <<
"qStart : "<<
mStartQ<< endl;
186ostr <<
"qEnd : "<<
mEndQ<< endl;
187ostr <<
"tName : "<< nameT << endl;
188ostr <<
"tSize : "<<
mSizeT<< endl;
189ostr <<
"tStart : "<<
mStartQ<< endl;
190ostr <<
"tEnd : "<<
mEndT<< endl;
195 stringblockStartsQ =
197 stringblockStartsT =
200ostr <<
"blockSizes : "<< blockSizes << endl;
201ostr <<
"blockStartsQ : "<< blockStartsQ << endl;
202ostr <<
"blockStartsT : "<< blockStartsT << endl;
220 auto& ids = denseSeg.
SetIds();
221ids.push_back(idResolver(
mNameQ, 0,
true));
222ids.push_back(idResolver(
mNameT, 0,
true));
224vector<SAlignSegment> segments;
226 for(
const auto& segment: segments) {
227denseSeg.
SetLens().push_back(segment.mLen);
228denseSeg.
SetStarts().push_back(segment.mStartQ);
229denseSeg.
SetStarts().push_back(segment.mStartT);
230denseSeg.
SetStrands().push_back(segment.mStrandQ);
231denseSeg.
SetStrands().push_back(segment.mStrandT);
233denseSeg.
SetNumseg(
static_cast<int>(segments.size()));
238pMatches->SetId().SetStr(
"num_match");
239pMatches->SetValue().SetInt(
mMatches);
240denseSeg.
SetScores().push_back(pMatches);
242pMisMatches->SetId().SetStr(
"num_mismatch");
244denseSeg.
SetScores().push_back(pMisMatches);
246pRepMatches->SetId().SetStr(
"num_repmatch");
248denseSeg.
SetScores().push_back(pRepMatches);
250pCountN->SetId().SetStr(
"num_n");
251pCountN->SetValue().SetInt(
mCountN);
252denseSeg.
SetScores().push_back(pCountN);
258vector<SAlignSegment>& segments)
const 262 if(mBlockCount == 0) {
267mBlockStartsQ[0], mBlockStartsT[0],
269 intcurrentPosQ = mBlockStartsQ[0] + mBlockSizes[0];
270 intcurrentPosT = mBlockStartsT[0] + mBlockSizes[0];
271 for(
int i=1;
i< mBlockCount; ++
i) {
272 autodiffQ = mBlockStartsQ[
i] - currentPosQ;
277 autodiffT = mBlockStartsT[
i] - currentPosT;
284mBlockStartsQ[
i], mBlockStartsT[
i],
286currentPosQ = mBlockStartsQ[
i] + mBlockSizes[
i];
287currentPosT = mBlockStartsT[
i] + mBlockSizes[
i];
User-defined methods of the data storage class.
void xConvertBlocksToSegments(vector< SAlignSegment > &) const
void Initialize(const CPslReader::TReaderLine &)
CPslData(CReaderMessageHandler *=nullptr)
vector< int > mBlockStartsQ
void ExportToSeqAlign(CPslReader::SeqIdResolver, CSeq_align &seqAlign)
vector< int > mBlockStartsT
vector< int > mBlockSizes
Include a standard set of the NCBI C++ Toolkit most basic headers.
static const column_t columns[]
@ eDiag_Error
Error message.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
static string JoinNumeric(TInputIterator from, TInputIterator to, const CTempString &delim)
@ fSplit_Tokenize
All delimiters are merged and trimmed, to get non-empty tokens only.
TLens & SetLens(void)
Assign a value to Lens data member.
void SetSegs(TSegs &value)
Assign a value to Segs data member.
TScores & SetScores(void)
Assign a value to Scores data member.
void SetType(TType value)
Assign a value to Type data member.
TStarts & SetStarts(void)
Assign a value to Starts data member.
TStrands & SetStrands(void)
Assign a value to Strands data member.
void SetNumseg(TNumseg value)
Assign a value to Numseg data member.
TIds & SetIds(void)
Assign a value to Ids data member.
@ eType_partial
mapping pieces together
const GenericPointer< typename T::ValueType > T2 value
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4