]> git.donarmstrong.com Git - mothur.git/commitdiff
fixed bug with blastdb.cpp
authorwestcott <westcott>
Fri, 3 Jun 2011 19:41:36 +0000 (19:41 +0000)
committerwestcott <westcott>
Fri, 3 Jun 2011 19:41:36 +0000 (19:41 +0000)
blastdb.cpp

index a54c9bd135df7b5dc449d0dd435c551c60a99aeb..d64f374c4146fb802079f8fda5cb23074f9561f8 100644 (file)
@@ -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<int> 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<int> 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<int> 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<int> 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<int> 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<int> 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<int> 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<int> 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;
        }