//**********************************************************************************************************************
ClusterDoturCommand::ClusterDoturCommand(){
try {
- abort = true;
- //initialize outputTypes
+ abort = true; calledHelp = true;
vector<string> tempOutNames;
outputTypes["list"] = tempOutNames;
outputTypes["rabund"] = tempOutNames;
ClusterDoturCommand::ClusterDoturCommand(string option) {
try{
- abort = false;
+ abort = false; calledHelp = false;
//allow user to run help
- if(option == "help") { help(); abort = true; }
+ if(option == "help") { help(); abort = true; calledHelp = true; }
else {
//valid paramters for this command
int ClusterDoturCommand::execute(){
try {
- if (abort == true) { return 0; }
+ if (abort == true) { if (calledHelp) { return 0; } return 2; }
if(namefile != ""){
nameMap = new NameAssignment(namefile);
oldRAbund = *rabund;
oldList = *list;
- double saveCutoff = cutoff;
+ //double saveCutoff = cutoff;
int estart = time(NULL);
- while ((cluster->getSmallDist() < cutoff) && (cluster->getNSeqs() > 0)){
+ while ((cluster->getSmallDist() < cutoff) && (cluster->getNSeqs() > 1)){
if (m->control_pressed) { delete cluster; delete list; delete rabund; sabundFile.close();rabundFile.close();listFile.close(); for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); } outputTypes.clear(); return 0; }
cluster->update(cutoff);
delete cluster; delete nameMap; delete list; delete rabund;
- if (saveCutoff != cutoff) {
- if (hard) { saveCutoff = m->ceilDist(saveCutoff, precision); }
- else { saveCutoff = m->roundDist(saveCutoff, precision); }
- m->mothurOut("changed cutoff to " + toString(cutoff)); m->mothurOutEndLine();
+ //if (saveCutoff != cutoff) {
+ // if (hard) { saveCutoff = m->ceilDist(saveCutoff, precision); }
+ // else { saveCutoff = m->roundDist(saveCutoff, precision); }
+ // m->mothurOut("changed cutoff to " + toString(cutoff)); m->mothurOutEndLine();
+ //}
+
+ //set list file as new current listfile
+ string current = "";
+ itTypes = outputTypes.find("list");
+ if (itTypes != outputTypes.end()) {
+ if ((itTypes->second).size() != 0) { current = (itTypes->second)[0]; m->setListFile(current); }
+ }
+
+ //set rabund file as new current rabundfile
+ itTypes = outputTypes.find("rabund");
+ if (itTypes != outputTypes.end()) {
+ if ((itTypes->second).size() != 0) { current = (itTypes->second)[0]; m->setRabundFile(current); }
+ }
+
+ //set sabund file as new current sabundfile
+ itTypes = outputTypes.find("sabund");
+ if (itTypes != outputTypes.end()) {
+ if ((itTypes->second).size() != 0) { current = (itTypes->second)[0]; m->setSabundFile(current); }
}
m->mothurOutEndLine();