/**************************************************************************************************/
AlignmentDB::AlignmentDB(string fastaFileName, string method, int kmerSize, float gapOpen, float gapExtend, float match, float misMatch){ // This assumes that the template database is in fasta format, may
try { // need to alter this in the future?
+ m = MothurOut::getInstance();
longest = 0;
ifstream fastaFile;
openInputFile(fastaFileName, fastaFile);
- mothurOutEndLine();
- mothurOut("Reading in the " + fastaFileName + " template sequences...\t"); cout.flush();
+ m->mothurOutEndLine();
+ m->mothurOut("Reading in the " + fastaFileName + " template sequences...\t"); cout.flush();
while (!fastaFile.eof()) {
Sequence temp(fastaFile); gobble(fastaFile);
+ if (m->control_pressed) { templateSequences.clear(); break; }
+
if (temp.getName() != "") {
templateSequences.push_back(temp);
//save longest base
fastaFile.close();
//all of this is elsewhere already!
- mothurOut("DONE.");
- mothurOutEndLine(); cout.flush();
+ m->mothurOut("DONE.");
+ m->mothurOutEndLine(); cout.flush();
//in case you delete the seqs and then ask for them
emptySequence = Sequence();
else if(method == "suffix") { search = new SuffixDB(numSeqs); }
else if(method == "blast") { search = new BlastDB(gapOpen, gapExtend, match, misMatch); }
else {
- mothurOut(method + " is not a valid search option. I will run the command using kmer, ksize=8.");
- mothurOutEndLine();
+ m->mothurOut(method + " is not a valid search option. I will run the command using kmer, ksize=8.");
+ m->mothurOutEndLine();
search = new KmerDB(fastaFileName, 8);
}
- if (needToGenerate) {
-
- //add sequences to search
- for (int i = 0; i < templateSequences.size(); i++) {
- search->addSequence(templateSequences[i]);
+ if (!(m->control_pressed)) {
+ if (needToGenerate) {
+ //add sequences to search
+ for (int i = 0; i < templateSequences.size(); i++) {
+ search->addSequence(templateSequences[i]);
+ }
+ search->generateDB();
+
+ }else if ((method == "kmer") && (!needToGenerate)) {
+ ifstream kmerFileTest(kmerDBName.c_str());
+ search->readKmerDB(kmerFileTest);
}
- search->generateDB();
- }else if ((method == "kmer") && (!needToGenerate)) {
- ifstream kmerFileTest(kmerDBName.c_str());
- search->readKmerDB(kmerFileTest);
+ search->setNumSeqs(numSeqs);
}
-
- search->setNumSeqs(numSeqs);
}
catch(exception& e) {
- errorOut(e, "AlignmentDB", "AlignmentDB");
+ m->errorOut(e, "AlignmentDB", "AlignmentDB");
exit(1);
}
}
}
catch(exception& e) {
- errorOut(e, "AlignmentDB", "findClosestSequence");
+ m->errorOut(e, "AlignmentDB", "findClosestSequence");
exit(1);
}
}