decalc = new DeCalculator();
}
//***************************************************************************************************************
-void ChimeraSlayer::doPrep() {
+int ChimeraSlayer::doPrep() {
try {
string kmerDBNameLeft;
if(!kmerFileTestLeft){
for (int i = 0; i < templateSeqs.size(); i++) {
+
+ if (m->control_pressed) { return 0; }
+
string leftFrag = templateSeqs[i]->getUnaligned();
leftFrag = leftFrag.substr(0, int(leftFrag.length() * 0.33));
if(!kmerFileTestRight){
for (int i = 0; i < templateSeqs.size(); i++) {
+ if (m->control_pressed) { return 0; }
+
string rightFrag = templateSeqs[i]->getUnaligned();
rightFrag = rightFrag.substr(int(rightFrag.length() * 0.66));
vector<Sequence*> tempQuerySeqs;
while(!in.eof()){
+ if (m->control_pressed) { for (int i = 0; i < tempQuerySeqs.size(); i++) { delete tempQuerySeqs[i]; } return 0; }
+
Sequence* s = new Sequence(in);
gobble(in);
for (int i = 0; i < tempQuerySeqs.size(); i++) { delete tempQuerySeqs[i]; }
+ if (m->control_pressed) { return 0; }
+
+
//run filter on template
- for (int i = 0; i < templateSeqs.size(); i++) { runFilter(templateSeqs[i]); }
+ for (int i = 0; i < templateSeqs.size(); i++) { if (m->control_pressed) { return 0; } runFilter(templateSeqs[i]); }
- mothurOutEndLine(); mothurOut("It took " + toString(time(NULL) - start) + " secs to filter."); mothurOutEndLine();
+ m->mothurOutEndLine(); m->mothurOut("It took " + toString(time(NULL) - start) + " secs to filter."); m->mothurOutEndLine();
+
+ return 0;
}
catch(exception& e) {
- errorOut(e, "ChimeraSlayer", "doprep");
+ m->errorOut(e, "ChimeraSlayer", "doprep");
exit(1);
}
}
ChimeraSlayer::~ChimeraSlayer() { delete decalc; if (searchMethod == "kmer") { delete databaseRight; delete databaseLeft; } }
//***************************************************************************************************************
void ChimeraSlayer::printHeader(ostream& out) {
- mothurOutEndLine();
- mothurOut("Only reporting sequence supported by " + toString(minBS) + "% of bootstrapped results.");
- mothurOutEndLine();
+ m->mothurOutEndLine();
+ m->mothurOut("Only reporting sequence supported by " + toString(minBS) + "% of bootstrapped results.");
+ m->mothurOutEndLine();
out << "Name\tLeftParent\tRightParent\tDivQLAQRB\tPerIDQLAQRB\tBootStrapA\tDivQLBQRA\tPerIDQLBQRA\tBootStrapB\tFlag\tLeftWindow\tRightWindow\n";
}
//***************************************************************************************************************
-void ChimeraSlayer::print(ostream& out, ostream& outAcc) {
+int ChimeraSlayer::print(ostream& out, ostream& outAcc) {
try {
if (chimeraFlags == "yes") {
string chimeraFlag = "no";
if (chimeraFlag == "yes") {
if ((chimeraResults[0].bsa >= minBS) || (chimeraResults[0].bsb >= minBS)) {
- mothurOut(querySeq->getName() + "\tyes"); mothurOutEndLine();
+ m->mothurOut(querySeq->getName() + "\tyes"); m->mothurOutEndLine();
outAcc << querySeq->getName() << endl;
}
}
out << endl;
}else { out << querySeq->getName() << "\tno" << endl; }
+ return 0;
+
}
catch(exception& e) {
- errorOut(e, "ChimeraSlayer", "print");
+ m->errorOut(e, "ChimeraSlayer", "print");
exit(1);
}
}
maligner = new Maligner(templateSeqs, numWanted, match, misMatch, divR, minSim, minCov, searchMethod, databaseLeft, databaseRight);
slayer = new Slayer(window, increment, minSim, divR, iters, minSNP);
+ if (m->control_pressed) { return 0; }
+
string chimeraFlag = maligner->getResults(query, decalc);
+ if (m->control_pressed) { return 0; }
vector<results> Results = maligner->getOutput();
//found in testing realigning only made things worse
spotMap = decalc->getMaskMap();
}
+ if (m->control_pressed) { for (int k = 0; k < seqs.size(); k++) { delete seqs[k].seq; } return 0; }
+
//send to slayer
chimeraFlags = slayer->getResults(query, seqsForSlayer);
+ if (m->control_pressed) { return 0; }
chimeraResults = slayer->getOutput();
//free memory
return 0;
}
catch(exception& e) {
- errorOut(e, "ChimeraSlayer", "getChimeras");
+ m->errorOut(e, "ChimeraSlayer", "getChimeras");
exit(1);
}
}
}
catch(exception& e) {
- errorOut(e, "ChimeraSlayer", "printBlock");
+ m->errorOut(e, "ChimeraSlayer", "printBlock");
exit(1);
}
}