-
-
Notifications
You must be signed in to change notification settings - Fork 59
/
Copy pathtreetesting.h
118 lines (99 loc) · 3.8 KB
/
treetesting.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*
* treetesting.h
*
* Created on: Sep 21, 2019
* Author: minh
*/
#ifndef TREETESTING_H_
#define TREETESTING_H_
#include "utils/tools.h"
#include "alignment/alignment.h"
class PhyloTree;
class IQTree;
struct TreeInfo {
double logl; // log likelihood
double se; // standard error of deltaL (logl difference to max), or square root of variance
double rell_bp; // bootstrap proportion by RELL method
bool rell_confident; // confidence set for RELL-BP
double sh_pvalue; // p-value by Shimodaira-Hasegawa test
double wsh_pvalue; // p-value by weighted Shimodaira-Hasegawa test
double kh_pvalue; // p-value by Kishino-Hasegawa test
double wkh_pvalue; // p-value by weighted Kishino-Hasegawa test
double elw_value; // ELW - expected likelihood weights test
bool elw_confident; // to represent confidence set of ELW test
double au_pvalue; // p-value by approximately unbiased (AU) test
};
/**
* print site log likelihoods to a fileExists
* @param filename output file name
* @param tree phylogenetic tree
* @param ptn_lh pattern log-likelihoods, will be computed if NULL
* @param append TRUE to append to existing file, FALSE otherwise
* @param linename name of the line, default "Site_Lh" if NULL
*/
void printSiteLh(const char*filename, PhyloTree *tree, double *ptn_lh = NULL,
bool append = false, const char *linename = NULL);
/**
* print HMM results to a fileExists
* @param filename output file name
* @param tree IQTreeMixHmm
*/
void printHMMResult(const char*filename, PhyloTree *tree, int cat_assign_method = 0);
/**
* print marginal probabilities to a fileExists
* @param filename output file name
* @param tree IQTreeMixHmm
*/
void printMarginalProb(const char* filename, PhyloTree *tree);
/**
* print partition log likelihoods to a file
* @param filename output file name
* @param tree phylogenetic tree
* @param ptn_lh pattern log-likelihoods, will be computed if NULL
* @param append TRUE to append to existing file, FALSE otherwise
* @param linename name of the line, default "Site_Lh" if NULL
*/
void printPartitionLh(const char*filename, PhyloTree *tree, double *ptn_lh = NULL,
bool append = false, const char *linename = NULL);
/**
* print site log likelihoods per category to a file
* @param filename output file name
* @param tree phylogenetic tree
*/
void printSiteLhCategory(const char*filename, PhyloTree *tree, SiteLoglType wsl);
/**
* print site posterior probabilities per rate/mixture category to a file
* @param filename output file name
* @param tree phylogenetic tree
*/
void printSiteProbCategory(const char*filename, PhyloTree *tree, SiteLoglType wsl);
/**
* print site state frequency vectors (for Huaichun)
* @param filename output file name
* @param tree phylogenetic tree
*/
void printSiteStateFreq(const char*filename, PhyloTree *tree, double *state_freqs = NULL);
/**
* print site state frequency vectors (for Huaichun)
* @param filename output file name
* @param aln alignment
*/
void printSiteStateFreq(const char* filename, Alignment *aln);
/**
print ancestral sequences
@param filename output file name
@param tree phylogenetic tree
@param ast either AST_MARGINAL or AST_JOINT
*/
void printAncestralSequences(const char*filename, PhyloTree *tree, AncestralSeqType ast);
/**
* Evaluate user-trees with possibility of tree topology tests
* @param params program parameters
* @param tree current tree
* @param info (OUT) output information
* @param distinct_ids IDs of distinct trees
*/
void evaluateTrees(istream &in, Params ¶ms, IQTree *tree, vector<TreeInfo> &info, IntVector &distinct_ids);
void evaluateTrees(string treeset_file, Params ¶ms, IQTree *tree, vector<TreeInfo> &info, IntVector &distinct_ids);
void printTreeTestResults(vector<TreeInfo> &info, IntVector &distinct_ids, IntVector &branch_ids, string out_file);
#endif // TREETESTING_H_