X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sequence.hpp;h=6a50cb0b8aa31e4a3a3b6c9c97e77416f53eeeb1;hb=8dd3c225255d7084e3aff8740aa4f1f1cabb367a;hp=5f84d441c20d0fd8a0ed8f9284b7a32dfc9b4214;hpb=17a6a53298a907c005fa93fb82af9e533adcda09;p=mothur.git diff --git a/sequence.hpp b/sequence.hpp index 5f84d44..6a50cb0 100644 --- a/sequence.hpp +++ b/sequence.hpp @@ -14,6 +14,9 @@ * */ + +//Data Structure for a fasta file. + #include "mothur.h" #include "mothurout.h" @@ -25,6 +28,13 @@ public: Sequence(string, string); Sequence(ifstream&); Sequence(istringstream&); + Sequence(const Sequence& se) : name(se.name), unaligned(se.unaligned), aligned(se.aligned), pairwise(se.pairwise), numBases(se.numBases), startPos(se.startPos), endPos(se.endPos), + alignmentLength(se.alignmentLength), isAligned(se.isAligned), longHomoPolymer(se.longHomoPolymer), ambigBases(se.ambigBases) { m = MothurOut::getInstance(); } + + //these constructors just set the unaligned string to save space + Sequence(string, string, string); + Sequence(ifstream&, string); + Sequence(istringstream&, string); void setName(string); void setUnaligned(string); @@ -32,17 +42,22 @@ public: void setAligned(string); void setLength(); void reverseComplement(); + void trim(int); string convert2ints(); string getName(); string getAligned(); string getPairwise(); string getUnaligned(); + string getInlineSeq(); int getNumBases(); int getStartPos(); int getEndPos(); + void padToPos(int); + void padFromPos(int); int getAlignLength(); int getAmbigBases(); + void removeAmbigBases(); int getLongHomoPolymer(); bool getIsAligned(); void printSequence(ostream&); @@ -50,9 +65,9 @@ public: private: MothurOut* m; void initialize(); - string getSequenceString(ifstream&); + string getSequenceString(ifstream&, int&); string getCommentString(ifstream&); - string getSequenceString(istringstream&); + string getSequenceString(istringstream&, int&); string getCommentString(istringstream&); string name; string unaligned;