//erase from file list
fastaFileNames.erase(fastaFileNames.begin()+i);
i--;
+ }else {
+ m->setFastaFile(fastaFileNames[i]);
}
}
}
//erase from file list
nameFileNames.erase(nameFileNames.begin()+i);
i--;
+ }else {
+ m->setNameFile(nameFileNames[i]);
}
}
}
templatefile = validParameter.validFile(parameters, "reference", true);
if (templatefile == "not open") { abort = true; }
- else if (templatefile == "not found") { templatefile = ""; m->mothurOut("reference is a required parameter for the chimera.slayer command."); m->mothurOutEndLine(); abort = true; }
+ else if (templatefile == "not found") { templatefile = ""; m->mothurOut("reference is a required parameter for the chimera.uchime command."); m->mothurOutEndLine(); abort = true; }
}
- }
+ }else if (hasName) { templatefile = "self"; }
+ else { templatefile = ""; m->mothurOut("reference is a required parameter for the chimera.uchime command, unless you have a namefile."); m->mothurOutEndLine(); abort = true; }
+
string temp = validParameter.validFile(parameters, "processors", false); if (temp == "not found"){ temp = m->getProcessors(); }
m->setProcessors(temp);
int start = time(NULL);
string nameFile = "";
- if (templatefile == "self") { //you want to run slayer with a refernce template
+ if (templatefile == "self") { //you want to run uchime with a refernce template
#ifdef USE_MPI
int pid;
for(int i = 0; i < cPara.size(); i++) { delete[] cPara[i]; }
delete[] uchimeParameters;
+ if (m->control_pressed) { return 0; }
+
//create accnos file from uchime results
ifstream in;
m->openInputFile(outputFName, in);
in >> chimeraFlag >> name;
//fix name if needed
- if (templatefile != "self") {
+ if (templatefile == "self") {
name = name.substr(0, name.length()-1); //rip off last /
name = name.substr(0, name.find_last_of('/'));
}
processIDS.clear();
int process = 1;
int num = 0;
-
+#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
//break up file into multiple files
vector<string> files;
m->divideFile(filename, processors, files);
#endif
//get rid of the file pieces.
for (int i = 0; i < files.size(); i++) { remove(files[i].c_str()); }
-
+#endif
return num;
}
catch(exception& e) {