X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sequence.hpp;h=ad3a4b40c238c4260d36f7afea027b903539c8a0;hb=ace98dda2bb2e1cffd6755fb8a27e5080af66f2b;hp=32063ef6f3daca1f4586abda0d02497da263933f;hpb=20a2d0350a737a434c89f303662d64a8eeea7b05;p=mothur.git diff --git a/sequence.hpp b/sequence.hpp index 32063ef..ad3a4b4 100644 --- a/sequence.hpp +++ b/sequence.hpp @@ -8,32 +8,80 @@ * Created by Pat Schloss on 12/15/08. * Copyright 2008 Patrick D. Schloss. All rights reserved. * + * A sequence object has three components: i) an accession number / name, ii) the unaligned primary sequence, iii) a + * pairwise aligned sequence, and iv) a sequence that is aligned to a reference alignment. This class has methods + * to set and get these values for the other classes where they are needed. * + * */ -using namespace std; -#include +//Data Structure for a fasta file. + +#include "mothur.h" +#include "mothurout.h" /**************************************************************************************************/ class Sequence { public: Sequence(); + Sequence(string, string); Sequence(ifstream&); + Sequence(ifstream&, string&, bool); + Sequence(istringstream&); + //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); void setPairwise(string); void setAligned(string); + void setLength(); + void reverseComplement(); + void trim(int); + string convert2ints(); - string getSeqName(); + string getName(); string getAligned(); string getPairwise(); string getUnaligned(); + string getInlineSeq(); + int getNumNs(); + int getNumBases(); + int getStartPos(); + int getEndPos(); + void padToPos(int); + void padFromPos(int); + int filterToPos(int); //any character before the pos is changed to . and aligned and unaligned strings changed + int filterFromPos(int); //any character after the pos is changed to . and aligned and unaligned strings changed + int getAlignLength(); + int getAmbigBases(); + void removeAmbigBases(); + int getLongHomoPolymer(); + bool getIsAligned(); + void printSequence(ostream&); + private: + MothurOut* m; + void initialize(); + string getSequenceString(ifstream&, int&); + string getCommentString(ifstream&); + string getSequenceString(istringstream&, int&); + string getCommentString(istringstream&); + string getSequenceName(ifstream&); + string getSequenceName(istringstream&); string name; string unaligned; - string pairwise; string aligned; + string pairwise; + int numBases; + int alignmentLength; + bool isAligned; + int longHomoPolymer; + int ambigBases; + int startPos, endPos; }; /**************************************************************************************************/