refSeqs = getKmerSeqs(query, numWanted); //fills indexes
}else { m->mothurOut("not valid search."); exit(1); } //should never get here
+ if (m->control_pressed) { return chimera; }
+
refSeqs = minCoverageFilter(refSeqs);
if (refSeqs.size() < 2) {
//fills outputResults
chimera = chimeraMaligner(chimeraPenalty, decalc);
-
+
+ if (m->control_pressed) { return chimera; }
//free memory
delete query;
vector< vector<score_struct> > matrix = buildScoreMatrix(query->getAligned().length(), refSeqs.size()); //builds and initializes
+ if (m->control_pressed) { return chimera; }
+
fillScoreMatrix(matrix, refSeqs, chimeraPenalty);
vector<score_struct> path = extractHighestPath(matrix);
+ if (m->control_pressed) { return chimera; }
+
vector<trace_struct> trace = mapTraceRegionsToAlignment(path, refSeqs);
if (trace.size() > 1) { chimera = "yes"; }
percentIdenticalQueryChimera = computePercentID(queryInRange, chimeraSeq);
+ if (m->control_pressed) { return chimera; }
+
//save output results
for (int i = 0; i < trace.size(); i++) {
int regionStart = trace[i].col;