X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=chimerauchimecommand.h;h=b7da889701f3ac2bc7883cf5c39356550eb2e25d;hb=2009a1a1f47e7467094d844e7c07ab8ddf7bb447;hp=359b68c9c97f144f0914f4ff309c973ca2ec5d60;hpb=4c5e7a20a03ddc6feb49ff9d21fcb4c79bc5508d;p=mothur.git diff --git a/chimerauchimecommand.h b/chimerauchimecommand.h index 359b68c..b7da889 100644 --- a/chimerauchimecommand.h +++ b/chimerauchimecommand.h @@ -48,6 +48,7 @@ private: string fastafile, groupfile, templatefile, outputDir, namefile, abskew, minh, mindiv, xn, dn, xa, chunks, minchunk, idsmoothwindow, minsmoothid, maxp, minlen, maxlen, queryfract; int processors; + vector outputNames; vector fastaFileNames; vector nameFileNames; @@ -58,7 +59,7 @@ private: int printFile(vector&, string); int deconvoluteResults(SequenceParser&, string, string, string); int driverGroups(SequenceParser&, string, string, string, string, int, int, vector); - int createProcessesGroups(SequenceParser&, string, string, string, string, vector); + int createProcessesGroups(SequenceParser&, string, string, string, string, vector, string, string, string); }; @@ -140,7 +141,7 @@ struct uchimeData { }; /**************************************************************************************************/ -#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) +#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix) #else static DWORD WINAPI MyUchimeThreadFunction(LPVOID lpParam){ uchimeData* pDataArray; @@ -148,6 +149,10 @@ static DWORD WINAPI MyUchimeThreadFunction(LPVOID lpParam){ try { + pDataArray->outputFName = pDataArray->m->getFullPathName(pDataArray->outputFName); + pDataArray->filename = pDataArray->m->getFullPathName(pDataArray->filename); + pDataArray->alns = pDataArray->m->getFullPathName(pDataArray->alns); + //clears files ofstream out, out1, out2; pDataArray->m->openOutputFile(pDataArray->outputFName, out); out.close(); @@ -178,10 +183,23 @@ static DWORD WINAPI MyUchimeThreadFunction(LPVOID lpParam){ vector cPara; + string path = pDataArray->m->argv; + string tempPath = path; + for (int j = 0; j < path.length(); j++) { tempPath[j] = tolower(path[j]); } + path = path.substr(0, (tempPath.find_last_of('m'))); + + string uchimeCommand = path; +#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix) + uchimeCommand += "uchime "; +#else + uchimeCommand += "uchime"; + uchimeCommand = "\"" + uchimeCommand + "\""; +#endif + char* tempUchime; - tempUchime= new char[8]; + tempUchime= new char[uchimeCommand.length()+1]; *tempUchime = '\0'; - strncat(tempUchime, "uchime ", 7); + strncat(tempUchime, uchimeCommand.c_str(), uchimeCommand.length()); cPara.push_back(tempUchime); char* tempIn = new char[8]; @@ -312,17 +330,6 @@ static DWORD WINAPI MyUchimeThreadFunction(LPVOID lpParam){ cPara.push_back(tempIdsmoothwindow); } - /*if (useMinsmoothid) { - char* tempminsmoothid = new char[14]; - //strcpy(tempminsmoothid, "--minsmoothid"); - *tempminsmoothid = '\0'; strncat(tempminsmoothid, "--minsmoothid", 13); - cPara.push_back(tempminsmoothid); - char* tempMinsmoothid = new char[minsmoothid.length()+1]; - *tempMinsmoothid = '\0'; strncat(tempMinsmoothid, minsmoothid.c_str(), minsmoothid.length()); - //strcpy(tempMinsmoothid, minsmoothid.c_str()); - cPara.push_back(tempMinsmoothid); - }*/ - if (pDataArray->useMaxp) { char* tempmaxp = new char[7]; //strcpy(tempmaxp, "--maxp"); @@ -396,6 +403,10 @@ static DWORD WINAPI MyUchimeThreadFunction(LPVOID lpParam){ //uchime_main(numArgs, uchimeParameters); //cout << "commandString = " << commandString << endl; +#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix) +#else + commandString = "\"" + commandString + "\""; +#endif system(commandString.c_str()); //free memory @@ -476,6 +487,10 @@ static DWORD WINAPI MyUchimeSeqsThreadFunction(LPVOID lpParam){ try { + pDataArray->outputFName = pDataArray->m->getFullPathName(pDataArray->outputFName); + pDataArray->filename = pDataArray->m->getFullPathName(pDataArray->filename); + pDataArray->alns = pDataArray->m->getFullPathName(pDataArray->alns); + int totalSeqs = 0; int numChimeras = 0;