5 * Created by Pat Schloss on 12/16/08.
6 * Copyright 2008 Patrick D. Schloss. All rights reserved.
11 #include "sequence.hpp"
12 #include "database.hpp"
14 /**************************************************************************************************/
16 Database::Database(string fastaFileName){ // This assumes that the template database is in fasta format, may
17 // need to alter this in the future?
21 openInputFile(fastaFileName, fastaFile);
24 mothurOut("Reading in the " + fastaFileName + " template sequences...\t"); cout.flush();
26 //all of this is elsewhere already!
27 //numSeqs=count(istreambuf_iterator<char>(fastaFile),istreambuf_iterator<char>(), '>'); // count the number of
28 //fastaFile.seekg(0); // sequences
30 //templateSequences.resize(numSeqs);
32 /*string seqName, sequence;
33 for(int i=0;i<numSeqs;i++){
35 seqName = seqName.substr(1);
39 while(fastaFile && (letter=fastaFile.get()) != '>'){
41 letter = toupper(letter);
42 if(letter == 'U'){letter = 'T';}
46 templateSequences[i] = Sequence(seqName, aligned);
48 //necessary because Sequence constructor by default sets whatever it reads to unaligned
49 //the setUnaligned function remove gap char.
50 templateSequences[i].setUnaligned(templateSequences[i].getUnaligned());
52 if (templateSequences[i].getUnaligned().length() > longest) { longest = templateSequences[i].getUnaligned().length(); }
54 fastaFile.putback(letter);
57 while (!fastaFile.eof()) {
58 Sequence temp(fastaFile);
60 templateSequences.push_back(temp);
63 if (temp.getUnaligned().length() > longest) { longest = temp.getUnaligned().length(); }
68 numSeqs = templateSequences.size();
71 //all of this is elsewhere already!
74 mothurOutEndLine(); cout.flush();
77 /**************************************************************************************************/
79 Database::~Database(){
81 templateSequences.clear();
84 /**************************************************************************************************/
86 float Database::getSearchScore() { return searchScore; } // we're assuming that the search is already done
89 /**************************************************************************************************/
91 int Database::getLongestBase() { return longest+1; }
93 /**************************************************************************************************/