| 1 | /* |
|---|
| 2 | |
|---|
| 3 | PHYML : a program that computes maximum likelihood phylogenies from |
|---|
| 4 | DNA or AA homologous sequences |
|---|
| 5 | |
|---|
| 6 | Copyright (C) Stephane Guindon. Oct 2003 onward |
|---|
| 7 | |
|---|
| 8 | All parts of the source except where indicated are distributed under |
|---|
| 9 | the GNU public licence. See http://www.opensource.org for details. |
|---|
| 10 | |
|---|
| 11 | */ |
|---|
| 12 | |
|---|
| 13 | #include <config.h> |
|---|
| 14 | |
|---|
| 15 | #ifndef MIXT_H |
|---|
| 16 | #define MIXT_H |
|---|
| 17 | |
|---|
| 18 | #include "utilities.h" |
|---|
| 19 | |
|---|
| 20 | void MIXT_Connect_Edges_To_Next_Prev_Child_Parent(t_tree *tree); |
|---|
| 21 | void MIXT_Connect_Nodes_To_Next_Prev_Child_Parent(t_tree *tree); |
|---|
| 22 | void MIXT_Connect_Sprs_To_Next_Prev_Child_Parent(t_tree *tree); |
|---|
| 23 | void MIXT_Turn_Branches_OnOff(int onoff,t_tree *tree); |
|---|
| 24 | phydbl *MIXT_Get_Lengths_Of_This_Edge(t_edge *mixt_b, t_tree *tree); |
|---|
| 25 | void MIXT_Set_Lengths_Of_This_Edge(phydbl *lens,t_edge *mixt_b, t_tree *tree); |
|---|
| 26 | void MIXT_Post_Order_Lk(t_node *mixt_a,t_node *mixt_d,t_tree *mixt_tree); |
|---|
| 27 | void MIXT_Pre_Order_Lk(t_node *mixt_a,t_node *mixt_d,t_tree *mixt_tree); |
|---|
| 28 | phydbl MIXT_Lk(t_edge *mixt_b,t_tree *mixt_tree); |
|---|
| 29 | void MIXT_Update_P_Lk(t_tree *mixt_tree,t_edge *mixt_b,t_node *mixt_d); |
|---|
| 30 | void MIXT_Update_PMat_At_Given_Edge(t_edge *mixt_b,t_tree *mixt_tree); |
|---|
| 31 | int *MIXT_Get_Number_Of_Classes_In_All_Mixtures(t_tree *mixt_tree); |
|---|
| 32 | t_tree **MIXT_Record_All_Mixtures(t_tree *mixt_tree); |
|---|
| 33 | void MIXT_Break_All_Mixtures(int *c_max,t_tree *mixt_tree); |
|---|
| 34 | void MIXT_Reconnect_All_Mixtures(t_tree **tree_list,t_tree *mixt_tree); |
|---|
| 35 | int *MIXT_Record_Has_Invariants(t_tree *mixt_tree); |
|---|
| 36 | void MIXT_Reset_Has_Invariants(int *has_invariants,t_tree *mixt_tree); |
|---|
| 37 | void MIXT_Check_Invar_Setup(t_tree *mixt_tree); |
|---|
| 38 | void MIXT_Prune_Subtree(t_node *mixt_a,t_node *mixt_d,t_edge **mixt_target,t_edge **mixt_residual,t_tree *mixt_tree); |
|---|
| 39 | void MIXT_Graft_Subtree(t_edge *mixt_target,t_node *mixt_link,t_edge *mixt_residual,t_tree *mixt_tree); |
|---|
| 40 | void MIXT_Br_Len_Brent(phydbl prop_min, phydbl prop_max,t_edge *mixt_b, t_tree *mixt_tree); |
|---|
| 41 | void MIXT_Check_Number_Of_Invar_Classes(t_tree *mixt_tree); |
|---|
| 42 | void MIXT_Prepare_Tree_For_Lk(t_tree *tree); |
|---|
| 43 | void MIXT_Check_Invar_Struct_In_Each_Partition_Elem(t_tree *mixt_tree); |
|---|
| 44 | void MIXT_Check_RAS_Struct_In_Each_Partition_Elem(t_tree *mixt_tree); |
|---|
| 45 | void MIXT_Br_Len_Involving_Invar(t_tree *mixt_tree); |
|---|
| 46 | void MIXT_Br_Len_Not_Involving_Invar(t_tree *mixt_tree); |
|---|
| 47 | phydbl MIXT_Unscale_Br_Len_Multiplier_Tree(t_tree *mixt_tree); |
|---|
| 48 | phydbl MIXT_Rescale_Br_Len_Multiplier_Tree(t_tree *mixt_tree); |
|---|
| 49 | void MIXT_Set_Alias_Subpatt(int onoff, t_tree *mixt_tree); |
|---|
| 50 | phydbl Lk_Core(int state, int ambiguity_check, t_edge *b, t_tree *tree); |
|---|
| 51 | void MIXT_Check_Single_Edge_Lens(t_tree *mixt_tree); |
|---|
| 52 | void MIXT_Update_Eigen(t_mod *mixt_mod); |
|---|
| 53 | int MIXT_Pars(t_edge *mixt_b, t_tree *mixt_tree); |
|---|
| 54 | void MIXT_Set_Pars_Thresh(t_tree *mixt_tree); |
|---|
| 55 | void MIXT_Bootstrap(char *best_tree, xml_node *root); |
|---|
| 56 | void MIXT_Chain_All(t_tree *mixt_tree); |
|---|
| 57 | void MIXT_Chain_String(t_string *curr, t_string *next); |
|---|
| 58 | void MIXT_Chain_Scalar_Dbl(scalar_dbl *curr, scalar_dbl *next); |
|---|
| 59 | void MIXT_Chain_Rmat(t_rmat *curr, t_rmat *next); |
|---|
| 60 | void MIXT_Chain_Rmat(t_rmat *curr, t_rmat *next); |
|---|
| 61 | void MIXT_Chain_Efrq(t_efrq *curr, t_efrq *next); |
|---|
| 62 | void MIXT_Chain_RAS(t_ras *curr, t_ras *next); |
|---|
| 63 | void MIXT_Chain_Eigen(eigen *curr, eigen *next); |
|---|
| 64 | void MIXT_Chain_Vector_Dbl(vect_dbl *curr, vect_dbl *next); |
|---|
| 65 | void MIXT_Chain_Sprs(t_tree *tree); |
|---|
| 66 | void MIXT_Chain_Nodes(t_tree *tree); |
|---|
| 67 | void MIXT_Chain_Edges(t_tree *tree); |
|---|
| 68 | void MIXT_Chain_Triplets(t_tree *tree); |
|---|
| 69 | phydbl MIXT_Get_Mean_Edge_Len(t_edge *mixt_b, t_tree *tree); |
|---|
| 70 | phydbl MIXT_Get_Sum_Chained_Scalar_Dbl(scalar_dbl *s); |
|---|
| 71 | phydbl MIXT_Get_Sum_Of_Probas_Across_Mixtures(phydbl r_mat_weight_sum, phydbl e_frq_weight_sum, t_tree *mixt_tree); |
|---|
| 72 | phydbl MIXT_Rescale_Free_Rate_Tree(t_tree *mixt_tree); |
|---|
| 73 | void MIXT_Set_Br_Len_Var(t_tree *mixt_tree); |
|---|
| 74 | |
|---|
| 75 | #endif |
|---|