X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=classify.cpp;h=8aa3cdb381ed7a389667ce61962d47cefac15ddd;hb=e10c72304ee071c0c40e0218a06d89dc4731cbc2;hp=f44e66c359873f6830dac72d99fb1727a73c27ad;hpb=5b72d1cf3fa48730e5bb70d59cced1e43e1fe424;p=mothur.git diff --git a/classify.cpp b/classify.cpp index f44e66c..8aa3cdb 100644 --- a/classify.cpp +++ b/classify.cpp @@ -61,7 +61,8 @@ void Classify::generateDatabaseAndNames(string tfile, string tempFile, string me names.push_back(temp.getName()); database->addSequence(temp); } - database->generateDB(); + if ((method == "kmer") && (!shortcuts)) {;} //don't print + else {database->generateDB(); } }else if ((method == "kmer") && (!needToGenerate)) { ifstream kmerFileTest(kmerDBName.c_str()); database->readKmerDB(kmerFileTest); @@ -201,7 +202,7 @@ void Classify::generateDatabaseAndNames(string tfile, string tempFile, string me fastaFile.close(); if ((method == "kmer") && (!shortcuts)) {;} //don't print - else {database->generateDB(); } + else {database->generateDB(); } }else if ((method == "kmer") && (!needToGenerate)) { ifstream kmerFileTest(kmerDBName.c_str()); @@ -353,3 +354,37 @@ vector Classify::parseTax(string tax) { } /**************************************************************************************************/ +double Classify::getLogExpSum(vector probabilities, int& maxIndex){ + try { + // http://jblevins.org/notes/log-sum-exp + + double maxProb = probabilities[0]; + maxIndex = 0; + + int numProbs = (int)probabilities.size(); + + for(int i=1;i= maxProb){ + maxProb = probabilities[i]; + maxIndex = i; + } + } + + double probSum = 0.0000; + + for(int i=0;ierrorOut(e, "Classify", "getLogExpSum"); + exit(1); + } +} + +/**************************************************************************************************/ +