//get names you want to keep
readAccnos();
+ if (m->control_pressed) { return 0; }
+
//read through the correct file and output lines you want to keep
if (fastafile != "") { readFasta(); }
else if (namefile != "") { readName(); }
else if (alignfile != "") { readAlign(); }
else if (listfile != "") { readList(); }
+ if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } return 0; }
+
if (outputNames.size() != 0) {
m->mothurOutEndLine();
m->mothurOut("Output File Names: "); m->mothurOutEndLine();
}
//**********************************************************************************************************************
-void RemoveSeqsCommand::readFasta(){
+int RemoveSeqsCommand::readFasta(){
try {
if (outputDir == "") { outputDir += hasPath(fastafile); }
string outputFileName = getRootName(fastafile) + "pick" + getExtension(fastafile);
bool wroteSomething = false;
while(!in.eof()){
+ if (m->control_pressed) { in.close(); out.close(); remove(outputFileName.c_str()); return 0; }
+
Sequence currSeq(in);
name = currSeq.getName();
m->mothurOut("Your file contains only sequences from the .accnos file."); m->mothurOutEndLine();
remove(outputFileName.c_str());
}else { outputNames.push_back(outputFileName); }
-
+
+ return 0;
+
}
catch(exception& e) {
m->errorOut(e, "RemoveSeqsCommand", "readFasta");
}
}
//**********************************************************************************************************************
-void RemoveSeqsCommand::readList(){
+int RemoveSeqsCommand::readList(){
try {
if (outputDir == "") { outputDir += hasPath(listfile); }
string outputFileName = getRootName(listfile) + "pick" + getExtension(listfile);
//for each bin
for (int i = 0; i < list.getNumBins(); i++) {
+ if (m->control_pressed) { in.close(); out.close(); remove(outputFileName.c_str()); return 0; }
//parse out names that are in accnos file
string binnames = list.get(i);
m->mothurOut("Your file contains only sequences from the .accnos file."); m->mothurOutEndLine();
remove(outputFileName.c_str());
}else { outputNames.push_back(outputFileName); }
+
+ return 0;
}
catch(exception& e) {
}
}
//**********************************************************************************************************************
-void RemoveSeqsCommand::readName(){
+int RemoveSeqsCommand::readName(){
try {
if (outputDir == "") { outputDir += hasPath(namefile); }
string outputFileName = getRootName(namefile) + "pick" + getExtension(namefile);
bool wroteSomething = false;
while(!in.eof()){
+ if (m->control_pressed) { in.close(); out.close(); remove(outputFileName.c_str()); if (dups) { out2.close(); remove(outputFileName2.c_str()); } return 0; }
in >> firstCol;
in >> secondCol;
remove(outputFileName.c_str());
}else { outputNames.push_back(outputFileName); }
+ return 0;
}
catch(exception& e) {
m->errorOut(e, "RemoveSeqsCommand", "readName");
}
//**********************************************************************************************************************
-void RemoveSeqsCommand::readGroup(){
+int RemoveSeqsCommand::readGroup(){
try {
if (outputDir == "") { outputDir += hasPath(groupfile); }
string outputFileName = getRootName(groupfile) + "pick" + getExtension(groupfile);
bool wroteSomething = false;
while(!in.eof()){
-
+ if (m->control_pressed) { in.close(); out.close(); remove(outputFileName.c_str()); return 0; }
+
in >> name; //read from first column
in >> group; //read from second column
m->mothurOut("Your file contains only sequences from the .accnos file."); m->mothurOutEndLine();
remove(outputFileName.c_str());
}else { outputNames.push_back(outputFileName); }
-
+
+ return 0;
}
catch(exception& e) {
m->errorOut(e, "RemoveSeqsCommand", "readGroup");
//**********************************************************************************************************************
//alignreport file has a column header line then all other lines contain 16 columns. we just want the first column since that contains the name
-void RemoveSeqsCommand::readAlign(){
+int RemoveSeqsCommand::readAlign(){
try {
if (outputDir == "") { outputDir += hasPath(alignfile); }
string outputFileName = getRootName(getRootName(alignfile)) + "pick.align.report";
out << endl;
while(!in.eof()){
-
+ if (m->control_pressed) { in.close(); out.close(); remove(outputFileName.c_str()); return 0; }
+
in >> name; //read from first column
//if this name is in the accnos file
remove(outputFileName.c_str());
}else { outputNames.push_back(outputFileName); }
+ return 0;
+
}
catch(exception& e) {
m->errorOut(e, "RemoveSeqsCommand", "readAlign");