diff --git a/src/AbismalAlign.hpp b/src/AbismalAlign.hpp index 2f45763..6821e97 100644 --- a/src/AbismalAlign.hpp +++ b/src/AbismalAlign.hpp @@ -51,7 +51,7 @@ struct AbismalAlign { const size_t q_sz_max; const size_t bw; - static const uint16_t max_off_diag = 2; + static const uint16_t max_off_diag = 4; }; template score_lookup = {match, mismatch}; - static const score_t min_diffs_to_align = 4; inline score_t default_score(const uint32_t len, const score_t diffs) { return match*(len - diffs) + mismatch*diffs; diff --git a/src/AbismalIndex.hpp b/src/AbismalIndex.hpp index 928be9c..5e13471 100644 --- a/src/AbismalIndex.hpp +++ b/src/AbismalIndex.hpp @@ -36,19 +36,17 @@ namespace seed { static const uint32_t key_weight = 26; // window in which we select the best k-mer - static const uint32_t w_index = 20; - - // GS: must be >= w_index to guarantee the minimizer was indexed - static const uint32_t w_map = 30; - - // max k-mers used for comparison - static const size_t max_seeds = 5; + static const uint32_t window_size = 30; // number of positions to sort within buckets static const uint32_t n_sorting_positions = 128; // seed size during mapping, or size of a two-letter exact match - static const uint32_t n_seed_positions = 32; + static const uint32_t n_seed_positions = 26; + + // maximum number of candidates per seed as function of + // overrepresented k-mers + static const double overrep_kmer_quantile = 1e-6; static const size_t hash_mask = (1ull << seed::key_weight) - 1; diff --git a/src/abismal.cpp b/src/abismal.cpp index 627629e..c3748e5 100644 --- a/src/abismal.cpp +++ b/src/abismal.cpp @@ -256,7 +256,7 @@ struct se_candidates { static const uint32_t max_size; }; -const uint32_t se_candidates::max_size = 200; +const uint32_t se_candidates::max_size = 20; inline bool chrom_and_posn(const ChromLookup &cl, const string &cig, const uint32_t p, @@ -443,7 +443,7 @@ struct pe_candidates { static const uint32_t max_size; }; -const uint32_t pe_candidates::max_size = 400; +const uint32_t pe_candidates::max_size = 100; inline double pct(const double a, const double b) {return 100.0*a/b;}