X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=chimerarealigner.cpp;fp=chimerarealigner.cpp;h=f45b9a87f6829b68c81c8b137758ec3f6a096022;hb=9ada98592a54c82d08f3d46c9b1d8c3e472a922d;hp=57c3641d14f4f2664dd12c3e1a7f89d13722ab91;hpb=5a1e62397b91f57d0d3aff635891df04b8999a88;p=mothur.git diff --git a/chimerarealigner.cpp b/chimerarealigner.cpp index 57c3641..f45b9a8 100644 --- a/chimerarealigner.cpp +++ b/chimerarealigner.cpp @@ -29,19 +29,23 @@ void ChimeraReAligner::reAlign(Sequence* query, vector parents) { sort(parents.begin(), parents.end(), compareRegionStart); //make sure you don't cutoff beginning of query - if (parents[0].nastRegionStart > 0) { newQuery += qAligned.substr(0, parents[0].nastRegionStart+1); } + if (parents[0].nastRegionStart > 0) { newQuery += qAligned.substr(0, parents[0].nastRegionStart); } int longest = 0; //take query and break apart into pieces using breakpoints given by results of parents for (int i = 0; i < parents.size(); i++) { - int length = parents[i].nastRegionEnd - parents[i].nastRegionStart+1; + cout << parents[i].parent << '\t' << parents[i].nastRegionStart << '\t' << parents[i].nastRegionEnd << endl; + int length = parents[i].nastRegionEnd - parents[i].nastRegionStart; string q = qAligned.substr(parents[i].nastRegionStart, length); + cout << "query = " << q << endl; Sequence* queryFrag = new Sequence(query->getName(), q); queryParts.push_back(queryFrag); Sequence* parent = getSequence(parents[i].parent); string p = parent->getAligned(); + p = p.substr(parents[i].nastRegionStart, length); + cout << "parent = " << p << endl; parent->setAligned(p); parentParts.push_back(parent); @@ -62,8 +66,9 @@ void ChimeraReAligner::reAlign(Sequence* query, vector parents) { newQuery += queryParts[i]->getAligned(); } + //make sure you don't cutoff end of query - if (parents[parents.size()-1].nastRegionEnd < qAligned.length()) { newQuery += qAligned.substr(parents[parents.size()-1].nastRegionEnd-1); } + if (parents[parents.size()-1].nastRegionEnd < qAligned.length()) { newQuery += qAligned.substr(parents[parents.size()-1].nastRegionEnd); } //set query to new aligned string query->setAligned(newQuery);