24 #define af_assert(cond) arb_assert(cond)
49 size_t *filterpos_2_seqpos;
51 #if defined(ASSERTION_USED)
52 mutable bool checked_for_validity;
55 void calc_filterpos_2_seqpos();
58 void init(
size_t size);
59 void make_permeable(
size_t size);
60 void init_from_string(
const char *ifilter,
const char *zerobases,
size_t size);
62 size_t bootstrapped_filterpos(
size_t bpos)
const {
65 size_t fpos = bootstrap[bpos];
72 AP_filter(
const char *filter,
const char *zerobases,
size_t size);
88 return filter_mask[pos];
92 if (!filterpos_2_seqpos) {
94 const_cast<AP_filter*
>(
this)->calc_filterpos_2_seqpos();
96 return filterpos_2_seqpos;
112 size_t fpos = bootstrapped_filterpos(bpos);
120 char *
blowup_string(
const char *filtered_string,
char insert)
const;
129 #if defined(ASSERTION_USED)
130 checked_for_validity =
true;
136 if (
get_length())
return "Sequence completely filtered out (no columns left)";
137 return "No alignment selected";
139 #if defined(ASSERTION_USED)
174 #error AP_filter.hxx included twice
175 #endif // AP_FILTER_HXX
const size_t * get_filterpos_2_seqpos() const
char * blowup_string(const char *filtered_string, char insert) const
long get_timestamp() const
const GB_UINT4 * get_weights() const
const uchar * get_simplify_table() const
bool is_unweighted() const
size_t bootstrapped_seqpos(size_t bpos) const
DECLARE_ASSIGNMENT_OPERATOR(AP_filter)
AP_weights(const AP_filter *fil)
DECLARE_ASSIGNMENT_OPERATOR(AP_weights)
bool does_bootstrap() const
char * filter_string(const char *fulllen_string) const
static int weights[MAX_BASETYPES][MAX_BASETYPES]
size_t get_length() const
size_t get_filtered_length() const
void enable_simplify(AWT_FILTER_SIMPLIFY type)
GB_ERROR is_invalid() const
bool use_position(size_t pos) const
GB_UINT4 weight(size_t idx) const
bool was_checked_for_validity() const