]> git.donarmstrong.com Git - mothur.git/blobdiff - chimerarealigner.cpp
added warning about merging with something above cutoff to cluster. working on chimeras
[mothur.git] / chimerarealigner.cpp
index 57c3641d14f4f2664dd12c3e1a7f89d13722ab91..fa9dd566c83014124fa302be6d5505102acdddac 100644 (file)
@@ -24,12 +24,12 @@ void ChimeraReAligner::reAlign(Sequence* query, vector<results> parents) {
                        
                        string qAligned = query->getAligned();
                        string newQuery = "";
-                       
+               
                        //sort parents by region start
                        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++) {
@@ -38,9 +38,10 @@ void ChimeraReAligner::reAlign(Sequence* query, vector<results> parents) {
                                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);
                                parent->setAligned(p);
                                
@@ -62,9 +63,10 @@ void ChimeraReAligner::reAlign(Sequence* query, vector<results> 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);  }
                        
+                       //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);  }
+               
                        //set query to new aligned string
                        query->setAligned(newQuery);