]> git.donarmstrong.com Git - mothur.git/blobdiff - screenseqscommand.cpp
added shared file type to get.groups and remove.groups
[mothur.git] / screenseqscommand.cpp
index b68a8cc8ea0042d53222da781770627c58ff3966..f751525b6b1fa6211ab6017063ba6c7090f6e484 100644 (file)
@@ -173,20 +173,24 @@ ScreenSeqsCommand::ScreenSeqsCommand(string option)  {
                                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 if (fastafile == "not open") { abort = true; }     
+                       else if (fastafile == "not open") { abort = true; }
+                       else { m->setFastaFile(fastafile); }
        
                        groupfile = validParameter.validFile(parameters, "group", true);
                        if (groupfile == "not open") { abort = true; }  
                        else if (groupfile == "not found") { groupfile = ""; }
+                       else { m->setGroupFile(groupfile); }
                        
                        qualfile = validParameter.validFile(parameters, "qfile", true);
                        if (qualfile == "not open") { abort = true; }   
                        else if (qualfile == "not found") { qualfile = ""; }
+                       else { m->setQualFile(qualfile); }
                        
                        namefile = validParameter.validFile(parameters, "name", true);
                        if (namefile == "not open") { namefile = ""; abort = true; }
                        else if (namefile == "not found") { namefile = ""; }    
-
+                       else { m->setNameFile(namefile); }
+                       
                        alignreport = validParameter.validFile(parameters, "alignreport", true);
                        if (alignreport == "not open") { abort = true; }
                        else if (alignreport == "not found") { alignreport = ""; }      
@@ -390,7 +394,7 @@ int ScreenSeqsCommand::execute(){
                        if(processors == 1){
                                numFastaSeqs = driver(lines[0], goodSeqFile, badAccnosFile, fastafile, badSeqNames);
                                
-                               if (m->control_pressed) { remove(goodSeqFile.c_str()); return 0; }
+                               if (m->control_pressed) { m->mothurRemove(goodSeqFile); return 0; }
                                
                        }else{
                                processIDS.resize(0);
@@ -403,13 +407,13 @@ int ScreenSeqsCommand::execute(){
                                //append alignment and report files
                                for(int i=1;i<processors;i++){
                                        m->appendFiles((goodSeqFile + toString(processIDS[i]) + ".temp"), goodSeqFile);
-                                       remove((goodSeqFile + toString(processIDS[i]) + ".temp").c_str());
+                                       m->mothurRemove((goodSeqFile + toString(processIDS[i]) + ".temp"));
                        
                                        m->appendFiles((badAccnosFile + toString(processIDS[i]) + ".temp"), badAccnosFile);
-                                       remove((badAccnosFile + toString(processIDS[i]) + ".temp").c_str());
+                                       m->mothurRemove((badAccnosFile + toString(processIDS[i]) + ".temp"));
                                }
                                
-                               if (m->control_pressed) { remove(goodSeqFile.c_str()); return 0; }
+                               if (m->control_pressed) { m->mothurRemove(goodSeqFile); return 0; }
                                
                                //read badSeqs in because root process doesnt know what other "bad" seqs the children found
                                ifstream inBad;
@@ -428,7 +432,7 @@ int ScreenSeqsCommand::execute(){
        #else
                        numFastaSeqs = driver(lines[0], goodSeqFile, badAccnosFile, fastafile, badSeqNames);
                        
-                       if (m->control_pressed) { remove(goodSeqFile.c_str()); return 0; }
+                       if (m->control_pressed) { m->mothurRemove(goodSeqFile); return 0; }
                        
        #endif
 
@@ -469,18 +473,18 @@ int ScreenSeqsCommand::execute(){
                                                                                                                                                                        
                if(namefile != "" && groupfile != "")   {       
                        screenNameGroupFile(badSeqNames);       
-                       if (m->control_pressed) {  remove(goodSeqFile.c_str()); return 0; }
+                       if (m->control_pressed) {  m->mothurRemove(goodSeqFile); return 0; }
                }else if(namefile != "")        {       
                        screenNameGroupFile(badSeqNames);
-                       if (m->control_pressed) {  remove(goodSeqFile.c_str());  return 0; }    
+                       if (m->control_pressed) {  m->mothurRemove(goodSeqFile);  return 0; }   
                }else if(groupfile != "")                               {       screenGroupFile(badSeqNames);           }       // this screens just the group
                
-               if (m->control_pressed) { remove(goodSeqFile.c_str());  return 0; }
+               if (m->control_pressed) { m->mothurRemove(goodSeqFile);  return 0; }
 
                if(alignreport != "")                                   {       screenAlignReport(badSeqNames);         }
                if(qualfile != "")                                              {       screenQual(badSeqNames);                        }
                
-               if (m->control_pressed) { remove(goodSeqFile.c_str());  return 0; }
+               if (m->control_pressed) { m->mothurRemove(goodSeqFile);  return 0; }
                
                #ifdef USE_MPI
                        }
@@ -543,7 +547,7 @@ int ScreenSeqsCommand::screenNameGroupFile(set<string> badSeqNames){
                ofstream goodNameOut;   m->openOutputFile(goodNameFile, goodNameOut);
                
                while(!inputNames.eof()){
-                       if (m->control_pressed) { goodNameOut.close();  inputNames.close(); remove(goodNameFile.c_str());  return 0; }
+                       if (m->control_pressed) { goodNameOut.close();  inputNames.close(); m->mothurRemove(goodNameFile);  return 0; }
 
                        inputNames >> seqName >> seqList;
                        it = badSeqNames.find(seqName);
@@ -589,7 +593,7 @@ int ScreenSeqsCommand::screenNameGroupFile(set<string> badSeqNames){
                        ofstream goodGroupOut;  m->openOutputFile(goodGroupFile, goodGroupOut);
                        
                        while(!inputGroups.eof()){
-                               if (m->control_pressed) { goodGroupOut.close(); inputGroups.close(); remove(goodNameFile.c_str());  remove(goodGroupFile.c_str()); return 0; }
+                               if (m->control_pressed) { goodGroupOut.close(); inputGroups.close(); m->mothurRemove(goodNameFile);  m->mothurRemove(goodGroupFile); return 0; }
 
                                inputGroups >> seqName >> group;
                                
@@ -802,7 +806,7 @@ int ScreenSeqsCommand::createProcessesCreateSummary(vector<int>& startPosition,
                        for (int k = 0; k < tempNum; k++)                       {               in >> temp; longHomoPolymer.push_back(temp);    }               m->gobble(in);
                                
                        in.close();
-                       remove(tempFilename.c_str());
+                       m->mothurRemove(tempFilename);
                }
                
                return num;
@@ -828,7 +832,7 @@ int ScreenSeqsCommand::screenGroupFile(set<string> badSeqNames){
                ofstream goodGroupOut;  m->openOutputFile(goodGroupFile, goodGroupOut);
                
                while(!inputGroups.eof()){
-                       if (m->control_pressed) { goodGroupOut.close(); inputGroups.close(); remove(goodGroupFile.c_str()); return 0; }
+                       if (m->control_pressed) { goodGroupOut.close(); inputGroups.close(); m->mothurRemove(goodGroupFile); return 0; }
 
                        inputGroups >> seqName >> group;
                        it = badSeqNames.find(seqName);
@@ -842,7 +846,7 @@ int ScreenSeqsCommand::screenGroupFile(set<string> badSeqNames){
                        m->gobble(inputGroups);
                }
                
-               if (m->control_pressed) { goodGroupOut.close();  inputGroups.close(); remove(goodGroupFile.c_str());  return 0; }
+               if (m->control_pressed) { goodGroupOut.close();  inputGroups.close(); m->mothurRemove(goodGroupFile);  return 0; }
 
                //we were unable to remove some of the bad sequences
                if (badSeqNames.size() != 0) {
@@ -855,7 +859,7 @@ int ScreenSeqsCommand::screenGroupFile(set<string> badSeqNames){
                inputGroups.close();
                goodGroupOut.close();
                
-               if (m->control_pressed) { remove(goodGroupFile.c_str());   }
+               if (m->control_pressed) { m->mothurRemove(goodGroupFile);   }
                
                return 0;
        
@@ -886,7 +890,7 @@ int ScreenSeqsCommand::screenAlignReport(set<string> badSeqNames){
                }
 
                while(!inputAlignReport.eof()){
-                       if (m->control_pressed) { goodAlignReportOut.close(); inputAlignReport.close(); remove(goodAlignReportFile.c_str()); return 0; }
+                       if (m->control_pressed) { goodAlignReportOut.close(); inputAlignReport.close(); m->mothurRemove(goodAlignReportFile); return 0; }
 
                        inputAlignReport >> seqName;
                        it = badSeqNames.find(seqName);
@@ -906,7 +910,7 @@ int ScreenSeqsCommand::screenAlignReport(set<string> badSeqNames){
                        m->gobble(inputAlignReport);
                }
                
-               if (m->control_pressed) { goodAlignReportOut.close();  inputAlignReport.close(); remove(goodAlignReportFile.c_str());  return 0; }
+               if (m->control_pressed) { goodAlignReportOut.close();  inputAlignReport.close(); m->mothurRemove(goodAlignReportFile);  return 0; }
 
                //we were unable to remove some of the bad sequences
                if (badSeqNames.size() != 0) {
@@ -919,7 +923,7 @@ int ScreenSeqsCommand::screenAlignReport(set<string> badSeqNames){
                inputAlignReport.close();
                goodAlignReportOut.close();
                                
-               if (m->control_pressed) {  remove(goodAlignReportFile.c_str());  return 0; }
+               if (m->control_pressed) {  m->mothurRemove(goodAlignReportFile);  return 0; }
                
                return 0;
        
@@ -944,7 +948,7 @@ int ScreenSeqsCommand::screenQual(set<string> badSeqNames){
                
                while(!in.eof()){       
                        
-                       if (m->control_pressed) { goodQual.close(); in.close(); remove(goodQualFile.c_str()); return 0; }
+                       if (m->control_pressed) { goodQual.close(); in.close(); m->mothurRemove(goodQualFile); return 0; }
 
                        string saveName = "";
                        string name = "";
@@ -992,7 +996,7 @@ int ScreenSeqsCommand::screenQual(set<string> badSeqNames){
                        }
                }
                
-               if (m->control_pressed) {  remove(goodQualFile.c_str());  return 0; }
+               if (m->control_pressed) {  m->mothurRemove(goodQualFile);  return 0; }
                
                return 0;
                
@@ -1192,7 +1196,7 @@ int ScreenSeqsCommand::createProcesses(string goodFileName, string badAccnos, st
                        string tempFile =  filename + toString(processIDS[i]) + ".num.temp";
                        m->openInputFile(tempFile, in);
                        if (!in.eof()) { int tempNum = 0; in >> tempNum; num += tempNum; }
-                       in.close(); remove(tempFile.c_str());
+                       in.close(); m->mothurRemove(tempFile);
                }
                
                return num;