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
|
/*
* 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 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(string treeset_file, Params ¶ms, IQTree *tree, vector<TreeInfo> &info, IntVector &distinct_ids);
void evaluateTrees(string treeset_file, Params ¶ms, IQTree *tree);
#endif // TREETESTING_H_
|