for (int i = 0; i < refSeqs.size(); i++) { delete refSeqs[i]; }
if (chimeraFlag == "yes") {
-
+
if (realign) {
vector<string> parents;
for (int i = 0; i < Results.size(); i++) {
}
+// cout << query->getAligned() << endl;
//get sequence that were given from maligner results
vector<SeqDist> seqs;
map<string, float> removeDups;
map<string, string> parentNameSeq;
map<string, string>::iterator itSeq;
for (int j = 0; j < Results.size(); j++) {
+
float dist = (Results[j].regionEnd - Results[j].regionStart + 1) * Results[j].queryToParentLocal;
//only add if you are not a duplicate
-
+// cout << Results[j].parent << '\t' << Results[j].regionEnd << '\t' << Results[j].regionStart << '\t' << Results[j].regionEnd - Results[j].regionStart +1 << '\t' << Results[j].queryToParentLocal << '\t' << dist << endl;
+
+
if(Results[j].queryToParentLocal >= 90){ //local match has to be over 90% similarity
itDup = removeDups.find(Results[j].parent);
for (int k = 0; k < seqs.size(); k++) {
// cout << seqs[k].seq->getAligned() << endl;
seqsForSlayer.push_back(seqs[k].seq);
-
+// cout << seqs[k].seq->getName() << endl;
}
if (m->control_pressed) { for (int k = 0; k < seqs.size(); k++) { delete seqs[k].seq; } return 0; }
seen[tempIndexesRight[i]] = tempIndexesRight[i];
}
}
-
+ //string qname = q->getName().substr(0, q->getName().find_last_of('_'));
+ //cout << qname << endl;
for (int i = 0; i < mergedResults.size(); i++) {
- //cout << mergedResults[i] << '\t' << db[mergedResults[i]]->getName() << endl;
+ //cout << q->getName() << mergedResults[i] << '\t' << db[mergedResults[i]]->getName() << endl;
if (db[mergedResults[i]]->getName() != q->getName()) {
Sequence* temp = new Sequence(db[mergedResults[i]]->getName(), db[mergedResults[i]]->getAligned());
refResults.push_back(temp);
}
}
-
+ //cout << endl << endl;
delete queryRight;
delete queryLeft;
+ if (refResults.size() == 0) { m->mothurOut("[WARNING]: mothur found 0 potential parents, so we are not able to check " + q->getName() + ". This could be due to formatdb.exe not being setup properly, please check formatdb.log for errors."); m->mothurOutEndLine(); }
+
return refResults;
}
catch(exception& e) {
}
}
-
for (int i = 0; i < mergedResults.size(); i++) {
//cout << mergedResults[i] << '\t' << db[mergedResults[i]]->getName() << endl;
if (db[mergedResults[i]]->getName() != q->getName()) {