X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=blastdb.cpp;h=b1a7b48d1108d747c1423eb0f8bad19e3ceede42;hb=1e8d08e96f4fe99604a6b3502568de464bf60891;hp=4f3047d4d3dcded81e738fba36a79abdc81e680b;hpb=8f7f4fc08b8c70d9ef0f79607813dba4e926e102;p=mothur.git diff --git a/blastdb.cpp b/blastdb.cpp index 4f3047d..b1a7b48 100644 --- a/blastdb.cpp +++ b/blastdb.cpp @@ -77,8 +77,17 @@ vector BlastDB::findClosestSequences(Sequence* seq, int n) { // wordsize used in megablast. I'm sure we're sacrificing accuracy for speed, but anyother way would take way too // long. With this setting, it seems comparable in speed to the suffix tree approach. - string blastCommand = path + "blast/bin/blastall -p blastn -d " + dbFileName + " -m 8 -W 28 -v " + toString(n) + " -b " + toString(n);; - blastCommand += (" -i " + (queryFileName+seq->getName()) + " -o " + blastFileName+seq->getName()); + string blastCommand; + #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+seq->getName()) + " -o " + blastFileName+seq->getName()); + #else + blastCommand = "\"" + path + "blast\\bin\\blastall\" -p blastn -d " + "\"" + dbFileName + "\"" + " -m 8 -W 28 -v " + toString(n) + " -b " + toString(n); + blastCommand += (" -i " + (queryFileName+seq->getName()) + " -o " + blastFileName+seq->getName()); + //wrap entire string in "" + blastCommand = "\"" + blastCommand + "\""; + #endif system(blastCommand.c_str()); ifstream m8FileHandle; @@ -133,8 +142,11 @@ vector BlastDB::findClosestMegaBlast(Sequence* seq, int n, int minPerID) { 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+seq->getName()) + " -o " + blastFileName+seq->getName()); #else - blastCommand = path + "blast\\bin\\megablast -e 1e-10 -d " + dbFileName + " -m 8 -b " + toString(n) + " -v " + toString(n); //-W 28 -p blastn + 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+seq->getName()) + " -o " + blastFileName+seq->getName()); + //wrap entire string in "" + blastCommand = "\"" + blastCommand + "\""; + #endif system(blastCommand.c_str()); @@ -206,7 +218,9 @@ void BlastDB::generateDB() { #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) formatdbCommand = path + "blast/bin/formatdb -p F -o T -i " + dbFileName; // format the database, -o option gives us the ability #else - formatdbCommand = path + "blast\\bin\\formatdb -p F -o T -i " + dbFileName; + formatdbCommand = "\"" + path + "blast\\bin\\formatdb\" -p F -o T -i " + "\"" + dbFileName + "\""; + //wrap entire string in "" + formatdbCommand = "\"" + formatdbCommand + "\""; #endif system(formatdbCommand.c_str()); // to get the right sequence names, i think. -p F // option tells formatdb that seqs are DNA, not prot