X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=blastdb.cpp;h=b139f3eb7a47bcc86f0920bdc0fc22bad368816a;hb=9ada98592a54c82d08f3d46c9b1d8c3e472a922d;hp=50a0401b2cb8780765ba56a3ba2c025380c4e212;hpb=5a1e62397b91f57d0d3aff635891df04b8999a88;p=mothur.git diff --git a/blastdb.cpp b/blastdb.cpp index 50a0401..b139f3e 100644 --- a/blastdb.cpp +++ b/blastdb.cpp @@ -50,7 +50,7 @@ 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 + " -b 1 -m 8 -W 28 -v " + toString(n); + string blastCommand = path + "blast/bin/blastall -p blastn -d " + dbFileName + " -m 8 -W 28 -v " + toString(n) + " -b " + toString(n);; blastCommand += (" -i " + queryFileName + " -o " + blastFileName); system(blastCommand.c_str()); @@ -82,9 +82,9 @@ vector BlastDB::findClosestSequences(Sequence* seq, int n) { } /**************************************************************************************************/ //assumes you have added all the template sequences using the addSequence function and run generateDB. -map BlastDB::findClosest(Sequence* seq, int n) { +vector BlastDB::findClosestMegaBlast(Sequence* seq, int n) { try{ - map topMatches; + vector topMatches; ofstream queryFile; openOutputFile(queryFileName, queryFile); @@ -96,7 +96,7 @@ map BlastDB::findClosest(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 -b " + toString(n) + " -v " + toString(n); + string 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 + " -o " + blastFileName); system(blastCommand.c_str()); @@ -106,22 +106,18 @@ map BlastDB::findClosest(Sequence* seq, int n) { string dummy; int templateAccession; gobble(m8FileHandle); -//string name = seq->getName(); -//ofstream out; -//openOutputFileAppend(name, out); + while(!m8FileHandle.eof()){ m8FileHandle >> dummy >> templateAccession >> searchScore; -//out << dummy << '\t' << templateAccession << '\t' << searchScore << endl; + //get rest of junk in line - while (!m8FileHandle.eof()) { char c = m8FileHandle.get(); - //out << c; - if (c == 10 || c == 13){ break; } } + while (!m8FileHandle.eof()) { char c = m8FileHandle.get(); if (c == 10 || c == 13){ break; } } gobble(m8FileHandle); - topMatches[templateAccession] = searchScore; + topMatches.push_back(templateAccession); } m8FileHandle.close(); -//out.close(); + return topMatches; } catch(exception& e) {