source: tags/initial/DIST/ph_matr.hxx

Last change on this file was 2, checked in by oldcode, 24 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.8 KB
Line 
1
2
3typedef 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
24enum PH_MATRIX_TYPE {
25        PH_MATRIX_FULL,
26        PH_MATRIX_COMPRESSED };
27
28class PHMATRIX;
29class AW_root;
30
31class ph_dummy {
32        PHMATRIX *dummy;
33        };
34
35class 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
52typedef long PH_MUT_MATR[AP_MAX][AP_MAX];
53
54enum PH_SAVE_TYPE {
55        PH_SAVE_PHYLIP_COMP,
56        PH_SAVE_READABLE
57};
58
59class PHMATRIX {
60private:
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
73public: 
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
106AW_window *create_save_matrix_window(AW_root *aw_root, char *base_name);
Note: See TracBrowser for help on using the repository browser.