]> git.donarmstrong.com Git - mothur.git/blobdiff - chimeraslayercommand.cpp
Merge remote-tracking branch 'origin/master'
[mothur.git] / chimeraslayercommand.cpp
index 2c435cadb11c1bc413b982676ac58082d4683992..59dd0a55a27c13eb80dd521ea83516770c97ed4a 100644 (file)
@@ -98,6 +98,28 @@ string ChimeraSlayerCommand::getHelpString(){
        }
 }
 //**********************************************************************************************************************
+string ChimeraSlayerCommand::getOutputFileNameTag(string type, string inputName=""){   
+       try {
+        string outputFileName = "";
+               map<string, vector<string> >::iterator it;
+        
+        //is this a type this command creates
+        it = outputTypes.find(type);
+        if (it == outputTypes.end()) {  m->mothurOut("[ERROR]: this command doesn't create a " + type + " output file.\n"); }
+        else {
+            if (type == "chimera") {  outputFileName =  "slayer.chimeras"; }
+            else if (type == "accnos") {  outputFileName =  "slayer.accnos"; }
+            else if (type == "fasta") {  outputFileName =  "slayer.fasta"; }
+            else { m->mothurOut("[ERROR]: No definition for type " + type + " output file tag.\n"); m->control_pressed = true;  }
+        }
+        return outputFileName;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "ChimeraSlayerCommand", "getOutputFileNameTag");
+               exit(1);
+       }
+}
+//**********************************************************************************************************************
 ChimeraSlayerCommand::ChimeraSlayerCommand(){  
        try {
                abort = true; calledHelp = true;
@@ -556,9 +578,9 @@ int ChimeraSlayerCommand::execute(){
                
                        int start = time(NULL); 
                        if (outputDir == "") { outputDir = m->hasPath(fastaFileNames[s]);  }//if user entered a file with a path then preserve it                               
-                       string outputFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + "slayer.chimera";
-                       string accnosFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s]))  + "slayer.accnos";
-                       string trimFastaFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s]))  + "slayer.fasta";           
+                       string outputFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + getOutputFileNameTag("chimera");
+                       string accnosFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + getOutputFileNameTag("accnos");
+                       string trimFastaFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileNames[s])) + getOutputFileNameTag("fasta");             
                        
                        //clears files
                        ofstream out, out1, out2;
@@ -633,6 +655,7 @@ int ChimeraSlayerCommand::execute(){
 #endif
                                
                                totalChimeras = deconvoluteResults(parser, outputFileName, accnosFileName, trimFastaFileName);
+                m->mothurOutEndLine(); m->mothurOut(toString(totalChimeras) + " chimera found."); m->mothurOutEndLine();
 #ifdef USE_MPI 
                                }
                                MPI_Barrier(MPI_COMM_WORLD); //make everyone wait
@@ -641,7 +664,7 @@ int ChimeraSlayerCommand::execute(){
        
                        if (parser != NULL) { delete parser; } 
                        
-                       m->mothurOutEndLine(); m->mothurOut(toString(totalChimeras) + " chimera found."); m->mothurOutEndLine(); m->mothurOut("It took " + toString(time(NULL) - start) + " secs to check " + toString(numSeqs) + " sequences.");       m->mothurOutEndLine();
+            m->mothurOut("It took " + toString(time(NULL) - start) + " secs to check " + toString(numSeqs) + " sequences.");   m->mothurOutEndLine();
                }
                
                //set accnos file as new current accnosfile