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