X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=preclustercommand.cpp;h=bcff0fcd820a497da04405bef0ddb42d7d60ded9;hb=4522aebe2246c5f47875d5c8cc505f1b615bfc7e;hp=23d738650f0e8d6aa84caff684c73becb93cdb70;hpb=57b3c96832667c1b70d4d526331f52e3d49e8237;p=mothur.git diff --git a/preclustercommand.cpp b/preclustercommand.cpp index 23d7386..bcff0fc 100644 --- a/preclustercommand.cpp +++ b/preclustercommand.cpp @@ -229,6 +229,7 @@ int PreClusterCommand::execute(){ m->mothurOut("/******************************************/"); m->mothurOutEndLine(); m->renameFile(filenames["fasta"][0], newFastaFile); + m->renameFile(filenames["name"][0], newNamesFile); m->mothurOut("It took " + toString(time(NULL) - start) + " secs to run pre.cluster."); m->mothurOutEndLine(); @@ -313,7 +314,17 @@ int PreClusterCommand::createProcessesGroups(SequenceParser* parser, string newF processIDS.push_back(pid); //create map from line number to pid so you can append files in correct order later process++; }else if (pid == 0){ + outputNames.clear(); num = driverGroups(parser, newFName + toString(getpid()) + ".temp", newNName + toString(getpid()) + ".temp", newMFile, lines[process].start, lines[process].end, groups); + + string tempFile = toString(getpid()) + ".outputNames.temp"; + ofstream outTemp; + m->openOutputFile(tempFile, outTemp); + + outTemp << outputNames.size(); + for (int i = 0; i < outputNames.size(); i++) { outTemp << outputNames[i] << endl; } + outTemp.close(); + exit(0); }else { m->mothurOut("[ERROR]: unable to spawn the necessary processes."); m->mothurOutEndLine(); @@ -330,7 +341,23 @@ int PreClusterCommand::createProcessesGroups(SequenceParser* parser, string newF int temp = processIDS[i]; wait(&temp); } - + + for (int i = 0; i < processIDS.size(); i++) { + string tempFile = toString(processIDS[i]) + ".outputNames.temp"; + ifstream intemp; + m->openInputFile(tempFile, intemp); + + int num; + intemp >> num; + for (int k = 0; k < num; k++) { + string name = ""; + intemp >> name; m->gobble(intemp); + + outputNames.push_back(name); outputTypes["map"].push_back(name); + } + intemp.close(); + m->mothurRemove(tempFile); + } #else //////////////////////////////////////////////////////////////////////////////////////////////////////