//------------------------------------------------------------------------- // New improved normalization strategy void DPTreephaser::NormalizeAndSolve3(BasecallerRead& well, int max_flows) { int window_size = windowSize_; int solve_flows = 0; for (int num_steps = 1; solve_flows < max_flows; ++num_steps) { solve_flows = min((num_steps+1) * window_size, max_flows); Solve(well, solve_flows); WindowedNormalize(well, num_steps, window_size); } Solve(well, max_flows); }
// Sliding window adaptive normalization void DPTreephaser::NormalizeAndSolve5(BasecallerRead& well, int max_flows) { int window_size = 50; int solve_flows = 0; for (int num_steps = 1; solve_flows < max_flows; ++num_steps) { solve_flows = min((num_steps+1) * window_size, max_flows); int restart_flows = max(solve_flows-100, 0); Solve(well, solve_flows, restart_flows); WindowedNormalize(well, num_steps, window_size); } Solve(well, max_flows); }
// Sliding window adaptive normalization and joint solving of sequence void TreephaserLite::NormalizeAndSolve(BasecallerRead& well, int max_flows, bool sliding_window) { int window_size = windowSize_; int solve_flows = 0; for (int num_steps = 1; solve_flows < max_flows; ++num_steps) { solve_flows = min((num_steps+1) * window_size, max_flows); int restart_flows = 0; if(sliding_window) restart_flows = max(solve_flows-100, 0); Solve(well, solve_flows, restart_flows); WindowedNormalize(well, num_steps, window_size); } Solve(well, max_flows); }
// Sliding window adaptive normalization void DPTreephaser::NormalizeAndSolve5(BasecallerRead& well, int max_flows) { int window_size = windowSize_; int solve_flows = 0; for (int num_steps = 1; solve_flows < max_flows; ++num_steps) { solve_flows = min((num_steps+1) * window_size, max_flows); int restart_flows = max(solve_flows-100, 0); Solve(well, solve_flows, restart_flows); WindowedNormalize(well, num_steps, window_size); } if(pm_model_available_) pm_model_enabled_ = true; Solve(well, max_flows); pm_model_enabled_ = false; }
//------------------------------------------------------------------------- // New improved normalization strategy void DPTreephaser::NormalizeAndSolve_Adaptive(BasecallerRead& read, int max_flows) { int window_size = windowSize_; int solve_flows = 0; // Disable recalibration during normalization stage if requested if (skip_recal_during_normalization_) recalibrate_predictions_ = false; for (int num_steps = 1; solve_flows < max_flows; ++num_steps) { solve_flows = min((num_steps+1) * window_size, max_flows); Solve(read, solve_flows); WindowedNormalize(read, num_steps, window_size); } // And turn it back on (if available) for the final solving part EnableRecalibration(); Solve(read, max_flows); }