]> git.donarmstrong.com Git - mothur.git/blobdiff - trimflowscommand.cpp
fixed bug with trim.flows that was adding flow files names to the .flow.files file...
[mothur.git] / trimflowscommand.cpp
index 6d697359bb2c26c4957faa9d981fb7399ac54313..7a1af627a5e290c6d348e4a3783c645ba575982c 100644 (file)
@@ -272,32 +272,34 @@ int TrimFlowsCommand::execute(){
                ofstream output;
                
                if(allFiles){
-                       
+                       set<string> namesAlreadyProcessed;
                        flowFilesFileName = outputDir + m->getRootName(m->getSimpleName(flowFileName)) + "flow.files";
                        m->openOutputFile(flowFilesFileName, output);
 
                        for(int i=0;i<barcodePrimerComboFileNames.size();i++){
                                for(int j=0;j<barcodePrimerComboFileNames[0].size();j++){
-                                       
-                                       FILE * pFile;
-                                       unsigned long long size;
-                                       
-                                       //get num bytes in file
-                                       pFile = fopen (barcodePrimerComboFileNames[i][j].c_str(),"rb");
-                                       if (pFile==NULL) perror ("Error opening file");
-                                       else{
-                                               fseek (pFile, 0, SEEK_END);
-                                               size=ftell(pFile);
-                                               fclose (pFile);
-                                       }
-
-                                       if(size < 10){
-                                               m->mothurRemove(barcodePrimerComboFileNames[i][j]);
-                                       }
-                                       else{
-                                               output << barcodePrimerComboFileNames[i][j] << endl;
-                                               outputNames.push_back(barcodePrimerComboFileNames[i][j]);
-                                               outputTypes["flow"].push_back(barcodePrimerComboFileNames[i][j]);
+                                       if (namesAlreadyProcessed.count(barcodePrimerComboFileNames[i][j]) == 0) {
+                                               FILE * pFile;
+                                               unsigned long long size;
+                                               
+                                               //get num bytes in file
+                                               pFile = fopen (barcodePrimerComboFileNames[i][j].c_str(),"rb");
+                                               if (pFile==NULL) perror ("Error opening file");
+                                               else{
+                                                       fseek (pFile, 0, SEEK_END);
+                                                       size=ftell(pFile);
+                                                       fclose (pFile);
+                                               }
+                                               
+                                               if(size < 10){
+                                                       m->mothurRemove(barcodePrimerComboFileNames[i][j]);
+                                               }
+                                               else{
+                                                       output << barcodePrimerComboFileNames[i][j] << endl;
+                                                       outputNames.push_back(barcodePrimerComboFileNames[i][j]);
+                                                       outputTypes["flow"].push_back(barcodePrimerComboFileNames[i][j]);
+                                               }
+                                               namesAlreadyProcessed.insert(barcodePrimerComboFileNames[i][j]);
                                        }
                                }
                        }