X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=readtree.h;h=8a692432c7cda431c6f5d73f409a0fa8e9152671;hp=41d03058d6478cb371737dbc385c8bb5d0a1c999;hb=cf9987b67aa49777a4c91c2d21f96e58bf17aa82;hpb=4761e165b4a196fefa57755d3176d9ced19df6b1 diff --git a/readtree.h b/readtree.h index 41d0305..8a69243 100644 --- a/readtree.h +++ b/readtree.h @@ -9,22 +9,60 @@ * */ -using namespace std; +#include "mothur.h" +#include "tree.h" +#include "counttable.h" -#include -#include +#define MAX_LINE 513 +#define SKIPLINE(f,c) {while((c=f.get())!=EOF && ((c) != '\n')){}} +class Tree; + +/****************************************************************************/ class ReadTree { public: - ReadTree(); - ~ReadTree(); + ReadTree(); + virtual ~ReadTree() {}; + virtual int read(CountTable*) = 0; + int readSpecialChar(istream&, char, string); + int readNodeChar(istream& f); + float readBranchLength(istream& f); - private: - + vector getTrees() { return Trees; } + int AssembleTrees(); + + protected: + vector Trees; + CountTable* ct; + int numNodes, numLeaves; + MothurOut* m; + + +}; + +/****************************************************************************/ +class ReadNewickTree : public ReadTree { + +public: + ReadNewickTree(string file) : treeFile(file) { m->openInputFile(file, filehandle); readOk = 0; } + ~ReadNewickTree() {}; + int read(CountTable*); + +private: + Tree* T; + int readNewickInt(istream&, int&, Tree*, CountTable*); + int readTreeString(CountTable*); + string nexusTranslation(CountTable*); + ifstream filehandle; + string treeFile; + string holder; + int readOk; // readOk = 0 means success, readOk = 1 means errors. + }; +/****************************************************************************/ -#endif \ No newline at end of file +#endif