X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sharedcommand.cpp;h=c49e56ac8d9264f535a7b9c6f7457948f421f69a;hb=1244c4907c07baea86b0f0676d098a29d2e95a39;hp=6ca1ed63585463d92ac8dc7aa65f921ca1070308;hpb=016a30dacbe75869aef5fdb58d2d1bf9eb8f9b33;p=mothur.git diff --git a/sharedcommand.cpp b/sharedcommand.cpp index 6ca1ed6..c49e56a 100644 --- a/sharedcommand.cpp +++ b/sharedcommand.cpp @@ -20,23 +20,36 @@ SharedCommand::SharedCommand(){ filename = getRootName(filename); filename = filename + "shared"; openOutputFile(filename, out); + + groupMap = globaldata->gGroupmap; + + //fill filehandles with neccessary ofstreams + int i; + ofstream* temp; + for (i=0; igetNumGroups(); i++) { + temp = new ofstream; + filehandles[groupMap->namesOfGroups[i]] = temp; + } + + //set fileroot + fileroot = getRootName(globaldata->getListFile()); + + //clears file before we start to write to it below + for (int i=0; igetNumGroups(); i++) { + remove((fileroot + groupMap->namesOfGroups[i] + ".rabund").c_str()); + } + } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SharedCommand class Function SharedCommand. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SharedCommand class function SharedCommand. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + errorOut(e, "SharedCommand", "SharedCommand"); exit(1); } - } //********************************************************************************************************************** int SharedCommand::execute(){ try { - cout << "creating sharedfile..."; //lookup.clear(); int count = 1; string errorOff = "no error"; @@ -60,7 +73,10 @@ int SharedCommand::execute(){ if(globaldata->allLines == 1 || globaldata->lines.count(count) == 1 || globaldata->labels.count(SharedList->getLabel()) == 1){ + lookup = SharedList->getSharedRAbundVector(); + mothurOut(lookup[0]->getLabel()); mothurOutEndLine(); + printSharedData(lookup); //prints info to the .shared file for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; } @@ -74,6 +90,8 @@ int SharedCommand::execute(){ SharedList = input->getSharedListVector(lastLabel); //get new list vector to process lookup = SharedList->getSharedRAbundVector(); + mothurOut(lookup[0]->getLabel()); mothurOutEndLine(); + printSharedData(lookup); //prints info to the .shared file for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; } @@ -94,12 +112,8 @@ int SharedCommand::execute(){ set::iterator it; bool needToRun = false; for (it = userLabels.begin(); it != userLabels.end(); it++) { - //cout << "Your file does not include the label "<< *it; if (processedLabels.count(lastLabel) != 1) { - //cout << ". I will use " << lastList->getLabel() << "." << endl; needToRun = true; - }else { - //cout << ". Please refer to " << lastList->getLabel() << "." << endl; } } @@ -109,6 +123,8 @@ int SharedCommand::execute(){ SharedList = input->getSharedListVector(lastLabel); //get new list vector to process lookup = SharedList->getSharedRAbundVector(); + mothurOut(lookup[0]->getLabel()); mothurOutEndLine(); + printSharedData(lookup); //prints info to the .shared file for (int i = 0; i < lookup.size(); i++) { delete lookup[i]; } delete SharedList; @@ -119,18 +135,17 @@ int SharedCommand::execute(){ out.close(); - cout << "complete." << endl; + for (it3 = filehandles.begin(); it3 != filehandles.end(); it3++) { + delete it3->second; + } + + return 0; } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SharedCommand class Function execute. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - catch(...) { - cout << "An unknown error has occurred in the SharedCommand class function execute. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + errorOut(e, "SharedCommand", "execute"); exit(1); } - } //********************************************************************************************************************** void SharedCommand::printSharedData(vector thislookup) { @@ -140,18 +155,18 @@ void SharedCommand::printSharedData(vector thislookup) { for (int i = 0; i < thislookup.size(); i++) { out << thislookup[i]->getLabel() << '\t' << thislookup[i]->getGroup() << '\t'; thislookup[i]->print(out); + + RAbundVector rav = thislookup[i]->getRAbundVector(); + openOutputFileAppend(fileroot + thislookup[i]->getGroup() + ".rabund", *(filehandles[thislookup[i]->getGroup()])); + rav.print(*(filehandles[thislookup[i]->getGroup()])); + (*(filehandles[thislookup[i]->getGroup()])).close(); } } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the SharedCommand class Function printSharedData. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + errorOut(e, "SharedCommand", "printSharedData"); exit(1); } - catch(...) { - cout << "An unknown error has occurred in the SharedCommand class function printSharedData. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } - } //**********************************************************************************************************************