source: branches/profile/SL/FAST_ALIGNER/fast_aligner.hxx

Last change on this file was 8614, checked in by westram, 13 years ago

merge from e4fix [8168] [8169] [8170] [8171] [8178] [8180] [8181] [8182] [8183] [8184] [8185] [8187] [8188] [8189]

  • merge similar concepts UpdateRange and TargetRange into PosRange
    • moved to CORE
    • added ExplicitRange
    • added PosRange::contains()
    • able to intersect
    • use in
      • AlignParams
      • readCompactedSequence()
      • UnalignedBases + UnalignedBasesList → LooseBases
      • to handle selection (aka "block") in edit4
      • for update interval (draw functions)
      • build_probe_match_string
  • added AliChange
    • holds sequence before and after alignment
  • DRYed code of calc_intervall_displayed_in_rectangle vs calc_update_intervall
  • cache sequence length in ED4_orf_terminal
  • added test for UnalignedBasesList (documenting wrong behavior)
  • renamed all *.stamp to stamp.*
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.6 KB
Line 
1// =========================================================== //
2//                                                             //
3//   File      : fast_aligner.hxx                              //
4//   Purpose   :                                               //
5//                                                             //
6//   Coded by Ralf Westram (coder@reallysoft.de) in 1998       //
7//   Institute of Microbiology (Technical University Munich)   //
8//   http://www.arb-home.de/                                   //
9//                                                             //
10// =========================================================== //
11
12#ifndef FAST_ALIGNER_HXX
13#define FAST_ALIGNER_HXX
14
15#ifndef AW_BASE_HXX
16#include <aw_base.hxx>
17#endif
18#ifndef ARB_ERROR_H
19#include <arb_error.h>
20#endif
21#ifndef POS_RANGE_H
22#include <pos_range.h>
23#endif
24
25#define INTEGRATED_ALIGNERS_TITLE "Integrated Aligners"
26
27typedef char*   (*Aligner_get_consensus_func)(const char *species_name, PosRange range);
28typedef bool    (*Aligner_get_selected_range)(PosRange& range);
29typedef GBDATA* (*Aligner_get_first_selected_species)(int *total_no_of_selected_species);
30typedef GBDATA* (*Aligner_get_next_selected_species)(void);
31
32struct AlignDataAccess {
33    int do_refresh;                                 // if do_refresh == TRUE then FastAligner_start() does a refresh
34    void (*refresh_display)();                      // via calling refresh_display()
35
36    Aligner_get_consensus_func         get_group_consensus; // changed behavior in [8165]: returns only given range
37    Aligner_get_selected_range         get_selected_range;
38    Aligner_get_first_selected_species get_first_selected_species;
39    Aligner_get_next_selected_species  get_next_selected_species;
40
41    char   *helix_string;                           // currently only used for island hopping
42    GBDATA *gb_main;                                // used by faligner
43};
44
45// --------------------------------------------------------------------------------
46
47AW_window *FastAligner_create_window(AW_root *awr, const AlignDataAccess *data_access);
48
49void FastAligner_create_variables(AW_root *root, AW_default db1);
50void FastAligner_set_align_current(AW_root *root, AW_default db1);
51void FastAligner_set_reference_species(AW_window *, AW_CL cl_AW_root);
52
53void      FastAligner_start(AW_window *aw, AW_CL cl_AlignDataAccess);
54ARB_ERROR FastAligner_delete_temp_entries(GBDATA *gb_main, const char *alignment);
55
56// --------------------------------------------------------------------------------
57
58#else
59#error fast_aligner.hxx included twice
60#endif // FAST_ALIGNER_HXX
Note: See TracBrowser for help on using the repository browser.