count[temp]++; //increment count of seq in this genus who have this word
}
- //probabilityInTemplate = (# of seqs with that word in template + 0.05) / (total number of seqs in template + 1);
+ //probabilityInTemplate = (# of seqs with that word in template + 0.50) / (total number of seqs in template + 1);
float probabilityInTemplate = (seqsWithWordi.size() + 0.50) / (float) (names.size() + 1);
int numNotZero = 0;
for (int k = 0; k < genusNodes.size(); k++) {
//probabilityInThisTaxonomy = (# of seqs with that word in this taxonomy + probabilityInTemplate) / (total number of seqs in this taxonomy + 1);
+
+
wordGenusProb[i][k] = log((count[genusNodes[k]] + probabilityInTemplate) / (float) (genusTotals[k] + 1));
+
if (count[genusNodes[k]] != 0) {
#ifdef USE_MPI
int pid;
string queryKmerString = kmer.getKmerString(seq->getUnaligned());
vector<int> queryKmers;
- for (int i = 0; i < queryKmerString.length(); i++) {
+ for (int i = 0; i < queryKmerString.length()-1; i++) { // the -1 is to ignore any kmer with an N in it
if (queryKmerString[i] != '!') { //this kmer is in the query
queryKmers.push_back(i);
}
//bootstrap - to set confidenceScore
int numToSelect = queryKmers.size() / 8;
- tax = bootstrapResults(queryKmers, index, numToSelect);
+// tax = bootstrapResults(queryKmers, index, numToSelect);
return tax;
}
map<int, int>::iterator itBoot;
map<int, int>::iterator itBoot2;
map<int, int>::iterator itConvert;
-
+
for (int i = 0; i < iters; i++) {
if (m->control_pressed) { return "control"; }
double maxProbability = -1000000.0;
//find taxonomy with highest probability that this sequence is from it
+
+
+ cout << genusNodes.size() << endl;
+
+
for (int k = 0; k < genusNodes.size(); k++) {
//for each taxonomy calc its probability
- double prob = 1.0;
+
+ double prob = 0.0000;
for (int i = 0; i < queryKmer.size(); i++) {
prob += wordGenusProb[queryKmer[i]][k];
}
+ cout << phyloTree->get(genusNodes[k]).name << '\t' << prob << endl;
+
//is this the taxonomy with the greatest probability?
if (prob > maxProbability) {
indexofGenus = genusNodes[k];
maxProbability = prob;
}
}
-// cout << phyloTree->get(indexofGenus).name << '\t' << maxProbability << endl;
+
+
return indexofGenus;
}
catch(exception& e) {
CommandParameter pmaxhomop("maxhomop", "Number", "", "9", "", "", "",false,false); parameters.push_back(pmaxhomop);
CommandParameter pmaxflows("maxflows", "Number", "", "720", "", "", "",false,false); parameters.push_back(pmaxflows);
CommandParameter pminflows("minflows", "Number", "", "360", "", "", "",false,false); parameters.push_back(pminflows);
- CommandParameter pminlength("minlength", "Number", "", "0", "", "", "",false,false); parameters.push_back(pminlength);
- CommandParameter pmaxlength("maxlength", "Number", "", "0", "", "", "",false,false); parameters.push_back(pmaxlength);
CommandParameter ppdiffs("pdiffs", "Number", "", "0", "", "", "",false,false); parameters.push_back(ppdiffs);
CommandParameter pbdiffs("bdiffs", "Number", "", "0", "", "", "",false,false); parameters.push_back(pbdiffs);
CommandParameter ptdiffs("tdiffs", "Number", "", "0", "", "", "",false,false); parameters.push_back(ptdiffs);
temp = validParameter.validFile(parameters, "noise", false); if (temp == "not found"){ temp = "0.70"; }
convert(temp, noise);
-
- temp = validParameter.validFile(parameters, "minlength", false); if (temp == "not found"){ temp = "0"; }
- convert(temp, minLength);
-
- temp = validParameter.validFile(parameters, "maxlength", false); if (temp == "not found"){ temp = "0"; }
- convert(temp, maxLength);
-
+
temp = validParameter.validFile(parameters, "bdiffs", false); if (temp == "not found"){ temp = "0"; }
convert(temp, bdiffs);
convert(temp, tdiffs);
if(tdiffs == 0){ tdiffs = bdiffs + pdiffs; }
- temp = validParameter.validFile(parameters, "allfiles", false); if (temp == "not found"){ temp = "T"; }
- allFiles = m->isTrue(temp);
-
temp = validParameter.validFile(parameters, "processors", false); if (temp == "not found"){ temp = m->getProcessors(); }
m->setProcessors(temp);
convert(temp, processors);
m->mothurOut("The value of the order option must be four bases long\n");
}
- if(oligoFileName == ""){ allFiles = 0; }
+ if(oligoFileName == "") { allFiles = 0; }
+ else { allFiles = 1; }
numFPrimers = 0;
numRPrimers = 0;
trashCode += 'l';
}
- if(minLength > 0 || maxLength > 0){ //screen to see if sequence is above and below a specific number of bases
- int seqLength = currSeq.getNumBases();
- if(seqLength < minLength || seqLength > maxLength){
- success = 0;
- trashCode += 'l';
- }
- }
-
int primerIndex = 0;
int barcodeIndex = 0;