root/branches/stable_5.0/DIST/di_matr.hxx

Revision 5420, 3.5 KB (checked in by westram, 4 years ago)

- define distance awars globally
- cosmetics & cleanup
- changed parameters of DI_MATRIX::load to load species list

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1
2#define AWAR_DIST_PREFIX           "dist/"
3#define AWAR_DIST_CORR_TRANS       AWAR_DIST_PREFIX "correction/trans"
4#define AWAR_DIST_SAVE_MATRIX_BASE "tmp/" AWAR_DIST_PREFIX "save_matrix"
5
6#define AWAR_DIST_DIST_PREFIX AWAR_DIST_PREFIX "dist/"
7#define AWAR_DIST_MIN_DIST    AWAR_DIST_DIST_PREFIX "lower"
8#define AWAR_DIST_MAX_DIST    AWAR_DIST_DIST_PREFIX "upper"
9
10
11typedef enum {
12    DI_TRANSFORMATION_NONE,
13    DI_TRANSFORMATION_SIMILARITY,
14    DI_TRANSFORMATION_JUKES_CANTOR,
15    DI_TRANSFORMATION_FELSENSTEIN,
16
17    DI_TRANSFORMATION_PAM,
18    DI_TRANSFORMATION_CATEGORIES_HALL,
19    DI_TRANSFORMATION_CATEGORIES_BARKER,
20    DI_TRANSFORMATION_CATEGORIES_CHEMICAL,
21
22    DI_TRANSFORMATION_HAESCH,
23    DI_TRANSFORMATION_KIMURA,
24    DI_TRANSFORMATION_OLSEN,
25    DI_TRANSFORMATION_FELSENSTEIN_VOIGT,
26    DI_TRANSFORMATION_OLSEN_VOIGT,
27    DI_TRANSFORMATION_ML
28} DI_TRANSFORMATION;
29
30enum DI_MATRIX_TYPE {
31    DI_MATRIX_FULL,
32    DI_MATRIX_COMPRESSED };
33
34class DI_MATRIX;
35class AW_root;
36
37class DI_ENTRY {
38public:
39    DI_ENTRY(GBDATA *gbd,class DI_MATRIX *phmatri);
40    DI_ENTRY(char *namei,class DI_MATRIX *phmatri);
41    ~DI_ENTRY();
42
43    DI_MATRIX                  *phmatrix;
44    AP_sequence                *sequence;
45    AP_sequence_parsimony      *sequence_parsimony; // if exist ok
46    AP_sequence_simple_protein *sequence_protein;
47    long                        seq_len;
48    char                       *name;
49    char                       *full_name;
50    AP_FLOAT                    gc_bias;
51    int                         group_nr;           // species belongs to group number xxxx
52};
53
54typedef long DI_MUT_MATR[AP_MAX][AP_MAX];
55
56enum DI_SAVE_TYPE {
57    DI_SAVE_PHYLIP_COMP,
58    DI_SAVE_READABLE,
59    DI_SAVE_TABBED
60};
61
62class BI_helix;
63
64enum LoadWhat { DI_LOAD_ALL, DI_LOAD_MARKED, DI_LOAD_LIST };
65
66class DI_MATRIX {
67private:
68    friend class DI_ENTRY;
69
70    GBDATA       *gb_main;
71    GBDATA       *gb_species_data;
72    char         *use;
73    long          seq_len;
74    char          cancel_columns[256];
75    AP_tree_root *tree_root;
76    AW_root      *aw_root;             // only link
77    long          entries_mem_size;
78
79public:
80    GB_BOOL            is_AA;
81    DI_ENTRY         **entries;
82    long               nentries;
83    static DI_MATRIX  *ROOT;
84    AP_smatrix        *matrix;
85    DI_MATRIX_TYPE     matrix_type;
86
87    DI_MATRIX(GBDATA *gb_main,AW_root *awr);
88    ~DI_MATRIX(void);
89
90    char *load(char *use, AP_filter *filter, AP_weights *weights, LoadWhat what, GB_CSTR sort_tree_name, bool show_warnings, GBDATA **species_list);
91    char *unload(void);
92    const char *save(char *filename,enum DI_SAVE_TYPE type);
93
94    void    clear(DI_MUT_MATR &hits);
95    void    make_sym(DI_MUT_MATR &hits);
96    void    rate_write(DI_MUT_MATR &hits,FILE *out);
97    long    *create_helix_filter(BI_helix *helix,AP_filter *filter);
98    // 0 non helix 1 helix; compressed filter
99    GB_ERROR calculate_rates(DI_MUT_MATR &hrates,DI_MUT_MATR &nrates,DI_MUT_MATR &pairs,long *filter);
100    GB_ERROR haeschoe(const char *path);
101    double  corr(double dist, double b, double & sigma);
102    GB_ERROR calculate(AW_root *awr, char *cancel, double alpha, DI_TRANSFORMATION transformation);
103    char *calculate_overall_freqs(double rel_frequencies[AP_MAX],char *cancel_columns);
104    GB_ERROR calculate_pro(DI_TRANSFORMATION transformation);
105    char *analyse(AW_root *aw_root);
106
107    int search_group(GBT_TREE *node,GB_HASH *hash, long *groupcnt,char *groupname, DI_ENTRY **groups);       // @@ OLIVER
108    char *compress(GBT_TREE *tree);
109};
110
111
112AW_window *DI_create_save_matrix_window(AW_root *aw_root, char *base_name);
Note: See TracBrowser for help on using the browser.