Primitive APIs in xf::genomics

computePairhmm

#include "phmmmodules.hpp"
template <unsigned int PU_NUM>
void computePairhmm (
    ap_uint <512>* input_data,
    short numRead,
    short numHap,
    int iterNum,
    float* output_data
    )

PairHMM module to compute the likelihood.

Parameters:

PU_NUM number of process engines in grid
input_data input read/ref data
numRead number of read sequence data
numHap number of hap sequence data
iterNum number of iterations
output_data output data

ddr_streaming

#include "smemmodules.hpp"
void ddr_streaming (
    bwtint_t bwt_primary,
    bwtint_t L2 [5],
    byte_t* seq,
    byte_t* seq_len,
    smem_t* mem,
    uint_t* mem_num,
    int batch_size,
    data_bundle* bwt,
    bwtint_t bwt_size
    )

SMEM module handles SMEM operation and also I/O.

Parameters:

bwt_primary bwt initial value
L2 bwt parameters
seq input sequence
seq_len input sequence length
mem output data
mem_num number of output data
batch_size batch size
bwt bwt of the sequence
bwt_size size of the bwt

swInt

#include "swmaxscore_compute.hpp"
template <
    int DATAWIDTH,
    int FACTOR
    >
void swInt (
    hls::stream <ap_uint <DATAWIDTH>>& inRefStream,
    hls::stream <bool>& refprocessDone,
    hls::stream <ap_uint <DATAWIDTH>>& inReadStream,
    hls::stream <bool>& readprocessDone,
    hls::stream <ap_uint <49>>& outStream
    )

Smithwaterman module computes the max score.

Parameters:

DATAWIDTH input data width
FACTOR number of process engines
inRefStream input reference data
refprocessDone reference end of stream
inReadStream input read data
readprocessDone read end of stream