]> git.donarmstrong.com Git - mothur.git/blobdiff - sequence.hpp
fixed problem with class.fy.seqs where group totals did not add up. added constructo...
[mothur.git] / sequence.hpp
index 32063ef6f3daca1f4586abda0d02497da263933f..95c3e51839029393798dc2f57848d5e325c6c2df 100644 (file)
@@ -8,32 +8,67 @@
  *  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 <string>
 
+#include "mothur.h"
+#include "mothurout.h"
 
 /**************************************************************************************************/
 
 class Sequence {
 public:
        Sequence();
+       Sequence(string, string);
        Sequence(ifstream&);
+       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();
+       
        string convert2ints();
-       string getSeqName();
+       string getName();
        string getAligned();
        string getPairwise();
        string getUnaligned();
+       int getNumBases();
+       int getStartPos();
+       int getEndPos();
+       int getAlignLength();
+       int getAmbigBases();
+       int getLongHomoPolymer();
+       bool getIsAligned();
+       void printSequence(ostream&);
+       
 private:
+       MothurOut* m;
+       void initialize();
+       string getSequenceString(ifstream&);
+       string getCommentString(ifstream&);
+       string getSequenceString(istringstream&);
+       string getCommentString(istringstream&);
        string name;
        string unaligned;
-       string pairwise;
        string aligned;
+       string pairwise;
+       int numBases;
+       int alignmentLength;
+       bool isAligned;
+       int longHomoPolymer;
+       int ambigBases;
+       int startPos, endPos;
 };
 
 /**************************************************************************************************/