Next version of JABA
[jabaws.git] / binaries / src / clustalw / src / tree / ClusterTreeOutput.h
1 /**
2  * Author: Mark Larkin
3  * 
4  * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.  
5  */
6 #ifndef CLUSTERTREEOUTPUT_H
7 #define CLUSTERTREEOUTPUT_H
8
9 #include <memory>
10 #include <fstream>
11 #include "../alignment/Alignment.h"
12 #include "../general/clustalw.h"
13
14 namespace clustalw
15 {
16
17 class ClusterTreeOutput
18 {
19     public:
20         ClusterTreeOutput(clustalw::SeqInfo* seqInfo, int boot);
21         void printNexusTree(clustalw::PhyloTree* phyloTree, ofstream* tree,
22                    clustalw::Alignment *alignPtr, clustalw::DistMatrix* distMat, vector<int>* bootTotals);
23         void printTree(clustalw::PhyloTree* phyloTree, ofstream* tree, vector<int>* totals);
24         void printPhylipTree(clustalw::PhyloTree* phyloTree, ofstream* tree,
25                    clustalw::Alignment *alignPtr, clustalw::DistMatrix* distMat, vector<int>* bootTotals);
26         void printTreeDesc(clustalw::PhyloTree* phyloTree);
27           
28     private:
29         ClusterTreeOutput(); // Dont allow contruction with default!!!!
30         int twoWaySplit(clustalw::PhyloTree* phyloTree, ofstream* tree, int startRow, 
31                     int flag, clustalw::Alignment *alignPtr, vector<int>* bootTotals);
32         int twoWaySplitNexus(clustalw::PhyloTree* phyloTree, ofstream* tree, int startRow,
33                     int flag, clustalw::Alignment *alignPtr, vector<int>* bootTotals);
34         /* Attributes! */
35         int firstSeq;
36         int lastSeq;
37         int numSeqs;
38         int bootstrap;
39 };
40
41 }
42
43 #endif