X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sequence.hpp;h=ac9384bf156bf471cc35b3fe8d57f6ecf777e857;hb=30b3ffcd1cfd08e7144ae721bb53e27eb3f7a5d1;hp=03cbab7ffddce5531e272cf6116069edfa0ebade;hpb=c196b6b4768ccb84955d773ff0f22e4994d1ba7b;p=mothur.git diff --git a/sequence.hpp b/sequence.hpp index 03cbab7..ac9384b 100644 --- a/sequence.hpp +++ b/sequence.hpp @@ -8,8 +8,11 @@ * 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 "mothur.h" @@ -20,28 +23,41 @@ class Sequence { public: Sequence(); Sequence(string, string); + Sequence(ifstream&); void setName(string); void setUnaligned(string); void setPairwise(string); void setAligned(string); void setLength(); + void reverseComplement(); string convert2ints(); string getName(); string getAligned(); string getPairwise(); string getUnaligned(); - int getLength(); + int getNumBases(); + int getStartPos(); + int getEndPos(); + int getAlignLength(); + int getAmbigBases(); + int getLongHomoPolymer(); + bool getIsAligned(); void printSequence(ostream&); private: + void initialize(); string name; string unaligned; string aligned; string pairwise; - int length; - int lengthAligned; + int numBases; + int alignmentLength; + bool isAligned; + int longHomoPolymer; + int ambigBases; + int startPos, endPos; }; /**************************************************************************************************/