8 * Created by Pat Schloss on 12/15/08.
9 * Copyright 2008 Patrick D. Schloss. All rights reserved.
11 * A sequence object has three components: i) an accession number / name, ii) the unaligned primary sequence, iii) a
12 * pairwise aligned sequence, and iv) a sequence that is aligned to a reference alignment. This class has methods
13 * to set and get these values for the other classes where they are needed. *
18 //Data Structure for a fasta file.
21 #include "mothurout.h"
23 /**************************************************************************************************/
28 Sequence(string, string);
30 Sequence(istringstream&);
31 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),
32 alignmentLength(se.alignmentLength), isAligned(se.isAligned), longHomoPolymer(se.longHomoPolymer), ambigBases(se.ambigBases) { m = MothurOut::getInstance(); }
34 //these constructors just set the unaligned string to save space
35 Sequence(string, string, string);
36 Sequence(ifstream&, string);
37 Sequence(istringstream&, string);
40 void setUnaligned(string);
41 void setPairwise(string);
42 void setAligned(string);
44 void reverseComplement();
47 string convert2ints();
51 string getUnaligned();
52 string getInlineSeq();
60 void removeAmbigBases();
61 int getLongHomoPolymer();
63 void printSequence(ostream&);
68 string getSequenceString(ifstream&, int&);
69 string getCommentString(ifstream&);
70 string getSequenceString(istringstream&, int&);
71 string getCommentString(istringstream&);
84 /**************************************************************************************************/