From: westcott Date: Fri, 3 Jun 2011 19:41:36 +0000 (+0000) Subject: fixed bug with blastdb.cpp X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=b553a5240d60e4e2b267fa26e4ba6c55acaba795;p=mothur.git fixed bug with blastdb.cpp --- diff --git a/blastdb.cpp b/blastdb.cpp index a54c9bd..d64f374 100644 --- a/blastdb.cpp +++ b/blastdb.cpp @@ -21,9 +21,14 @@ gapOpen(gO), gapExtend(gE), match(mm), misMatch(mM) { int randNumber = rand(); //int randNumber = 12345; - dbFileName = tag + toString(getpid()) + toString(randNumber) + ".template.unaligned.fasta"; - queryFileName = tag + toString(getpid()) + toString(randNumber) + ".candidate.unaligned.fasta"; - blastFileName = tag + toString(getpid()) + toString(randNumber) + ".blast"; + string pid = ""; +#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) + pid += toString(getpid()); +#endif + + dbFileName = tag + pid + toString(randNumber) + ".template.unaligned.fasta"; + queryFileName = tag + pid + toString(randNumber) + ".candidate.unaligned.fasta"; + blastFileName = tag + pid + toString(randNumber) + ".blast"; //make sure blast exists in the write place path = m->argv; @@ -90,10 +95,14 @@ BlastDB::BlastDB() : Database() { count = 0; int randNumber = rand(); - //int randNumber = 12345; - dbFileName = toString(randNumber) + toString(getpid()) + ".template.unaligned.fasta"; - queryFileName = toString(randNumber) + toString(getpid()) + ".candidate.unaligned.fasta"; - blastFileName = toString(randNumber) + toString(getpid()) + ".blast"; + string pid = ""; +#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) + pid += toString(getpid()); +#endif + + dbFileName = pid + toString(randNumber) + ".template.unaligned.fasta"; + queryFileName = pid + toString(randNumber) + ".candidate.unaligned.fasta"; + blastFileName = pid + toString(randNumber) + ".blast"; //make sure blast exists in the write place path = m->argv; @@ -181,7 +190,12 @@ vector BlastDB::findClosestSequences(Sequence* seq, int n) { ofstream queryFile; int randNumber = rand(); - m->openOutputFile((queryFileName+toString(getpid())+toString(randNumber)), queryFile); + string pid = ""; +#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) + pid += toString(getpid()); +#endif + + m->openOutputFile((queryFileName+pid+toString(randNumber)), queryFile); queryFile << '>' << seq->getName() << endl; queryFile << seq->getUnaligned() << endl; queryFile.close(); @@ -195,10 +209,10 @@ vector BlastDB::findClosestSequences(Sequence* seq, int n) { #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) blastCommand = path + "blast/bin/blastall -p blastn -d " + dbFileName + " -m 8 -W 28 -v " + toString(n) + " -b " + toString(n); - blastCommand += (" -i " + (queryFileName+toString(getpid())+toString(randNumber)) + " -o " + blastFileName+toString(getpid())+toString(randNumber)); + blastCommand += (" -i " + (queryFileName+pid+toString(randNumber)) + " -o " + blastFileName+pid+toString(randNumber)); #else blastCommand = "\"" + path + "blast\\bin\\blastall\" -p blastn -d " + "\"" + dbFileName + "\"" + " -m 8 -W 28 -v " + toString(n) + " -b " + toString(n); - blastCommand += (" -i " + (queryFileName+toString(getpid())+toString(randNumber)) + " -o " + blastFileName+toString(getpid())+toString(randNumber)); + blastCommand += (" -i " + (queryFileName+pid+toString(randNumber)) + " -o " + blastFileName+pid+toString(randNumber)); //wrap entire string in "" blastCommand = "\"" + blastCommand + "\""; #endif @@ -206,7 +220,7 @@ vector BlastDB::findClosestSequences(Sequence* seq, int n) { system(blastCommand.c_str()); ifstream m8FileHandle; - m->openInputFile(blastFileName+toString(getpid())+toString(randNumber), m8FileHandle, "no error"); + m->openInputFile(blastFileName+pid+toString(randNumber), m8FileHandle, "no error"); string dummy; int templateAccession; @@ -222,8 +236,8 @@ vector BlastDB::findClosestSequences(Sequence* seq, int n) { topMatches.push_back(templateAccession); } m8FileHandle.close(); - remove((queryFileName+toString(getpid())+toString(randNumber)).c_str()); - remove((blastFileName+toString(getpid())+toString(randNumber)).c_str()); + remove((queryFileName+pid+toString(randNumber)).c_str()); + remove((blastFileName+pid+toString(randNumber)).c_str()); return topMatches; } @@ -243,8 +257,12 @@ vector BlastDB::findClosestMegaBlast(Sequence* seq, int n, int minPerID) { ofstream queryFile; int randNumber = rand(); - //int randNumber = 12345; - m->openOutputFile((queryFileName+toString(getpid())+toString(randNumber)), queryFile); + string pid = ""; +#if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) + pid += toString(getpid()); +#endif + + m->openOutputFile((queryFileName+pid+toString(randNumber)), queryFile); queryFile << '>' << seq->getName() << endl; queryFile << seq->getUnaligned() << endl; queryFile.close(); @@ -256,13 +274,13 @@ vector BlastDB::findClosestMegaBlast(Sequence* seq, int n, int minPerID) { string blastCommand; #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) blastCommand = path + "blast/bin/megablast -e 1e-10 -d " + dbFileName + " -m 8 -b " + toString(n) + " -v " + toString(n); //-W 28 -p blastn - blastCommand += (" -i " + (queryFileName+toString(getpid())+toString(randNumber)) + " -o " + blastFileName+toString(getpid())+toString(randNumber)); + blastCommand += (" -i " + (queryFileName+pid+toString(randNumber)) + " -o " + blastFileName+pid+toString(randNumber)); #else //blastCommand = path + "blast\\bin\\megablast -e 1e-10 -d " + dbFileName + " -m 8 -b " + toString(n) + " -v " + toString(n); //-W 28 -p blastn //blastCommand += (" -i " + (queryFileName+toString(randNumber)) + " -o " + blastFileName+toString(randNumber)); blastCommand = "\"" + path + "blast\\bin\\megablast\" -e 1e-10 -d " + "\"" + dbFileName + "\"" + " -m 8 -b " + toString(n) + " -v " + toString(n); //-W 28 -p blastn - blastCommand += (" -i " + (queryFileName+toString(getpid())+toString(randNumber)) + " -o " + blastFileName+toString(getpid())+toString(randNumber)); + blastCommand += (" -i " + (queryFileName+pid+toString(randNumber)) + " -o " + blastFileName+pid+toString(randNumber)); //wrap entire string in "" blastCommand = "\"" + blastCommand + "\""; @@ -270,7 +288,7 @@ vector BlastDB::findClosestMegaBlast(Sequence* seq, int n, int minPerID) { system(blastCommand.c_str()); ifstream m8FileHandle; - m->openInputFile(blastFileName+toString(getpid())+toString(randNumber), m8FileHandle, "no error"); + m->openInputFile(blastFileName+pid+toString(randNumber), m8FileHandle, "no error"); string dummy, eScore; int templateAccession; @@ -291,8 +309,8 @@ vector BlastDB::findClosestMegaBlast(Sequence* seq, int n, int minPerID) { //cout << templateAccession << endl; } m8FileHandle.close(); - remove((queryFileName+toString(getpid())+toString(randNumber)).c_str()); - remove((blastFileName+toString(getpid())+toString(randNumber)).c_str()); + remove((queryFileName+pid+toString(randNumber)).c_str()); + remove((blastFileName+pid+toString(randNumber)).c_str()); //cout << "\n" ; return topMatches; }