NVBIO
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Modules | Classes | Functions
Select

Detailed Description

The functions in this module implement a pipeline stage in which, for all the active reads in the ScoringQueues, a group of seed hits is selected for a new round of Scoring. In terms of inputs and outputs, this stage takes the set of input ScoringQueues::active_reads, and fills the ScoringQueues::hits with a new set of hits, writing the HitQueues::read_id, HitQueues::seed, and HitQueues::loc fields. The hits' location specified by the HitQueues::loc field is expressed in Suffix Array coordinates. Finally, this stage is also responsible for producing a new set of ScoringQueues::active_reads.

inputs:

outputs:

Modules

 SelectDetail
 

Classes

struct  nvbio::bowtie2::cuda::SelectBestApproxContext
 

Functions

void nvbio::bowtie2::cuda::select_init (const uint32 count, const char *read_names, const uint32 *read_names_idx, const SeedHitDequeArrayDeviceView hits, uint32 *trys, uint32 *rseeds, const ParamsPOD params)
 
void nvbio::bowtie2::cuda::select_init (BestApproxScoringPipelineState< EditDistanceScoringScheme > &pipeline, const ParamsPOD &params)
 
void nvbio::bowtie2::cuda::select_init (BestApproxScoringPipelineState< SmithWatermanScoringScheme<> > &pipeline, const ParamsPOD &params)
 
__global__ void nvbio::bowtie2::cuda::select_n_from_top_range_kernel (const uint32 begin, const uint32 count, const uint32 n_reads, const SeedHit *hit_data, const uint32 *hit_range_scan, uint32 *loc_queue, uint32 *seed_queue, uint32 *read_info)
 
void nvbio::bowtie2::cuda::select (const SelectBestApproxContext context, const BestApproxScoringPipelineState< EditDistanceScoringScheme > &pipeline, const ParamsPOD params)
 
void nvbio::bowtie2::cuda::select (const SelectBestApproxContext context, const BestApproxScoringPipelineState< SmithWatermanScoringScheme<> > &pipeline, const ParamsPOD params)
 
void nvbio::bowtie2::cuda::select_all (const uint64 begin, const uint32 count, const uint32 n_reads, const uint32 n_hit_ranges, const uint64 n_hits, const SeedHitDequeArrayDeviceView hits, const uint32 *hit_count_scan, const uint64 *hit_range_scan, HitQueuesDeviceView scoring_queues)
 
template<typename ScoringScheme >
void nvbio::bowtie2::cuda::select_init_t (BestApproxScoringPipelineState< ScoringScheme > &pipeline, const ParamsPOD &params)
 
template<typename BatchType , typename ContextType >
void nvbio::bowtie2::cuda::select (const BatchType read_batch, SeedHitDequeArrayDeviceView hits, const ContextType context, ScoringQueuesDeviceView scoring_queues, const ParamsPOD params)
 
template<typename BatchType , typename ContextType >
void nvbio::bowtie2::cuda::rand_select (const BatchType read_batch, SeedHitDequeArrayDeviceView hits, uint32 *rseeds, const ContextType context, ScoringQueuesDeviceView scoring_queues, const ParamsPOD params)
 
template<typename BatchType , typename ContextType >
void nvbio::bowtie2::cuda::select_multi (const BatchType read_batch, SeedHitDequeArrayDeviceView hits, const ContextType context, ScoringQueuesDeviceView scoring_queues, const uint32 n_multi, const ParamsPOD params)
 
template<typename BatchType , typename ContextType >
void nvbio::bowtie2::cuda::select (const BatchType read_batch, SeedHitDequeArrayDeviceView hits, uint32 *rseeds, const ContextType context, ScoringQueuesDeviceView scoring_queues, const uint32 n_multi, const ParamsPOD params)
 
template<typename ScoringScheme , typename ContextType >
void nvbio::bowtie2::cuda::select_t (const ContextType context, const BestApproxScoringPipelineState< ScoringScheme > &pipeline, const ParamsPOD params)
 

Function Documentation

template<typename BatchType , typename ContextType >
void nvbio::bowtie2::cuda::rand_select ( const BatchType  read_batch,
SeedHitDequeArrayDeviceView  hits,
uint32 *  rseeds,
const ContextType  context,
ScoringQueuesDeviceView  scoring_queues,
const ParamsPOD  params 
)

Prepare for a round of seed extension by selecting the next SA row from each of the seed-hit deque arrays (SeedHitDequeArray) bound to the active-reads in the scoring queues (ScoringQueues::active_reads).

Definition at line 638 of file select_inl.h.

template<typename BatchType , typename ContextType >
void nvbio::bowtie2::cuda::select ( const BatchType  read_batch,
SeedHitDequeArrayDeviceView  hits,
const ContextType  context,
ScoringQueuesDeviceView  scoring_queues,
const ParamsPOD  params 
)

Prepare for a round of seed extension by selecting the next SA row from each of the seed-hit deque arrays (SeedHitDequeArray) bound to the active-reads in the scoring queues (ScoringQueues::active_reads).

// group nvBowtie

Definition at line 617 of file select_inl.h.

template<typename BatchType , typename ContextType >
void nvbio::bowtie2::cuda::select ( const BatchType  read_batch,
SeedHitDequeArrayDeviceView  hits,
uint32 *  rseeds,
const ContextType  context,
ScoringQueuesDeviceView  scoring_queues,
const uint32  n_multi,
const ParamsPOD  params 
)

Prepare for a round of seed extension by selecting the next SA row from each of the seed-hit deque arrays (SeedHitDequeArray) bound to the active-reads in the scoring queues (ScoringQueues::active_reads).

Definition at line 726 of file select_inl.h.

void nvbio::bowtie2::cuda::select ( const SelectBestApproxContext  context,
const BestApproxScoringPipelineState< EditDistanceScoringScheme > &  pipeline,
const ParamsPOD  params 
)

Prepare for a round of seed extension by selecting the next SA row from each of the seed-hit deque arrays (SeedHitDequeArray) bound to the active-reads in the scoring queues (ScoringQueues::active_reads).

void nvbio::bowtie2::cuda::select ( const SelectBestApproxContext  context,
const BestApproxScoringPipelineState< SmithWatermanScoringScheme<> > &  pipeline,
const ParamsPOD  params 
)

Prepare for a round of seed extension by selecting the next SA row from each of the seed-hit deque arrays (SeedHitDequeArray) bound to the active-reads in the scoring queues (ScoringQueues::active_reads).

void nvbio::bowtie2::cuda::select_all ( const uint64  begin,
const uint32  count,
const uint32  n_reads,
const uint32  n_hit_ranges,
const uint64  n_hits,
const SeedHitDequeArrayDeviceView  hits,
const uint32 *  hit_count_scan,
const uint64 *  hit_range_scan,
HitQueuesDeviceView  scoring_queues 
)

Select next hit extensions for all-mapping

void nvbio::bowtie2::cuda::select_init ( const uint32  count,
const char *  read_names,
const uint32 *  read_names_idx,
const SeedHitDequeArrayDeviceView  hits,
uint32 *  trys,
uint32 *  rseeds,
const ParamsPOD  params 
)

Initialize the hit-selection pipeline

void nvbio::bowtie2::cuda::select_init ( BestApproxScoringPipelineState< EditDistanceScoringScheme > &  pipeline,
const ParamsPOD &  params 
)

Initialize the hit-selection pipeline

void nvbio::bowtie2::cuda::select_init ( BestApproxScoringPipelineState< SmithWatermanScoringScheme<> > &  pipeline,
const ParamsPOD &  params 
)

Initialize the hit-selection pipeline

template<typename ScoringScheme >
void nvbio::bowtie2::cuda::select_init_t ( BestApproxScoringPipelineState< ScoringScheme > &  pipeline,
const ParamsPOD &  params 
)

Initialize the hit-selection pipeline

Definition at line 50 of file select_inl.h.

template<typename BatchType , typename ContextType >
void nvbio::bowtie2::cuda::select_multi ( const BatchType  read_batch,
SeedHitDequeArrayDeviceView  hits,
const ContextType  context,
ScoringQueuesDeviceView  scoring_queues,
const uint32  n_multi,
const ParamsPOD  params 
)

Prepare for a round of seed extension by selecting a set of up to 'n_multi' SA rows from each of the seed-hit deque arrays (SeedHitDequeArray) bound to the active-reads in the scoring queues (ScoringQueues::active_reads).

For each read in the input queue, this kernel generates:

  1. one or zero output reads, in the main output read queue,
  2. zero to 'n_multi' SA rows. These are made of three entries, one in 'loc_queue', identifying the corresponding SA index, one in 'seed_queue', storing information about the seed hit, and one in 'parent_queue', storing the index of the "parent" read in the output queue (i.e. the slot where the read is is being stored)

Definition at line 670 of file select_inl.h.

__global__ void nvbio::bowtie2::cuda::select_n_from_top_range_kernel ( const uint32  begin,
const uint32  count,
const uint32  n_reads,
const SeedHit *  hit_data,
const uint32 *  hit_range_scan,
uint32 *  loc_queue,
uint32 *  seed_queue,
uint32 *  read_info 
)

select next hit extensions from the top seed ranges

template<typename ScoringScheme , typename ContextType >
void nvbio::bowtie2::cuda::select_t ( const ContextType  context,
const BestApproxScoringPipelineState< ScoringScheme > &  pipeline,
const ParamsPOD  params 
)

Prepare for a round of seed extension by selecting the next SA row from each of the seed-hit deque arrays (SeedHitDequeArray) bound to the active-reads in the scoring queues (ScoringQueues::active_reads).

Definition at line 793 of file select_inl.h.