X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=alignmentdb.cpp;h=51fb17517f3598fa975c5349fcf9fe4af1dbec90;hb=aba5f8811829037b0a3004ef33f0ad4ed5e5fcf8;hp=52eedf80cbdc0991249d9eb6deca30e006d665a8;hpb=c82900be3ceed3d9bc491bdc98b1819ef85c1af7;p=mothur.git diff --git a/alignmentdb.cpp b/alignmentdb.cpp index 52eedf8..51fb175 100644 --- a/alignmentdb.cpp +++ b/alignmentdb.cpp @@ -16,17 +16,20 @@ /**************************************************************************************************/ 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 @@ -39,8 +42,8 @@ AlignmentDB::AlignmentDB(string fastaFileName, string method, int kmerSize, floa 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(); @@ -61,28 +64,29 @@ AlignmentDB::AlignmentDB(string fastaFileName, string method, int kmerSize, floa 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); } } @@ -99,7 +103,7 @@ Sequence AlignmentDB::findClosestSequence(Sequence* seq) { } catch(exception& e) { - errorOut(e, "AlignmentDB", "findClosestSequence"); + m->errorOut(e, "AlignmentDB", "findClosestSequence"); exit(1); } }