int MergeGroupsCommand::execute(){ try { if (abort) { if (calledHelp) { return 0; } return 2; } designMap = new DesignMap(designfile); if (method != "sum") { string defaultClass = designMap->getDefaultClass(); vector<string> treatments = designMap->getCategory(defaultClass); set<int> numGroupsPerTreatment; for (int i = 0; i < treatments.size(); i++) { if (m->getControl_pressed()) { break; } map<string, vector<string> > checkTreatments; vector<string> temp; temp.push_back(treatments[i]); checkTreatments[defaultClass] = temp; numGroupsPerTreatment.insert(designMap->getNumUnique(checkTreatments)); } if (numGroupsPerTreatment.size() > 1) { m->mothurOut("[ERROR]: The median and average methods require you to have the same number of sequences in each treatment, quitting.\n"); delete designMap; return 0; } } if (groupfile != "") { processGroupFile(designMap); } if (sharedfile != "") { processSharedFile(designMap); } if (countfile != "") { processCountFile(designMap); } //reset groups parameter delete designMap; if (m->getControl_pressed()) { for (int i = 0; i < outputNames.size(); i++) { util.mothurRemove(outputNames[i]); } return 0;} //set shared file as new current sharedfile string currentName = ""; itTypes = outputTypes.find("shared"); if (itTypes != outputTypes.end()) { if ((itTypes->second).size() != 0) { currentName = (itTypes->second)[0]; current->setSharedFile(currentName); } } itTypes = outputTypes.find("group"); if (itTypes != outputTypes.end()) { if ((itTypes->second).size() != 0) { currentName = (itTypes->second)[0]; current->setGroupFile(currentName); } } itTypes = outputTypes.find("count"); if (itTypes != outputTypes.end()) { if ((itTypes->second).size() != 0) { currentName = (itTypes->second)[0]; current->setCountFile(currentName); } } m->mothurOut("\nOutput File Names: \n"); for (int i = 0; i < outputNames.size(); i++) { m->mothurOut(outputNames[i] +"\n"); } m->mothurOutEndLine(); return 0; } catch(exception& e) { m->errorOut(e, "MergeGroupsCommand", "execute"); exit(1); } }
int MergeGroupsCommand::execute(){ try { if (abort == true) { if (calledHelp) { return 0; } return 2; } designMap = new GroupMap(designfile); designMap->readDesignMap(); if (groupfile != "") { processGroupFile(designMap); } if (sharedfile != "") { processSharedFile(designMap); } //reset groups parameter m->clearGroups(); delete designMap; if (m->control_pressed) { for (int i = 0; i < outputNames.size(); i++) { m->mothurRemove(outputNames[i]); } return 0;} //set shared file as new current sharedfile string current = ""; itTypes = outputTypes.find("shared"); if (itTypes != outputTypes.end()) { if ((itTypes->second).size() != 0) { current = (itTypes->second)[0]; m->setSharedFile(current); } } itTypes = outputTypes.find("group"); if (itTypes != outputTypes.end()) { if ((itTypes->second).size() != 0) { current = (itTypes->second)[0]; m->setGroupFile(current); } } m->mothurOutEndLine(); m->mothurOut("Output File Names: "); m->mothurOutEndLine(); for (int i = 0; i < outputNames.size(); i++) { m->mothurOut(outputNames[i]); m->mothurOutEndLine(); } m->mothurOutEndLine(); return 0; } catch(exception& e) { m->errorOut(e, "MergeGroupsCommand", "execute"); exit(1); } }