1 #ifndef SEQUENCEDB_H
2 #define SEQUENCEDB_H
3 
4 /*
5  *  sequencedb.h
6  *  Mothur
7  *
8  *  Created by Thomas Ryabin on 4/13/09.
9  *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
10  *
11  */
12 
13 
14 /* This class is a container to store the sequences. */
15 
16 #include "storagedatabase.hpp"
17 #include "sequence.hpp"
18 
19 class SequenceDB : public StorageDatabase {
20 
21 public:
22 	SequenceDB();
23 	SequenceDB(int);           //makes data that size
24 	SequenceDB(ifstream&);	   //reads file to fill data
25     SequenceDB(ifstream&, int, vector< vector< int > >&, vector< int >&); //filehandle, kmersize, kmerdb, lengths
SequenceDB(const SequenceDB & sdb)26 	SequenceDB(const SequenceDB& sdb) : data(sdb.data) {};
27     SequenceDB(const SequenceDB& sdb, set<string> names); //creates a new sequenceDB containing only the reads in names
28     SequenceDB(const SequenceDB& sdb, set<string> names, int kmerSize, vector< vector< int > >& kmerDB, vector< int >& lengths);
29 	~SequenceDB();             //loops through data and delete each sequence
30 
31 	int getNumSeqs();
32     Sequence getSeq(int);         //returns sequence at that location
33 	void push_back(Sequence);  //adds unaligned sequence
sameLength()34 	bool sameLength() { return samelength; }
35     void print(string);  //prints fasta file containing sequences in this db
36 
37 private:
38 	vector<Sequence> data;
39 
40 
41 
42 };
43 
44 #endif
45