source: tags/arb_5.1/MULTI_PROBE/MP_main.cxx

Last change on this file was 6156, checked in by westram, 15 years ago
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.1 KB
Line 
1#include <aw_root.hxx>
2#include <aw_window.hxx>
3#include <math.h>
4
5#include "MultiProbe.hxx"
6#include "mp_proto.hxx"
7
8awar_vars  mp_gl_awars;
9MP_Main   *mp_main             = NULL;
10char       MP_probe_tab[256];   //zum checken, ob ein eingegebener Sondenstring ok ist
11int        remembered_mismatches;
12int        anz_elem_marked     = 0;
13int        anz_elem_unmarked   = 0;
14int        outside_mismatches  = 0;
15BOOL       pt_server_different = FALSE;
16
17double MAXMARKEDFACTOR = 1.0;
18double MINUNMARKEDFACTOR = 1.0;
19double SUMMARKEDFACTOR = 1.0;
20double SUMUNMARKEDFACTOR = 1.0;
21
22
23MP_Main::MP_Main(AW_root *awr,AWT_canvas *ntwt)
24{
25    aw_root = awr;
26    ntw     = ntwt;
27    stc     = NULL;
28    create_awars();
29    mp_window   = new MP_Window(aw_root);
30    p_eval  = NULL;
31}
32
33MP_Main::~MP_Main()
34{
35    aw_root->awar_int(MP_AWAR_QUALITY)->remove_callback(MP_gen_quality,(AW_CL)0,(AW_CL)0);
36    aw_root->awar_int(MP_AWAR_SINGLEMISMATCHES)->remove_callback(MP_gen_singleprobe,(AW_CL)0,(AW_CL)0);
37    aw_root->awar_int(MP_AWAR_MISMATCHES)->remove_callback(MP_modify_selected,(AW_CL)0,(AW_CL)0);
38
39    delete p_eval;
40    delete stc;
41    delete mp_window;
42
43    delete glob_old_seq;
44    glob_old_seq = NULL;
45    new_pt_server = TRUE;
46}
47
48void MP_Main::destroy_probe_eval()
49{
50    delete p_eval;
51    p_eval = NULL;
52}
53
54ProbeValuation *MP_Main::new_probe_eval(char **field, int size, int *array, int *single_mismatch)
55{
56    p_eval = new ProbeValuation(field, size, array, single_mismatch);
57    p_eval->set_act_gen(new Generation(p_eval->get_max_init_for_gen(), 1)); //erste Generation = Ausgangspopulation
58    return p_eval;
59}
60
61void MP_Main::create_awars()
62{
63    aw_root->awar_string(MP_AWAR_SEQUENZEINGABE)->add_target_var(& mp_gl_awars.manual_sequence);
64    aw_root->awar_string(MP_AWAR_SELECTEDPROBES)->add_target_var(& mp_gl_awars.selected_probes);
65    aw_root->awar_string(MP_AWAR_PROBELIST)->add_target_var(& mp_gl_awars.probelist);
66    aw_root->awar_int(MP_AWAR_WEIGHTEDMISMATCHES)->add_target_var(& mp_gl_awars.weightedmismatches)->write_int(2);
67    aw_root->awar_int(MP_AWAR_COMPLEMENT,1)->add_target_var(& mp_gl_awars.complement);
68    aw_root->awar_int(MP_AWAR_MISMATCHES)->add_target_var(& mp_gl_awars.no_of_mismatches)->add_callback(MP_modify_selected,(AW_CL)0,(AW_CL)0);
69    remembered_mismatches = 0;      //derselbe initiale Wert wie mp_gl_awars.no_of_mismatches
70    aw_root->awar_int(MP_AWAR_PTSERVER)->add_target_var( & mp_gl_awars.ptserver);
71    aw_root->awar_string(MP_AWAR_RESULTPROBES)->add_target_var( & mp_gl_awars.result_probes );
72    aw_root->awar_string(MP_AWAR_RESULTPROBESCOMMENT)->add_target_var( & mp_gl_awars.result_probes_comment );
73    aw_root->awar_int(MP_AWAR_NOOFPROBES)->add_target_var( & mp_gl_awars.no_of_probes )->write_int(3);
74    aw_root->awar_int(MP_AWAR_QUALITY)->add_target_var( & mp_gl_awars.probe_quality )->add_callback(MP_gen_quality,(AW_CL)0,(AW_CL)0)->write_int(QUALITYDEFAULT);
75    aw_root->awar_int(MP_AWAR_SINGLEMISMATCHES)->add_target_var( & mp_gl_awars.singlemismatches )->add_callback(MP_gen_singleprobe,(AW_CL)0,(AW_CL)0);
76    aw_root->awar_float(MP_AWAR_OUTSIDEMISMATCHES)->add_target_var( & mp_gl_awars.outside_mismatches_difference )->write_float(1.0);
77    aw_root->awar_int(MP_AWAR_QUALITYBORDER1)->add_target_var( & mp_gl_awars.qualityborder_best )->write_int(5);
78
79    aw_root->awar_int(MP_AWAR_EMPHASIS)->add_target_var( & mp_gl_awars.emphasis )->write_int(0);
80    aw_root->awar_float(MP_AWAR_GREYZONE)->add_target_var( & mp_gl_awars.greyzone )->write_float(0.0);
81    aw_root->awar_int(MP_AWAR_ECOLIPOS)->add_target_var( & mp_gl_awars.ecolipos )->write_int(0);
82
83    aw_root->awar_int(MP_AWAR_AUTOADVANCE,1);
84}
85
86
87void create_tables()
88{
89    int i;
90
91    //probe_tab
92    for (i=0; i<256; i++)
93        MP_probe_tab[i] = FALSE;
94
95    const unsigned char *true_chars = (const unsigned char *)"atgucnATGUCN";
96    for (i = 0; true_chars[i]; ++i) {
97        MP_probe_tab[true_chars[i]] = TRUE;
98    }
99}
100
101AW_window *MP_main(AW_root *root, AW_default def) {
102    if (!mp_main) {
103        create_tables();
104        mp_main = new MP_Main(root, (AWT_canvas *)def);
105    }
106
107    AW_window *aw = mp_main->get_mp_window()->get_window();
108    aw->show();
109   
110    return aw;
111}
112
113
114
Note: See TracBrowser for help on using the repository browser.