NVBIO
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
nvbio::aln Namespace Reference

Namespaces

 priv
 

Classes

struct  PatternBlockingTag
 block along the pattern More...
 
struct  TextBlockingTag
 block along the text (at the moment, this is only supported for scoring) More...
 
struct  MyersTag
 Myers bit-vector algorithm. More...
 
struct  transpose_tag
 
struct  transpose_tag< PatternBlockingTag >
 
struct  transpose_tag< TextBlockingTag >
 
struct  transpose_aligner
 
struct  SmithWatermanTag
 the Smith-Waterman aligner tag More...
 
struct  GotohTag
 the Gotoh aligner tag More...
 
struct  EditDistanceTag
 the Edit Distance aligner tag More...
 
struct  HammingDistanceTag
 the Hamming Distance aligner tag More...
 
struct  aligner_tag
 
struct  Alignment
 
struct  EditDistanceAligner
 
struct  transpose_aligner< EditDistanceAligner< T_TYPE, AlgorithmTag > >
 
struct  GotohAligner
 
struct  transpose_aligner< GotohAligner< T_TYPE, scoring_scheme_type, AlgorithmTag > >
 
struct  SmithWatermanAligner
 
struct  transpose_aligner< SmithWatermanAligner< T_TYPE, scoring_scheme_type, AlgorithmTag > >
 
struct  HammingDistanceAligner
 
struct  transpose_aligner< HammingDistanceAligner< T_TYPE, scoring_scheme_type, AlgorithmTag > >
 
struct  HostThreadScheduler
 
struct  DeviceThreadBlockScheduler
 
struct  DeviceStagedThreadScheduler
 
struct  DeviceWarpScheduler
 
struct  supports_scheduler
 
struct  supports_scheduler< EditDistanceAligner< TYPE, AlgorithmTag >, HostThreadScheduler >
 
struct  supports_scheduler< EditDistanceAligner< TYPE, AlgorithmTag >, DeviceThreadScheduler >
 
struct  supports_scheduler< EditDistanceAligner< TYPE, AlgorithmTag >, DeviceStagedThreadScheduler >
 
struct  supports_scheduler< EditDistanceAligner< TYPE, AlgorithmTag >, DeviceWarpScheduler >
 
struct  supports_scheduler< SmithWatermanAligner< TYPE, ScoringScheme, AlgorithmTag >, HostThreadScheduler >
 
struct  supports_scheduler< SmithWatermanAligner< TYPE, ScoringScheme, AlgorithmTag >, DeviceThreadScheduler >
 
struct  supports_scheduler< SmithWatermanAligner< TYPE, ScoringScheme, AlgorithmTag >, DeviceStagedThreadScheduler >
 
struct  supports_scheduler< SmithWatermanAligner< TYPE, ScoringScheme, AlgorithmTag >, DeviceWarpScheduler >
 
struct  supports_scheduler< GotohAligner< TYPE, ScoringScheme, AlgorithmTag >, HostThreadScheduler >
 
struct  supports_scheduler< GotohAligner< TYPE, ScoringScheme, AlgorithmTag >, DeviceThreadScheduler >
 
struct  supports_scheduler< GotohAligner< TYPE, ScoringScheme, AlgorithmTag >, DeviceStagedThreadScheduler >
 
struct  supports_scheduler< GotohAligner< TYPE, ScoringScheme, AlgorithmTag >, DeviceWarpScheduler >
 
struct  supports_scheduler< HammingDistanceAligner< TYPE, ScoringScheme, AlgorithmTag >, HostThreadScheduler >
 
struct  supports_scheduler< HammingDistanceAligner< TYPE, ScoringScheme, AlgorithmTag >, DeviceThreadScheduler >
 
struct  supports_scheduler< HammingDistanceAligner< TYPE, ScoringScheme, AlgorithmTag >, DeviceStagedThreadScheduler >
 
struct  BatchedAlignmentScore
 
struct  BatchedBandedAlignmentScore
 
struct  BatchedAlignmentTraceback
 
struct  BatchedBandedAlignmentTraceback
 
struct  BatchedBandedAlignmentScore< BAND_LEN, stream_type, HostThreadScheduler >
 
struct  BatchedBandedAlignmentScore< BAND_LEN, stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >
 
struct  BatchedBandedAlignmentScore< BAND_LEN, stream_type, DeviceStagedThreadScheduler >
 
struct  BatchedBandedAlignmentTraceback< BAND_LEN, CHECKPOINTS, stream_type, DeviceThreadScheduler >
 
struct  BatchedAlignmentScore< stream_type, HostThreadScheduler >
 
struct  BatchedAlignmentScore< stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >
 
struct  BatchedAlignmentScore< stream_type, DeviceWarpScheduler >
 
struct  BatchedAlignmentScore< stream_type, DeviceStagedThreadScheduler >
 
struct  BatchedAlignmentTraceback< CHECKPOINTS, stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >
 
struct  ScoreStream
 
struct  StagedAlignmentUnitBase
 
struct  StagedScoreUnit
 
struct  BandedScoreUnit
 
struct  NullSink
 
struct  BestSink
 
struct  BestSink< simd4u8 >
 
struct  Best2Sink
 
struct  BestColumnSink
 
struct  checkpoint_storage_type
 
struct  checkpoint_storage_type< EditDistanceAligner< TYPE, algorithm_tag > >
 
struct  checkpoint_storage_type< HammingDistanceAligner< TYPE, scoring_type, algorithm_tag > >
 
struct  checkpoint_storage_type< SmithWatermanAligner< TYPE, scoring_type, algorithm_tag > >
 
struct  checkpoint_storage_type< GotohAligner< TYPE, scoring_type, algorithm_tag > >
 
struct  column_storage_type
 
struct  column_storage_type< EditDistanceAligner< TYPE, algorithm_tag > >
 
struct  column_storage_type< HammingDistanceAligner< TYPE, scoring_type, algorithm_tag > >
 
struct  column_storage_type< SmithWatermanAligner< TYPE, scoring_type, algorithm_tag > >
 
struct  column_storage_type< GotohAligner< TYPE, scoring_type, algorithm_tag > >
 
struct  direction_vector_traits
 
struct  direction_vector_traits< GotohAligner< TYPE, scoring_type, algorithm_tag > >
 
struct  SimpleSmithWatermanScheme
 
struct  SimpleGotohScheme
 
struct  trivial_quality_string
 
struct  trivial_quality_string_set
 
struct  select_dispatch
 
struct  select_dispatch< BAND_LEN, simd4u8 >
 
struct  ScoreMatrices
 
struct  ScoreMatrices< N, M, aln::EditDistanceTag >
 
struct  ScoreMatrices< N, M, aln::SmithWatermanTag >
 
struct  ScoreMatrices< N, M, aln::GotohTag >
 
struct  TestBacktracker
 

Typedefs

typedef
DeviceThreadBlockScheduler< 128, 1 > 
DeviceThreadScheduler
 
typedef strided_iterator
< cell_type * > 
column_type
 

Enumerations

enum  AlignmentType { GLOBAL, LOCAL, SEMI_GLOBAL }
 
enum  DirectionVector {
  SUBSTITUTION = 0u, INSERTION = 1u, DELETION = 2u, SINK = 3u,
  INSERTION_EXT = 4u, DELETION_EXT = 8u, HMASK = 3u, EMASK = 4u,
  FMASK = 8u
}
 
enum  State { HSTATE = 0, ESTATE = 1, FSTATE = 2 }
 
enum  AlignmentTest {
  ALL = 0xFFFFFFFFu, ED = 1u, SW = 2u, GOTOH = 4u,
  ED_BANDED = 8u, SW_BANDED = 16u, GOTOH_BANDED = 32u, SW_WARP = 64u,
  SW_STRIPED = 128u, FUNCTIONAL = 256u
}
 

Functions

template<uint32 BAND_LEN, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE bool 
banded_alignment_score (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, sink_type &sink)
 
template<uint32 BAND_LEN, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE bool 
banded_alignment_score (const aligner_type aligner, const pattern_string pattern, const text_string text, const int32 min_score, sink_type &sink)
 
template<uint32 BAND_LEN, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE int32 
banded_alignment_score (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score)
 
template<uint32 BAND_LEN, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE int32 
banded_alignment_score (const aligner_type aligner, const pattern_string pattern, const text_string text, const int32 min_score)
 
template<uint32 BAND_LEN, uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename backtracer_type , typename checkpoints_type , typename submatrix_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE Alignment
< int32
banded_alignment_traceback (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, backtracer_type &backtracer, checkpoints_type checkpoints, submatrix_type submatrix)
 
template<typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename column_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE bool 
alignment_score (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, sink_type &sink, column_type column)
 
template<uint32 MAX_TEXT_LEN, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE bool 
alignment_score (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, sink_type &sink)
 
template<uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename backtracer_type , typename checkpoints_type , typename submatrix_type , typename column_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE Alignment
< int32
alignment_traceback (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, backtracer_type &backtracer, checkpoints_type checkpoints, submatrix_type submatrix, column_type column)
 
template<uint32 MAX_PATTERN_LEN, uint32 MAX_TEXT_LEN, uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename backtracer_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE Alignment
< int32
alignment_traceback (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, backtracer_type &backtracer)
 
template<AlignmentType TYPE>
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE
EditDistanceAligner< TYPE
make_edit_distance_aligner ()
 
template<AlignmentType TYPE, typename algorithm_tag >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE
EditDistanceAligner< TYPE,
algorithm_tag > 
make_edit_distance_aligner ()
 
template<AlignmentType TYPE>
EditDistanceAligner< TYPE,
TextBlockingTag
transpose (const EditDistanceAligner< TYPE, PatternBlockingTag > &aligner)
 
template<AlignmentType TYPE, typename scoring_scheme_type >
EditDistanceAligner< TYPE,
PatternBlockingTag
transpose (const EditDistanceAligner< TYPE, TextBlockingTag > &aligner)
 
template<AlignmentType TYPE, typename scoring_scheme_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE GotohAligner
< TYPE, scoring_scheme_type > 
make_gotoh_aligner (const scoring_scheme_type &scheme)
 
template<AlignmentType TYPE, typename algorithm_tag , typename scoring_scheme_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE GotohAligner
< TYPE, scoring_scheme_type,
algorithm_tag > 
make_gotoh_aligner (const scoring_scheme_type &scheme)
 
template<AlignmentType TYPE, typename scoring_scheme_type >
GotohAligner< TYPE,
scoring_scheme_type,
TextBlockingTag
transpose (const GotohAligner< TYPE, scoring_scheme_type, PatternBlockingTag > &aligner)
 
template<AlignmentType TYPE, typename scoring_scheme_type >
GotohAligner< TYPE,
scoring_scheme_type,
PatternBlockingTag
transpose (const GotohAligner< TYPE, scoring_scheme_type, TextBlockingTag > &aligner)
 
template<AlignmentType TYPE, typename scoring_scheme_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE
SmithWatermanAligner< TYPE,
scoring_scheme_type > 
make_smith_waterman_aligner (const scoring_scheme_type &scheme)
 
template<AlignmentType TYPE, typename scoring_scheme_type >
SmithWatermanAligner< TYPE,
scoring_scheme_type,
TextBlockingTag
transpose (const SmithWatermanAligner< TYPE, scoring_scheme_type, PatternBlockingTag > &aligner)
 
template<AlignmentType TYPE, typename scoring_scheme_type >
SmithWatermanAligner< TYPE,
scoring_scheme_type,
PatternBlockingTag
transpose (const SmithWatermanAligner< TYPE, scoring_scheme_type, TextBlockingTag > &aligner)
 
template<AlignmentType TYPE, typename scoring_scheme_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE
HammingDistanceAligner< TYPE,
scoring_scheme_type > 
make_hamming_distance_aligner (const scoring_scheme_type &scheme)
 
template<AlignmentType TYPE, typename scoring_scheme_type , typename algorithm_tag >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE
HammingDistanceAligner< TYPE,
scoring_scheme_type,
algorithm_tag > 
make_hamming_distance_aligner (const scoring_scheme_type &scheme)
 
template<AlignmentType TYPE, typename scoring_scheme_type >
HammingDistanceAligner< TYPE,
scoring_scheme_type,
TextBlockingTag
transpose (const HammingDistanceAligner< TYPE, scoring_scheme_type, PatternBlockingTag > &aligner)
 
template<AlignmentType TYPE, typename scoring_scheme_type >
HammingDistanceAligner< TYPE,
scoring_scheme_type,
PatternBlockingTag
transpose (const HammingDistanceAligner< TYPE, scoring_scheme_type, TextBlockingTag > &aligner)
 
template<typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename column_type , typename checkpoint_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE bool 
alignment_score (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, const uint32 window_begin, const uint32 window_end, sink_type &sink, checkpoint_type checkpoint, column_type column)
 
template<typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename column_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE bool 
alignment_score (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, const uint32 window_begin, const uint32 window_end, sink_type &sink, column_type column)
 
template<uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename checkpoint_type , typename column_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
alignment_score_checkpoints (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, sink_type &sink, checkpoint_type checkpoints, column_type column)
 
template<uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename column_type , typename checkpoint_type , typename submatrix_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
alignment_score_submatrix (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, checkpoint_type checkpoints, const uint32 checkpoint_id, submatrix_type submatrix, column_type column)
 
template<uint32 BAND_LEN, typename aligner_type , typename pattern_string , typename text_string , typename sink_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE bool 
banded_alignment_score (const aligner_type aligner, const pattern_string pattern, const text_string text, const int32 min_score, sink_type &sink)
 
template<uint32 BAND_LEN, typename aligner_type , typename pattern_string , typename qual_string , typename text_string >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE int32 
banded_alignment_score (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score)
 
template<uint32 BAND_LEN, typename aligner_type , typename pattern_string , typename text_string >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE int32 
banded_alignment_score (const aligner_type aligner, const pattern_string pattern, const text_string text, const int32 min_score)
 
template<uint32 BAND_LEN, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename checkpoint_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE bool 
banded_alignment_score (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, const uint32 window_begin, const uint32 window_end, sink_type &sink, checkpoint_type checkpoint)
 
template<uint32 BAND_LEN, uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename checkpoint_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
banded_alignment_score_checkpoints (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, sink_type &sink, checkpoint_type checkpoints)
 
template<uint32 BAND_LEN, uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename checkpoint_type , typename submatrix_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
banded_alignment_score_submatrix (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, checkpoint_type checkpoints, const uint32 checkpoint_id, submatrix_type submatrix)
 
template<uint32 BAND_LEN, uint32 MAX_PATTERN_LEN, uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename backtracer_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE Alignment
< int32
banded_alignment_traceback (const aligner_type aligner, const pattern_string pattern, const qual_string quals, const text_string text, const int32 min_score, backtracer_type &backtracer)
 
template<typename aligner_type , typename pattern_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void batch_alignment_score (const aligner_type aligner, const pattern_set_type patterns, const text_set_type texts, sink_iterator sinks, const scheduler_type scheduler, const uint32 max_pattern_length=1000, const uint32 max_text_length=1000)
 
template<typename aligner_type , typename pattern_set_type , typename qualities_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void batch_alignment_score (const aligner_type aligner, const pattern_set_type patterns, const qualities_set_type quals, const text_set_type texts, sink_iterator sinks, const scheduler_type scheduler, const uint32 max_pattern_length=1000, const uint32 max_text_length=1000)
 
template<uint32 BAND_LEN, typename aligner_type , typename pattern_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void batch_banded_alignment_score (const aligner_type aligner, const pattern_set_type patterns, const text_set_type texts, sink_iterator sinks, const scheduler_type scheduler, const uint32 max_pattern_length, const uint32 max_text_length)
 
template<uint32 BAND_LEN, typename stream_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
batched_banded_alignment_score (const stream_type &stream, const uint32 work_id)
 
template<uint32 BLOCKDIM, uint32 MINBLOCKS, uint32 BAND_LEN, typename stream_type >
__global__ void __launch_bounds__ (BLOCKDIM, MINBLOCKS) batched_banded_alignment_score_kernel(const stream_type stream)
 
template<uint32 BAND_LEN, uint32 CHECKPOINTS, typename stream_type , typename cell_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
batched_banded_alignment_traceback (stream_type &stream, cell_type *checkpoints, uint32 *submatrices, const uint32 stride, const uint32 work_id, const uint32 thread_id)
 
template<uint32 BLOCKDIM, uint32 BAND_LEN, uint32 CHECKPOINTS, typename stream_type , typename cell_type >
__global__ void batched_banded_alignment_traceback_kernel (stream_type stream, cell_type *checkpoints, uint32 *submatrices, const uint32 stride)
 
template<uint32 BLOCKDIM, uint32 BAND_LEN, uint32 CHECKPOINTS, typename stream_type , typename cell_type >
__global__ void persistent_banded_batched_alignment_traceback_kernel (stream_type stream, cell_type *checkpoints, uint32 *submatrices, const uint32 stride)
 
template<typename stream_type , typename column_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
batched_alignment_score (stream_type &stream, column_type column, const uint32 work_id, const uint32 thread_id)
 
template<uint32 BLOCKDIM, uint32 MINBLOCKS, uint32 COLUMN_SIZE, typename stream_type , typename cell_type >
__global__ void __launch_bounds__ (BLOCKDIM, MINBLOCKS) lmem_batched_alignment_score_kernel(stream_type stream
 
 if (tid >=stream.size()) return
 
 batched_alignment_score (stream, column, tid, tid)
 
 for (uint32 stream_begin=0;stream_begin< stream_end;stream_begin+=grid_threads)
 
template<uint32 BLOCKDIM, typename stream_type , typename cell_type >
NVBIO_FORCEINLINE NVBIO_DEVICE void warp_batched_alignment_score (stream_type &stream, cell_type *columns, const uint32 stride, const uint32 work_id, const uint32 warp_id)
 
template<uint32 BLOCKDIM, typename stream_type , typename cell_type >
__global__ void warp_batched_alignment_score_kernel (stream_type stream, cell_type *columns, const uint32 stride)
 
template<uint32 BLOCKDIM, typename stream_type , typename cell_type >
__global__ void warp_persistent_batched_alignment_score_kernel (stream_type stream, cell_type *columns, const uint32 stride)
 
template<uint32 CHECKPOINTS, typename stream_type , typename cell_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
batched_alignment_traceback (stream_type &stream, cell_type *checkpoints, uint32 *submatrices, cell_type *columns, const uint32 stride, const uint32 work_id, const uint32 thread_id)
 
 batched_alignment_traceback< CHECKPOINTS > (stream, checkpoints, submatrices, columns, stride, tid, tid)
 
template<AlignmentType TYPE, typename scoring_scheme_type , typename algorithm_tag >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
max_pattern_gaps (const HammingDistanceAligner< TYPE, scoring_scheme_type, algorithm_tag > &aligner, int32 min_score, int32 pattern_len)
 
template<AlignmentType TYPE, typename scoring_scheme_type , typename algorithm_tag >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
max_text_gaps (const HammingDistanceAligner< TYPE, scoring_scheme_type, algorithm_tag > &aligner, int32 min_score, int32 pattern_len)
 
template<AlignmentType TYPE, typename scoring_scheme_type , typename algorithm_tag >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
max_pattern_gaps (const SmithWatermanAligner< TYPE, scoring_scheme_type, algorithm_tag > &aligner, int32 min_score, int32 pattern_len)
 
template<AlignmentType TYPE, typename scoring_scheme_type , typename algorithm_tag >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
max_text_gaps (const SmithWatermanAligner< TYPE, scoring_scheme_type, algorithm_tag > &aligner, int32 min_score, int32 pattern_len)
 
template<AlignmentType TYPE, typename scoring_scheme_type , typename algorithm_tag >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
max_pattern_gaps (const GotohAligner< TYPE, scoring_scheme_type, algorithm_tag > &aligner, int32 min_score, int32 pattern_len)
 
template<AlignmentType TYPE, typename scoring_scheme_type , typename algorithm_tag >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
max_text_gaps (const GotohAligner< TYPE, scoring_scheme_type, algorithm_tag > &aligner, int32 min_score, int32 pattern_len)
 
template<AlignmentType TYPE, typename algorithm_tag >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
max_pattern_gaps (const EditDistanceAligner< TYPE, algorithm_tag > &aligner, int32 min_score, int32 pattern_len)
 
template<AlignmentType TYPE, typename algorithm_tag >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE uint32 
max_text_gaps (const EditDistanceAligner< TYPE, algorithm_tag > &aligner, int32 min_score, int32 pattern_len)
 
template<uint32 BAND_LEN>
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
save_Mth (const uint4 M, const simd4u8 *band, simd4u8 &best_score)
 
template<uint32 BAND_LEN, typename sink_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
save_Mth (const uint4 M, const simd4u8 *band, const uint32 i, sink_type &sink, const simd4u8 mask)
 
template<uint32 BAND_LEN, typename score_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
save_Mth (const uint32 M, const score_type *band, score_type &best_score)
 
template<uint32 BAND_LEN, typename score_type , typename sink_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
save_Mth (const uint32 M, const score_type *band, const uint32 i, sink_type &sink)
 
template<uint32 BAND_LEN, typename score_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
save_boundary (const uint32 block, const uint32 M, const score_type *band, score_type &best_score)
 
template<uint32 BAND_LEN, typename score_type , typename sink_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
save_boundary (const uint32 block, const uint32 M, const score_type *band, const uint32 i, sink_type &sink)
 
template<uint32 BAND_LEN, typename sink_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
save_boundary (const uint32 block, const uint4 M, const simd4u8 *band, const uint32 i, sink_type &sink, const simd4u8 active_mask)
 
vector_view< const char * > make_string (const char *str)
 
std::string rle (const char *input)
 
template<uint32 BITS, typename rand_type >
void fill_packed_stream (rand_type &rand, const uint32 value_range, const uint32 n, uint32 *storage)
 
template<uint32 M, uint32 N, uint32 BAND_LEN, aln::AlignmentType TYPE, typename scheme_type >
int32 ref_banded_sw (const uint8 *str, const uint8 *ref, const uint32 pos, const aln::SmithWatermanAligner< TYPE, scheme_type > aligner)
 
template<uint32 M, uint32 N, uint32 BAND_LEN, aln::AlignmentType TYPE, typename scheme_type >
int32 ref_banded_sw (const uint8 *pattern, const uint8 *text, const uint32 pos, const aln::GotohAligner< TYPE, scheme_type > aligner)
 
template<uint32 M, uint32 N, aln::AlignmentType TYPE, typename scheme_type >
int32 ref_sw (const uint8 *str, const uint8 *ref, const aln::SmithWatermanAligner< TYPE, scheme_type > aligner, ScoreMatrices< N, M, aln::SmithWatermanTag > *mat)
 
template<uint32 M, uint32 N, aln::AlignmentType TYPE>
int32 ref_sw (const uint8 *str, const uint8 *ref, const aln::EditDistanceAligner< TYPE > aligner, ScoreMatrices< N, M, aln::EditDistanceTag > *mat)
 
template<uint32 M, uint32 N, aln::AlignmentType TYPE, typename scheme_type >
int32 ref_sw (const uint8 *str, const uint8 *ref, const aln::GotohAligner< TYPE, scheme_type > aligner, ScoreMatrices< N, M, aln::GotohTag > *mat)
 
void test (int argc, char *argv[])
 

Variables

__global__ void cell_type * columns
 
__global__ void cell_type
const uint32 
stride
 
cell_type column [COLUMN_SIZE] = column_type( columns + tid, stride )
 
const uint32 thread_id = threadIdx.x + blockIdx.x*BLOCKDIM
 
const uint32 stream_end = stream.size()
 
__global__ void cell_type * checkpoints
 
__global__ void cell_type uint32submatrices
 

Enumeration Type Documentation

Enumerator
ALL 
ED 
SW 
GOTOH 
ED_BANDED 
SW_BANDED 
GOTOH_BANDED 
SW_WARP 
SW_STRIPED 
FUNCTIONAL 

Definition at line 55 of file alignment_test_utils.h.

Function Documentation

template<typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename column_type , typename checkpoint_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE bool nvbio::aln::alignment_score ( const aligner_type  aligner,
const pattern_string  pattern,
const qual_string  quals,
const text_string  text,
const int32  min_score,
const uint32  window_begin,
const uint32  window_end,
sink_type &  sink,
checkpoint_type  checkpoint,
column_type  column 
)

Definition at line 146 of file alignment_inl.h.

template<typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename column_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE bool nvbio::aln::alignment_score ( const aligner_type  aligner,
const pattern_string  pattern,
const qual_string  quals,
const text_string  text,
const int32  min_score,
const uint32  window_begin,
const uint32  window_end,
sink_type &  sink,
column_type  column 
)

Definition at line 192 of file alignment_inl.h.

template<uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename checkpoint_type , typename column_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE void nvbio::aln::alignment_score_checkpoints ( const aligner_type  aligner,
const pattern_string  pattern,
const qual_string  quals,
const text_string  text,
const int32  min_score,
sink_type &  sink,
checkpoint_type  checkpoints,
column_type  column 
)

Definition at line 238 of file alignment_inl.h.

template<uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename column_type , typename checkpoint_type , typename submatrix_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE uint32 nvbio::aln::alignment_score_submatrix ( const aligner_type  aligner,
const pattern_string  pattern,
const qual_string  quals,
const text_string  text,
const int32  min_score,
checkpoint_type  checkpoints,
const uint32  checkpoint_id,
submatrix_type  submatrix,
column_type  column 
)

Definition at line 301 of file alignment_inl.h.

template<uint32 BAND_LEN, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename checkpoint_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE bool nvbio::aln::banded_alignment_score ( const aligner_type  aligner,
const pattern_string  pattern,
const qual_string  quals,
const text_string  text,
const int32  min_score,
const uint32  window_begin,
const uint32  window_end,
sink_type &  sink,
checkpoint_type  checkpoint 
)

Definition at line 197 of file banded_inl.h.

template<uint32 BAND_LEN, uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename sink_type , typename checkpoint_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE void nvbio::aln::banded_alignment_score_checkpoints ( const aligner_type  aligner,
const pattern_string  pattern,
const qual_string  quals,
const text_string  text,
const int32  min_score,
sink_type &  sink,
checkpoint_type  checkpoints 
)

Definition at line 242 of file banded_inl.h.

template<uint32 BAND_LEN, uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename checkpoint_type , typename submatrix_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE uint32 nvbio::aln::banded_alignment_score_submatrix ( const aligner_type  aligner,
const pattern_string  pattern,
const qual_string  quals,
const text_string  text,
const int32  min_score,
checkpoint_type  checkpoints,
const uint32  checkpoint_id,
submatrix_type  submatrix 
)

Definition at line 302 of file banded_inl.h.

template<uint32 BAND_LEN, uint32 MAX_PATTERN_LEN, uint32 CHECKPOINTS, typename aligner_type , typename pattern_string , typename qual_string , typename text_string , typename backtracer_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE Alignment<int32> nvbio::aln::banded_alignment_traceback ( const aligner_type  aligner,
const pattern_string  pattern,
const qual_string  quals,
const text_string  text,
const int32  min_score,
backtracer_type &  backtracer 
)

Definition at line 460 of file banded_inl.h.

template<uint32 BITS, typename rand_type >
void nvbio::aln::fill_packed_stream ( rand_type &  rand,
const uint32  value_range,
const uint32  n,
uint32 *  storage 
)

Definition at line 103 of file alignment_test_utils.h.

vector_view<const char*> nvbio::aln::make_string ( const char *  str)

Definition at line 70 of file alignment_test_utils.h.

template<uint32 M, uint32 N, uint32 BAND_LEN, aln::AlignmentType TYPE, typename scheme_type >
int32 nvbio::aln::ref_banded_sw ( const uint8 *  str,
const uint8 *  ref,
const uint32  pos,
const aln::SmithWatermanAligner< TYPE, scheme_type >  aligner 
)

Definition at line 237 of file alignment_test_utils.h.

template<uint32 M, uint32 N, uint32 BAND_LEN, aln::AlignmentType TYPE, typename scheme_type >
int32 nvbio::aln::ref_banded_sw ( const uint8 *  pattern,
const uint8 *  text,
const uint32  pos,
const aln::GotohAligner< TYPE, scheme_type >  aligner 
)

Definition at line 315 of file alignment_test_utils.h.

template<uint32 M, uint32 N, aln::AlignmentType TYPE, typename scheme_type >
int32 nvbio::aln::ref_sw ( const uint8 *  str,
const uint8 *  ref,
const aln::SmithWatermanAligner< TYPE, scheme_type >  aligner,
ScoreMatrices< N, M, aln::SmithWatermanTag > *  mat 
)

Definition at line 464 of file alignment_test_utils.h.

template<uint32 M, uint32 N, aln::AlignmentType TYPE>
int32 nvbio::aln::ref_sw ( const uint8 *  str,
const uint8 *  ref,
const aln::EditDistanceAligner< TYPE aligner,
ScoreMatrices< N, M, aln::EditDistanceTag > *  mat 
)

Definition at line 523 of file alignment_test_utils.h.

template<uint32 M, uint32 N, aln::AlignmentType TYPE, typename scheme_type >
int32 nvbio::aln::ref_sw ( const uint8 *  str,
const uint8 *  ref,
const aln::GotohAligner< TYPE, scheme_type >  aligner,
ScoreMatrices< N, M, aln::GotohTag > *  mat 
)

Definition at line 537 of file alignment_test_utils.h.

std::string nvbio::aln::rle ( const char *  input)

Definition at line 76 of file alignment_test_utils.h.

template<uint32 BAND_LEN, typename score_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE void nvbio::aln::save_boundary ( const uint32  block,
const uint32  M,
const score_type *  band,
score_type &  best_score 
)

Definition at line 288 of file utils_inl.h.

template<uint32 BAND_LEN, typename score_type , typename sink_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE void nvbio::aln::save_boundary ( const uint32  block,
const uint32  M,
const score_type *  band,
const uint32  i,
sink_type &  sink 
)

Definition at line 295 of file utils_inl.h.

template<uint32 BAND_LEN, typename sink_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE void nvbio::aln::save_boundary ( const uint32  block,
const uint4  M,
const simd4u8 *  band,
const uint32  i,
sink_type &  sink,
const simd4u8  active_mask 
)

Definition at line 303 of file utils_inl.h.

template<uint32 BAND_LEN>
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE void nvbio::aln::save_Mth ( const uint4  M,
const simd4u8 *  band,
simd4u8 &  best_score 
)

Definition at line 257 of file utils_inl.h.

template<uint32 BAND_LEN, typename sink_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE void nvbio::aln::save_Mth ( const uint4  M,
const simd4u8 *  band,
const uint32  i,
sink_type &  sink,
const simd4u8  mask 
)

Definition at line 265 of file utils_inl.h.

template<uint32 BAND_LEN, typename score_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE void nvbio::aln::save_Mth ( const uint32  M,
const score_type *  band,
score_type &  best_score 
)

Definition at line 273 of file utils_inl.h.

template<uint32 BAND_LEN, typename score_type , typename sink_type >
NVBIO_FORCEINLINE NVBIO_HOST_DEVICE void nvbio::aln::save_Mth ( const uint32  M,
const score_type *  band,
const uint32  i,
sink_type &  sink 
)

Definition at line 281 of file utils_inl.h.

void nvbio::aln::test ( int  argc,
char *  argv[] 
)