X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=maligner.cpp;h=1205cef5e36b8bb4381f5ae8bb516c30e934318d;hb=eccface807733d7b770c95716d05067d276ead26;hp=d7731facce712bb98fd239793cda78dfa7cc69cc;hpb=ed4fc0b4ae476621747d9bfdce733e878e040e2f;p=mothur.git diff --git a/maligner.cpp b/maligner.cpp index d7731fa..1205cef 100644 --- a/maligner.cpp +++ b/maligner.cpp @@ -73,6 +73,11 @@ string Maligner::chimeraMaligner(int chimeraPenalty, DeCalculator* decalc) { if (query->getAligned() == "") { return "no"; } vector temp = refSeqs; + +// for(int i=0;igetName() << endl; +// } + temp.push_back(query); verticalFilter(temp); @@ -90,7 +95,7 @@ string Maligner::chimeraMaligner(int chimeraPenalty, DeCalculator* decalc) { if (m->control_pressed) { return chimera; } vector trace = mapTraceRegionsToAlignment(path, refSeqs); - + if (trace.size() > 1) { chimera = "yes"; } else { chimera = "no"; return chimera; } @@ -98,13 +103,16 @@ string Maligner::chimeraMaligner(int chimeraPenalty, DeCalculator* decalc) { int traceEnd = path[path.size()-1].col; string queryInRange = query->getAligned(); queryInRange = queryInRange.substr(traceStart, (traceEnd-traceStart+1)); - +// cout << queryInRange << endl; string chimeraSeq = constructChimericSeq(trace, refSeqs); +// cout << chimeraSeq << endl; + // cout << queryInRange.length() << endl; // cout << chimeraSeq.length() << endl; percentIdenticalQueryChimera = computePercentID(queryInRange, chimeraSeq); +// cout << percentIdenticalQueryChimera << endl; /* vector trace = extractHighestPath(matrix); @@ -129,6 +137,7 @@ string Maligner::chimeraMaligner(int chimeraPenalty, DeCalculator* decalc) { int regionEnd = trace[i].oldCol; int seqIndex = trace[i].row; +// cout << regionStart << '\t' << regionEnd << '\t' << seqIndex << endl; results temp; temp.parent = refSeqs[seqIndex]->getName(); @@ -316,6 +325,8 @@ void Maligner::fillScoreMatrix(vector >& ms, vectorgetAligned().length(); int numRows = seqs.size(); +// cout << numRows << endl; + //initialize first col string queryAligned = query->getAligned(); for (int i = 0; i < numRows; i++) { @@ -337,6 +348,7 @@ void Maligner::fillScoreMatrix(vector >& ms, vectorgetAligned(); @@ -346,16 +358,13 @@ void Maligner::fillScoreMatrix(vector >& ms, vector >& ms, vectorgetName(); - for(int j=0;jgetName() << endl << seqs[i]->getAligned() << endl << endl; - if ((seqs[i]->getName() == "S000003470") || (seqs[i]->getName() == "S000383265") || (seqs[i]->getName() == "7000004128191054")) { - for(int j=0;jgetName(); - for(int j=0;jgetName(); +// for(int j=0;jgetName(); +// for(int j=0;j Maligner::extractHighestPath(vector > } } +// cout << highestScore << endl; vector path; int rowIndex = highestStruct.row; @@ -466,7 +474,8 @@ vector Maligner::mapTraceRegionsToAlignment(vector p for (int i = 1; i < path.size(); i++) { int next_region_index = path[i].row; - +// cout << i << '\t' << next_region_index << endl; + if (next_region_index != region_index) { // add trace region @@ -735,6 +744,8 @@ float Maligner::computePercentID(string queryAlign, string chimera) { if (numBases == 0) { return 0; } +// cout << numIdentical << '\t' << numBases << endl; + float percentIdentical = (numIdentical/(float)numBases) * 100; // cout << percentIdentical << endl;