//**********************************************************************************************************************
GetOTURepCommand::GetOTURepCommand(){
try {
- abort = true;
- //initialize outputTypes
+ abort = true; calledHelp = true;
vector<string> tempOutNames;
outputTypes["fasta"] = tempOutNames;
outputTypes["name"] = tempOutNames;
GetOTURepCommand::GetOTURepCommand(string option) {
try{
globaldata = GlobalData::getInstance();
- abort = false;
+ abort = false; calledHelp = false;
allLines = 1;
labels.clear();
//allow user to run help
if (option == "help") {
- help(); abort = true;
+ help(); abort = true; calledHelp = true;
} else {
//valid paramters for this command
string Array[] = {"fasta","list","label","name","weighted", "group", "sorted", "phylip","column","large","cutoff","precision","groups","outputdir","inputdir"};
int GetOTURepCommand::execute(){
try {
- if (abort == true) { return 0; }
+ if (abort == true) { if (calledHelp) { return 0; } return 2; }
int error;
if (!large) {
delete read; delete input; delete list; globaldata->gListVector = NULL; return 0;
}
- if (!weighted) { readNamesFile(weighted); }
+ if ((!weighted) && (namefile != "")) { readNamesFile(weighted); }
while((list != NULL) && ((allLines == 1) || (userLabels.size() != 0))) {
//**********************************************************************************************************************
void GetOTURepCommand::readNamesFile() {
try {
+ ifstream in;
vector<string> dupNames;
- m->openInputFile(namefile, inNames);
+ m->openInputFile(namefile, in);
string name, names, sequence;
- while(inNames){
- inNames >> name; //read from first column A
- inNames >> names; //read from second column A,B,C,D
+ while(!in.eof()){
+ in >> name; //read from first column A
+ in >> names; //read from second column A,B,C,D
dupNames.clear();
fasta->push_back(dupNames[i], sequence);
}
- m->gobble(inNames);
+ m->gobble(in);
}
- inNames.close();
+ in.close();
}
catch(exception& e) {
//read names file to find the weighted rep for each bin
void GetOTURepCommand::readNamesFile(bool w) {
try {
+ ifstream in;
vector<string> dupNames;
- m->openInputFile(namefile, inNames);
+ m->openInputFile(namefile, in);
string name, names, sequence;
- while(inNames){
- inNames >> name; m->gobble(inNames); //read from first column A
- inNames >> names; //read from second column A,B,C,D
+ while(!in.eof()){
+ in >> name; m->gobble(in); //read from first column A
+ in >> names; //read from second column A,B,C,D
dupNames.clear();
nameFileMap[dupNames[i]] = name;
}
- m->gobble(inNames);
+ m->gobble(in);
}
- inNames.close();
+ in.close();
}
catch(exception& e) {