1 | |
---|
2 | |
---|
3 | typedef enum { |
---|
4 | PH_TRANSFORMATION_NONE, |
---|
5 | PH_TRANSFORMATION_SIMILARITY, |
---|
6 | PH_TRANSFORMATION_JUKES_CANTOR, |
---|
7 | PH_TRANSFORMATION_FELSENSTEIN, |
---|
8 | |
---|
9 | PH_TRANSFORMATION_PAM, |
---|
10 | PH_TRANSFORMATION_CATEGORIES_HALL, |
---|
11 | PH_TRANSFORMATION_CATEGORIES_BARKER, |
---|
12 | PH_TRANSFORMATION_CATEGORIES_CHEMICAL, |
---|
13 | |
---|
14 | PH_TRANSFORMATION_HAESCH, |
---|
15 | PH_TRANSFORMATION_KIMURA, |
---|
16 | PH_TRANSFORMATION_OLSEN, |
---|
17 | PH_TRANSFORMATION_FELSENSTEIN_VOIGT, |
---|
18 | PH_TRANSFORMATION_OLSEN_VOIGT, |
---|
19 | PH_TRANSFORMATION_ML |
---|
20 | } PH_TRANSFORMATION; |
---|
21 | |
---|
22 | //extern const char *enum_trans_to_string[]; |
---|
23 | |
---|
24 | enum PH_MATRIX_TYPE { |
---|
25 | PH_MATRIX_FULL, |
---|
26 | PH_MATRIX_COMPRESSED }; |
---|
27 | |
---|
28 | class PHMATRIX; |
---|
29 | class AW_root; |
---|
30 | |
---|
31 | class ph_dummy { |
---|
32 | PHMATRIX *dummy; |
---|
33 | }; |
---|
34 | |
---|
35 | class PHENTRY { |
---|
36 | public: |
---|
37 | PHENTRY(GBDATA *gbd,class PHMATRIX *phmatri); |
---|
38 | PHENTRY(char *namei,class PHMATRIX *phmatri); |
---|
39 | ~PHENTRY(void); |
---|
40 | PHMATRIX *phmatrix; |
---|
41 | AP_sequence *sequence; |
---|
42 | AP_sequence_parsimony *sequence_parsimony; // if exist ok |
---|
43 | AP_sequence_simple_protein *sequence_protein; |
---|
44 | long seq_len; |
---|
45 | char *name; |
---|
46 | char *full_name; |
---|
47 | AP_FLOAT gc_bias; |
---|
48 | int group_nr; // @@ OLIVER species belongs |
---|
49 | // to group number xxxx |
---|
50 | }; |
---|
51 | |
---|
52 | typedef long PH_MUT_MATR[AP_MAX][AP_MAX]; |
---|
53 | |
---|
54 | enum PH_SAVE_TYPE { |
---|
55 | PH_SAVE_PHYLIP_COMP, |
---|
56 | PH_SAVE_READABLE |
---|
57 | }; |
---|
58 | |
---|
59 | class PHMATRIX { |
---|
60 | private: |
---|
61 | friend class PHENTRY; |
---|
62 | GBDATA *gb_main; |
---|
63 | GBDATA *gb_species_data; |
---|
64 | char *use; |
---|
65 | long seq_len; |
---|
66 | char cancel_columns[256]; |
---|
67 | AP_tree_root *tree_root; |
---|
68 | |
---|
69 | AW_root *aw_root; // only link |
---|
70 | |
---|
71 | long entries_mem_size; |
---|
72 | |
---|
73 | public: |
---|
74 | GB_BOOL is_AA; |
---|
75 | PHENTRY **entries; |
---|
76 | long nentries; |
---|
77 | static PHMATRIX *ROOT; |
---|
78 | AP_smatrix *matrix; |
---|
79 | enum PH_MATRIX_TYPE matrix_type; |
---|
80 | |
---|
81 | PHMATRIX(GBDATA *gb_main,AW_root *awr); |
---|
82 | ~PHMATRIX(void); |
---|
83 | |
---|
84 | char *load(char *use,AP_filter *filter,AP_weights *weights,AP_smatrix *ratematrix, int all, GB_CSTR sort_tree_name); |
---|
85 | char *unload(void); |
---|
86 | const char *save(char *filename,enum PH_SAVE_TYPE type); |
---|
87 | |
---|
88 | void clear(PH_MUT_MATR &hits); |
---|
89 | void make_sym(PH_MUT_MATR &hits); |
---|
90 | void rate_write(PH_MUT_MATR &hits,FILE *out); |
---|
91 | long *create_helix_filter(BI_helix *helix,AP_filter *filter); |
---|
92 | // 0 non helix 1 helix; compressed filter |
---|
93 | GB_ERROR calculate_rates(PH_MUT_MATR &hrates,PH_MUT_MATR &nrates,PH_MUT_MATR &pairs,long *filter); |
---|
94 | GB_ERROR haeschoe(const char *path); |
---|
95 | double corr(double dist, double b, double & sigma); |
---|
96 | GB_ERROR calculate(AW_root *awr, char *cancel, double alpha, PH_TRANSFORMATION transformation); |
---|
97 | char *calculate_overall_freqs(double rel_frequencies[AP_MAX],char *cancel_columns); |
---|
98 | GB_ERROR calculate_pro(PH_TRANSFORMATION transformation); |
---|
99 | char *analyse(AW_root *aw_root); |
---|
100 | |
---|
101 | int search_group(GBT_TREE *node,GB_HASH *hash, long *groupcnt,char *groupname, PHENTRY **groups); // @@ OLIVER |
---|
102 | char *compress(GBT_TREE *tree); |
---|
103 | }; |
---|
104 | |
---|
105 | |
---|
106 | AW_window *create_save_matrix_window(AW_root *aw_root, char *base_name); |
---|