ARB
Macros | Typedefs | Functions | Variables
NT_split_ali.cxx File Reference
#include "NT_local_proto.h"
#include <arbdbt.h>
#include <arb_progress.h>
#include <arb_defs.h>
#include <arb_strbuf.h>
#include <pos_range.h>
#include <aw_root.hxx>
#include <aw_window.hxx>
#include <limits>
#include <vector>
#include <insdel.h>
#include "NT_local.h"
#include <arb_strarray.h>
#include <aw_awar.hxx>
#include <aw_awar_defs.hxx>
#include <aw_msg.hxx>
Include dependency graph for NT_split_ali.cxx:

Go to the source code of this file.

Macros

#define AWAR_SPLIT_ALI_BASE   "split_ali/"
 
#define AWAR_SPLIT_ALI_BTMP   "tmp/" AWAR_SPLIT_ALI_BASE
 
#define AWAR_SPLIT_ALI_TARGET   AWAR_SPLIT_ALI_BTMP "target"
 
#define AWAR_SPLIT_ALI_POSITIONS   AWAR_SPLIT_ALI_BASE "pos"
 
#define AWAR_SPLIT_ALI_MARKED   AWAR_SPLIT_ALI_BASE "marked"
 
#define AWAR_SPLIT_ALI_OVERWRITE   AWAR_SPLIT_ALI_BASE "overwrite"
 

Typedefs

typedef vector< ExplicitRangeRangeVec
 

Functions

static GB_ERROR calculate_and_check_ranges (int ali_source_len, const int *splitBefore, RangeVec &ranges)
 
CONSTEXPR_INLINE int digits (int parts)
 
const chartarget_ali_name (const char *ali_target_prefix, int p, int digits)
 
charbuild_split_id (const RangeVec &ranges)
 
static GB_ERROR split_data_into_parts (GBDATA *gb_data, const RangeVec &ranges, const char *ali_target_prefix)
 
static GB_ERROR copy_field_into_partial_alignments (GBDATA *gb_data, const int parts, const char *ali_target_prefix)
 
static GB_ERROR split_alignment (GBDATA *gb_main, const char *ali_source, const char *ali_target_prefix, const int *splitBefore, bool markedOnly, bool overwriteAlignments)
 
static void create_splitAlignment_awars (AW_root *root, AW_default properties, GBDATA *gb_main)
 
static void split_ali_cb (AW_window *aww)
 
static void use_editor_range_cb (AW_window *aww)
 
AW_windowNT_create_splitAlignment_window (AW_root *awr)
 

Variables

static const int END__ = numeric_limits<int>::max()
 

Macro Definition Documentation

#define AWAR_SPLIT_ALI_BASE   "split_ali/"

Definition at line 456 of file NT_split_ali.cxx.

#define AWAR_SPLIT_ALI_BTMP   "tmp/" AWAR_SPLIT_ALI_BASE

Definition at line 457 of file NT_split_ali.cxx.

#define AWAR_SPLIT_ALI_TARGET   AWAR_SPLIT_ALI_BTMP "target"
#define AWAR_SPLIT_ALI_POSITIONS   AWAR_SPLIT_ALI_BASE "pos"
#define AWAR_SPLIT_ALI_MARKED   AWAR_SPLIT_ALI_BASE "marked"
#define AWAR_SPLIT_ALI_OVERWRITE   AWAR_SPLIT_ALI_BASE "overwrite"

Typedef Documentation

typedef vector<ExplicitRange> RangeVec

Definition at line 28 of file NT_split_ali.cxx.

Function Documentation

static GB_ERROR calculate_and_check_ranges ( int  ali_source_len,
const int splitBefore,
RangeVec ranges 
)
static
CONSTEXPR_INLINE int digits ( int  parts)
const char* target_ali_name ( const char ali_target_prefix,
int  p,
int  digits 
)
inline
char* build_split_id ( const RangeVec ranges)
inline
static GB_ERROR split_data_into_parts ( GBDATA gb_data,
const RangeVec ranges,
const char ali_target_prefix 
)
static
static GB_ERROR copy_field_into_partial_alignments ( GBDATA gb_data,
const int  parts,
const char ali_target_prefix 
)
static
static GB_ERROR split_alignment ( GBDATA gb_main,
const char ali_source,
const char ali_target_prefix,
const int splitBefore,
bool  markedOnly,
bool  overwriteAlignments 
)
static

splits one alignment into multiple alignments.

Parameters
ali_sourcename of source alignment
ali_target_prefixprefix of target alignment. will be extended by '_1', '_2', ...
splitBeforelist of positions [0..N-1] where 2nd, 3rd, ... part shall begin. Terminate with 'END__'.
markedOnlytrue->operate only on marked species, false->operate on all species
overwriteAlignmentstrue->delete+recreate existing alignments, false->bail-out with error
Returns
error if sth went wrong.

Definition at line 133 of file NT_split_ali.cxx.

References ARB_is_alignment_relative_data(), arb_progress::auto_subtitles(), build_split_id(), calculate_and_check_ranges(), GB_transaction::close(), copy_field_into_partial_alignments(), digits(), PosRange::end(), error(), GB_await_error(), GB_child(), GB_clear_error(), GB_entry(), GB_nextChild(), GBS_global_string(), GBS_global_string_copy(), GBT_add_alignment_changekeys(), GBT_create_alignment(), GBT_delete_alignment(), GBT_find_sequence(), GBT_first_marked_species(), GBT_first_SAI(), GBT_first_species(), GBT_get_alignment(), GBT_get_alignment_len(), GBT_next_marked_species(), GBT_next_SAI(), GBT_next_species(), arb_progress::inc_and_check_user_abort(), info2bio(), NULp, plural(), split_data_into_parts(), PosRange::start(), ta, target_ali_name(), and UNCOVERED.

Referenced by split_ali_cb().

static void create_splitAlignment_awars ( AW_root root,
AW_default  properties,
GBDATA gb_main 
)
static
static void split_ali_cb ( AW_window aww)
static
static void use_editor_range_cb ( AW_window aww)
static
AW_window* NT_create_splitAlignment_window ( AW_root awr)

Variable Documentation

const int END__ = numeric_limits<int>::max()
static

Definition at line 30 of file NT_split_ali.cxx.

Referenced by split_ali_cb().