//trims seqs to first non gap char in all seqs and last non gap char in all seqs
spotMap = decalc->trimSeqs(query, refSeqs);
+
+ //you trimmed the whole sequence, skip
+ if (query->getAligned() == "") { return "no"; }
vector<Sequence*> temp = refSeqs;
temp.push_back(query);
//if coverage above minimum
if (coverage > minCoverage) {
newRefs.push_back(ref[i]);
+ }else {
+ delete ref[i];
}
}
string leftQuery = queryUnAligned.substr(0, int(queryUnAligned.length() * 0.33)); //first 1/3 of the sequence
string rightQuery = queryUnAligned.substr(int(queryUnAligned.length() * 0.66)); //last 1/3 of the sequence
- Sequence* queryLeft = new Sequence(q->getName(), leftQuery);
- Sequence* queryRight = new Sequence(q->getName(), rightQuery);
+ Sequence* queryLeft = new Sequence(q->getName()+"left", leftQuery);
+ Sequence* queryRight = new Sequence(q->getName()+"right", rightQuery);
vector<int> tempIndexesRight = databaseLeft->findClosestMegaBlast(queryRight, num+1);
vector<int> tempIndexesLeft = databaseLeft->findClosestMegaBlast(queryLeft, num+1);
-
- //if ((tempIndexesRight.size() != (num+1)) || (tempIndexesLeft.size() != (num+1))) { m->mothurOut("megablast returned " + toString(tempIndexesRight.size()) + " results for the right end, and " + toString(tempIndexesLeft.size()) + " for the left end. Needed " + toString(num+1) + ". Unable to porcess sequence " + q->getName()); m->mothurOutEndLine(); return refResults; }
+
+ //if ((tempIndexesRight.size() == 0) && (tempIndexesLeft.size() == 0)) { m->mothurOut("megablast returned " + toString(tempIndexesRight.size()) + " results for the right end, and " + toString(tempIndexesLeft.size()) + " for the left end. Needed " + toString(num+1) + ". Unable to process sequence " + q->getName()); m->mothurOutEndLine(); return refResults; }
vector<int> smaller;
vector<int> larger;
}
if (mergedResults.size() < numWanted) { numWanted = mergedResults.size(); }
-//cout << q->getName() << endl;
+//cout << q->getName() << " merged results size = " << mergedResults.size() << '\t' << "numwanted = " << numWanted << endl;
for (int i = 0; i < numWanted; i++) {
-//cout << db[mergedResults[i]]->getName() << endl;
+//cout << db[mergedResults[i]]->getName() << '\t' << mergedResults[i] << 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 << mergedResults[i] << endl;
}
-//cout << endl;
+//cout << "done " << q->getName() << endl;
delete queryRight;
delete queryLeft;
return refResults;
}
catch(exception& e) {
- m->errorOut(e, "Maligner", "getBlastSeqs");
+ m->errorOut(e, "Maligner", "getKmerSeqs");
exit(1);
}
}