]> git.donarmstrong.com Git - mothur.git/blobdiff - deuniqueseqscommand.cpp
made make.table alias to count.seqs command. added large parameter to count.seqs...
[mothur.git] / deuniqueseqscommand.cpp
index aed53037c152ded2b13e00b1dfbf30ff739d341d..918079cfe45aa2fbe6f14b155a6edd494e555c1d 100644 (file)
@@ -45,6 +45,26 @@ string DeUniqueSeqsCommand::getHelpString(){
        }
 }
 //**********************************************************************************************************************
+string DeUniqueSeqsCommand::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 == "fasta") {  outputFileName =  "redundant.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, "DeUniqueSeqsCommand", "getOutputFileNameTag");
+               exit(1);
+       }
+}
+//**********************************************************************************************************************
 DeUniqueSeqsCommand::DeUniqueSeqsCommand(){    
        try {
                abort = true; calledHelp = true; 
@@ -114,7 +134,7 @@ DeUniqueSeqsCommand::DeUniqueSeqsCommand(string option)  {
                                fastaFile = m->getFastaFile(); 
                                if (fastaFile != "") { m->mothurOut("Using " + fastaFile + " as input file for the fasta parameter."); m->mothurOutEndLine(); }
                                else {  m->mothurOut("You have no current fastafile and the fasta parameter is required."); m->mothurOutEndLine(); abort = true; }
-                       }       
+                       }else { m->setFastaFile(fastaFile); }   
                        
                        //if the user changes the output directory command factory will send this info to us in the output parameter 
                        outputDir = validParameter.validFile(parameters, "outputdir", false);           if (outputDir == "not found"){  
@@ -128,7 +148,7 @@ DeUniqueSeqsCommand::DeUniqueSeqsCommand(string option)  {
                                nameFile = m->getNameFile(); 
                                if (nameFile != "") { m->mothurOut("Using " + nameFile + " as input file for the name parameter."); m->mothurOutEndLine(); }
                                else {  m->mothurOut("You have no current namefile and the name parameter is required."); m->mothurOutEndLine(); abort = true; }
-                       }
+                       }else { m->setNameFile(nameFile); }
                }
 
        }
@@ -148,21 +168,21 @@ int DeUniqueSeqsCommand::execute() {
                string outFastaFile = m->getRootName(m->getSimpleName(fastaFile));
                int pos = outFastaFile.find("unique");
                if (pos != string::npos) {
-                       outFastaFile = outputDir + outFastaFile.substr(0, pos) + "redundant" + m->getExtension(fastaFile);
+                       outFastaFile = outputDir + outFastaFile.substr(0, pos) + getOutputFileNameTag("fasta");
                }else{
-                       outFastaFile = outputDir + m->getRootName(m->getSimpleName(fastaFile)) + "redundant" + m->getExtension(fastaFile);
+                       outFastaFile = outputDir + m->getRootName(m->getSimpleName(fastaFile)) + getOutputFileNameTag("fasta");
                }
                m->openOutputFile(outFastaFile, out);
                
                readNamesFile();
-               if (m->control_pressed) {  out.close(); outputTypes.clear(); remove(outFastaFile.c_str()); return 0; }
+               if (m->control_pressed) {  out.close(); outputTypes.clear(); m->mothurRemove(outFastaFile); return 0; }
                
                ifstream in;
                m->openInputFile(fastaFile, in);
                
                while (!in.eof()) {
                
-                       if (m->control_pressed) { in.close(); out.close(); outputTypes.clear(); remove(outFastaFile.c_str()); return 0; }
+                       if (m->control_pressed) { in.close(); out.close(); outputTypes.clear(); m->mothurRemove(outFastaFile); return 0; }
                        
                        Sequence seq(in); m->gobble(in);
                        
@@ -196,7 +216,7 @@ int DeUniqueSeqsCommand::execute() {
                        }
                }
                                
-               if (m->control_pressed) { outputTypes.clear(); remove(outFastaFile.c_str()); return 0; }
+               if (m->control_pressed) { outputTypes.clear(); m->mothurRemove(outFastaFile); return 0; }
                
                m->mothurOutEndLine();
                m->mothurOut("Output File Names: "); m->mothurOutEndLine();