52 typename aligner_type,
53 typename pattern_string,
59 const aligner_type aligner,
60 const pattern_string pattern,
61 const qual_string quals,
62 const text_string
text,
63 const int32 min_score,
66 return priv::banded_alignment_score<BAND_LEN>(
87 typename aligner_type,
88 typename pattern_string,
93 const aligner_type aligner,
94 const pattern_string pattern,
95 const text_string
text,
96 const int32 min_score,
99 return priv::banded_alignment_score<BAND_LEN>(
121 typename aligner_type,
122 typename pattern_string,
123 typename qual_string,
124 typename text_string>
127 const aligner_type aligner,
128 const pattern_string pattern,
129 const qual_string quals,
130 const text_string
text,
131 const int32 min_score)
134 priv::banded_alignment_score<BAND_LEN>(
156 typename aligner_type,
157 typename pattern_string,
158 typename text_string>
161 const aligner_type aligner,
162 const pattern_string pattern,
163 const text_string
text,
164 const int32 min_score)
167 priv::banded_alignment_score<BAND_LEN>(
190 typename aligner_type,
191 typename pattern_string,
192 typename qual_string,
193 typename text_string,
195 typename checkpoint_type>
198 const aligner_type aligner,
199 const pattern_string pattern,
200 const qual_string quals,
201 const text_string
text,
202 const int32 min_score,
203 const uint32 window_begin,
206 checkpoint_type checkpoint)
208 return priv::banded_alignment_score<BAND_LEN>(
235 typename aligner_type,
236 typename pattern_string,
237 typename qual_string,
238 typename text_string,
240 typename checkpoint_type>
243 const aligner_type aligner,
244 const pattern_string pattern,
245 const qual_string quals,
246 const text_string
text,
247 const int32 min_score,
251 priv::banded_alignment_checkpoints<BAND_LEN,CHECKPOINTS>(
295 typename aligner_type,
296 typename pattern_string,
297 typename qual_string,
298 typename text_string,
299 typename checkpoint_type,
300 typename submatrix_type>
303 const aligner_type aligner,
304 const pattern_string pattern,
305 const qual_string quals,
306 const text_string
text,
307 const int32 min_score,
309 const uint32 checkpoint_id,
310 submatrix_type submatrix)
312 return priv::banded_alignment_submatrix<BAND_LEN,CHECKPOINTS>(
355 typename aligner_type,
356 typename pattern_string,
357 typename qual_string,
358 typename text_string,
359 typename backtracer_type,
360 typename checkpoints_type,
361 typename submatrix_type>
364 const aligner_type aligner,
365 const pattern_string pattern,
366 const qual_string quals,
367 const text_string
text,
368 const int32 min_score,
369 backtracer_type& backtracer,
371 submatrix_type submatrix)
384 banded_alignment_score_checkpoints<BAND_LEN,CHECKPOINTS>(
387 const uint32 n_checkpoints = 1u + (pattern.length() + CHECKPOINTS-1)/CHECKPOINTS;
389 uint2 sink = best.
sink;
390 if (sink.x ==
uint32(-1) ||
395 backtracer.clip( pattern.length() - sink.y );
398 int32 checkpoint_id = n_checkpoints-2;
402 for (; checkpoint_id >= 0; --checkpoint_id)
404 if (checkpoint_id * CHECKPOINTS < sink.y)
413 for (; checkpoint_id >= 0; --checkpoint_id)
415 const uint32 submatrix_height = banded_alignment_score_submatrix<BAND_LEN,CHECKPOINTS>(
416 aligner, pattern, quals,
text, min_score,
checkpoints, checkpoint_id, submatrix );
418 if (priv::banded_alignment_traceback<BAND_LEN,CHECKPOINTS>(
419 aligner, checkpoints, checkpoint_id, submatrix, submatrix_height, state, sink, backtracer ))
424 backtracer.clip( sink.y );
454 typename aligner_type,
455 typename pattern_string,
456 typename qual_string,
457 typename text_string,
458 typename backtracer_type>
461 const aligner_type aligner,
462 const pattern_string pattern,
463 const qual_string quals,
464 const text_string
text,
465 const int32 min_score,
466 backtracer_type& backtracer)
474 checkpoint_type
checkpoints[ BAND_LEN*(1u + (MAX_PATTERN_LEN + CHECKPOINTS-1)/CHECKPOINTS) ];
476 NVBIO_VAR_UNUSED const uint32 SUBMATRIX_WORDS = (BAND_LEN*CHECKPOINTS + ELEMENTS_PER_WORD-1) / ELEMENTS_PER_WORD;
477 uint32 submatrix_base[ SUBMATRIX_WORDS ];
480 return banded_alignment_traceback<BAND_LEN,CHECKPOINTS>(