]> git.donarmstrong.com Git - mothur.git/blobdiff - seqsummarycommand.cpp
paralellized unifrac.weighted for windows. added get.metacommunity command. fixed...
[mothur.git] / seqsummarycommand.cpp
index 8f27b8c7beaf797775f680bdef5c34bcf7f980c8..90a66f8f633212cf69a2930914a1911c5bca1cb1 100644 (file)
@@ -415,6 +415,13 @@ int SeqSummaryCommand::execute(){
                        }
                #endif
 
+        //set fasta file as new current fastafile
+               string current = "";
+               itTypes = outputTypes.find("summary");
+               if (itTypes != outputTypes.end()) {
+                       if ((itTypes->second).size() != 0) { current = (itTypes->second)[0]; m->setSummaryFile(current); }
+               }
+        
                return 0;
        }
        catch(exception& e) {
@@ -445,11 +452,15 @@ int SeqSummaryCommand::driverCreateSummary(vector<int>& startPosition, vector<in
                while (!done) {
                                
                        if (m->control_pressed) { in.close(); outSummary.close(); return 1; }
-                                       
+            
+            if (m->debug) { m->mothurOut("[DEBUG]: count = " + toString(count) + "\n");  }
+            
                        Sequence current(in); m->gobble(in);
            
                        if (current.getName() != "") {
                                
+                if (m->debug) { m->mothurOut("[DEBUG]: " + current.getName() + '\t' + toString(current.getNumBases()) + "\n");  }
+                
                                int num = 1;
                                if ((namefile != "") || (countfile != "")) {
                                        //make sure this sequence is in the namefile, else error 
@@ -473,6 +484,8 @@ int SeqSummaryCommand::driverCreateSummary(vector<int>& startPosition, vector<in
                                outSummary << current.getStartPos() << '\t' << current.getEndPos() << '\t';
                                outSummary << current.getNumBases() << '\t' << current.getAmbigBases() << '\t';
                                outSummary << current.getLongHomoPolymer() << '\t' << num << endl;
+                
+                if (m->debug) { m->mothurOut("[DEBUG]: " + current.getName() + '\t' + toString(current.getNumBases()) + "\n");  }
                        }
                        
                        #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
@@ -675,6 +688,9 @@ int SeqSummaryCommand::createProcessesCreateSummary(vector<int>& startPosition,
                //Close all thread handles and free memory allocations.
                for(int i=0; i < pDataArray.size(); i++){
                        num += pDataArray[i]->count;
+            if (pDataArray[i]->count != pDataArray[i]->end) {
+                m->mothurOut("[ERROR]: process " + toString(i) + " only processed " + toString(pDataArray[i]->count) + " of " + toString(pDataArray[i]->end) + " sequences assigned to it, quitting. \n"); m->control_pressed = true; 
+            }
             for (int k = 0; k < pDataArray[i]->startPosition.size(); k++) {    startPosition.push_back(pDataArray[i]->startPosition[k]);       }
                        for (int k = 0; k < pDataArray[i]->endPosition.size(); k++) {   endPosition.push_back(pDataArray[i]->endPosition[k]);       }
             for (int k = 0; k < pDataArray[i]->seqLength.size(); k++) {        seqLength.push_back(pDataArray[i]->seqLength[k]);       }