Compute a matrix product between BGEN files and a matrix. This removes the need to read an intermediate FBM object with snp_readBGEN() to compute the product. Moreover, when using dosages, they are not rounded to two decimal places anymore.

snp_prodBGEN(
bgenfiles,
beta,
list_snp_id,
ind_row = NULL,
bgi_dir = dirname(bgenfiles),
block_size = 1000,
ncores = 1
)

## Arguments

bgenfiles Character vector of paths to files with extension ".bgen". The corresponding ".bgen.bgi" index files must exist. A matrix (or a vector), with rows corresponding to list_snp_id. List (same length as the number of BGEN files) of character vector of SNP IDs to read. These should be in the form "___" (e.g. "1_88169_C_T" or "01_88169_C_T"). This function assumes that these IDs are uniquely identifying variants. An optional vector of the row indices (individuals) that are used. If not specified, all rows are used. Don't use negative indices. Directory of index files. Default is the same as bgenfiles. How to read BGEN probabilities? Currently implemented: as dosages (rounded to two decimal places), the default, as hard calls, randomly sampled based on those probabilities (similar to PLINK option '--hard-call-threshold random'). Maximum size of temporary blocks (in number of variants). Default is 1000. Number of cores used. Default doesn't use parallelism. You may use nb_cores().

## Value

The product bgen_data[ind_row, 'list_snp_id'] %*% beta.

snp_readBGEN()