]> git.donarmstrong.com Git - mothur.git/blob - database.cpp
added mothur.h and fixed includes in many files
[mothur.git] / database.cpp
1 /*
2  *  database.cpp
3  *  
4  *
5  *  Created by Pat Schloss on 12/16/08.
6  *  Copyright 2008 Patrick D. Schloss. All rights reserved.
7  *
8  */
9
10 using namespace std;
11
12 #include "mothur.h"
13 #include "sequence.hpp"
14 #include "database.hpp"
15
16 /**************************************************************************************************/
17
18 Database::Database(string fastaFileName){
19         
20         ifstream fastaFile(fastaFileName.c_str());
21         if(!fastaFile) {
22                 cerr << "Error: Could not open " << fastaFileName << endl;
23                 exit(1);
24         }
25         cout << endl << "Reading in the " << fastaFileName << " template sequences...\t";       cout.flush();
26
27         numSeqs=count(istreambuf_iterator<char>(fastaFile),istreambuf_iterator<char>(), '>');
28         fastaFile.seekg(0);
29         
30         templateSequences.resize(numSeqs);
31         
32         string seqName, sequence;
33         for(int i=0;i<numSeqs;i++){
34                 templateSequences[i] = new Sequence();
35                 
36                 fastaFile >> seqName;
37                 templateSequences[i]->setName(seqName);
38                 
39                 char letter;
40                 string aligned;
41                 
42                 while(fastaFile && (letter=fastaFile.get()) != '>'){
43                         if(isprint(letter)){
44                                 letter = toupper(letter);
45                                 aligned += letter;
46                         }
47                 }
48                 templateSequences[i]->setAligned(aligned);
49                 templateSequences[i]->setUnaligned(aligned);
50                 fastaFile.putback(letter);
51         }
52         
53         fastaFile.close();
54         cout << "DONE." << endl;        cout.flush();
55
56 }
57
58 /**************************************************************************************************/