- Add parameter
thr_r2
insnp_cor()
.
- Remove penalization in
snp_ldsplit()
. Instead, report the best splits for a range of numbers of blocks desired.
- Penalization in
snp_ldsplit()
now makes more sense. Also fix a small bug that prevented splitting the last block in some cases.
- Add function
snp_ldsplit()
for optimally splitting variants in nearly independent blocks of LD.
- Add option
file.type = "--gzvcf"
for using gzipped VCF insnp_plinkQC()
.
- Finally remove function
snp_assocBGEN()
; prefer reading small parts withsnp_readBGEN()
as a temporarybigSNP
object and do the association test with e.g.big_univLinReg()
.
- Add function
snp_thr_correct()
for correcting for winner's curse in summary statistics when using p-value thresholding.
-
Use a better formula for the scale in LDpred2, useful when there are some variants with very large effects (e.g. explaining more than 10% phenotypic variance).
-
Simplify LDpred2; there was not really any need for initialization and ordering of the Gibbs sampler.
- Add option
return_sampling_betas
insnp_ldpred2_grid()
to return all sampling betas (after burn-in), which is useful for assessing the uncertainty of the PRS at the individual level (see https://doi.org/10.1101/2020.11.30.403188).
- Faster cross-product with SFBM, which should make all LDpred2 models faster.
- Also return
$postp_est
,$h2_init
and$p_init
in LDpred2-auto.
- Add multiple checks in
snp_readBGEN()
to make sure of the expected format.
- Add function
snp_fst()
for computing Fst.
- Workaround for error
could not find function "ldpred2_gibbs_auto"
.
- Can now directly do
as_SFBM(corr0)
instead ofbigsparser::as_SFBM(as(corr0, "dgCMatrix"))
. This should also use less memory and be faster.
- Add option
sparse
to enable getting also a sparse solution in LDpred2-auto.
- Faster
bigsparser::as_SFBM()
.
- Allow for format
01
or1
for chromosomes in BGI files.
- Fasten
snp_match()
. Also now remove duplicates by default.
- Fix a bug when using very large correlation matrices in LDpred2 (although we do not recommend to do so).
-
All 3 LDpred2 functions now use an SFBM as input format for the correlation matrix.
-
Allow for multiple initial values for p in
snp_ldpred2_auto()
. -
Add function
coef_to_liab()
for e.g. converting heritability to the liability scale.
- Change default of parameter
alpha
of functionsnp_cor()
to1
.
-
Add functions
snp_ldpred2_inf()
,snp_ldpred2_grid()
andsnp_ldpred2_auto()
for running the new LDpred2-inf, LDpred2-grid and LDpred2-auto. -
Add functions
snp_ldsc()
andsnp_ldsc2()
for performing LD score regression. -
Add function
snp_asGeneticPos()
for transforming physical positions to genetic positions. -
Add function
snp_simuPheno()
for simulating phenotypes.
- Also use OpenMP for the parallelization of
snp_pcadapt()
,bed_pcadapt()
,snp_readBGEN()
andsnp_fastImputeSimple()
.
-
Parallelization of clumping algorithms has been modified. Before, chromosomes were imputed in parallel. Now, chromosomes are processed sequentially, but computations within each chromosome are performed in parallel thanks to OpenMP. This should prevent major slowdowns for very large samples sizes (due to swapping).
-
Use OpenMP to parallelize other functions as well (possibly only sequential until now).
-
Can now run
snp_cor()
in parallel. -
Parallelization of
snp_fastImpute()
has been modified. Before this version, chromosomes were imputed in parallel. Now, chromosomes are processed sequentially, but computation of correlation between variants and XGBoost models are performed using parallelization.
- Add function
snp_subset()
as alias of methodsubset()
for subsettingbigSNP
objects.
- Use new class
bed_light
internally to make parallel algorithms faster because they have to transfer less data to clusters. Also define differently functions used inbig_parallelize()
for the same reason.
- Use the new implementation of robust OGK Mahalanobis distance in {bigutilsr}.
- Fix error
object 'obj.bed' not found
insnp_readBed2()
.
- Cope with new read-only option in {bigstatsr} version >= 1.1.
- Add option
backingfile
tosubset.bigSNP()
.
- Add option
byrow
tobed_counts()
.
-
Add memory-mapping on PLINK (.bed) files with missing values + new functions:
bed()
bed_MAF()
bed_autoSVD()
bed_clumping()
bed_counts()
bed_cprodVec()
bed_pcadapt()
bed_prodVec()
bed_projectPCA()
bed_projectSelfPCA()
bed_randomSVD()
bed_scaleBinom()
bed_tcrossprodSelf()
download_1000G()
snp_modifyBuild()
snp_plinkKINGQC()
snp_readBed2()
sub_bed()
-
Add 3 parameters to
autoSVD()
:alpha.tukey
,min.mac
andmax.iter
. -
Remove option for changing ploidy (that was only partially supported).
-
Automatically apply
snp_gc()
topcadapt
.
- Add
snp_fastImputeSimple()
: fast imputation via mode, mean or sampling according to allele frequencies.
- Fix a bug in
snp_readBGEN()
that could not handle duplicated variants or individuals.
- When using
snp_grid_PRS()
, it now stores not only the FBM, but also the input parameters as attributes (the whole result basically).
-
Add 3 SCT functions
snp_grid_*()
to improve from Clumping and Thresholding (preprint coming soon). -
Add
snp_match()
function to match between summary statistics and some SNP information.
- Parameter
is.size.in.bp
is deprecated.
- Add parameter
read_as
forsnp_readBGEN()
. It is now possible to sample BGEN probabilities as random hard calls usingread_as = "random"
. Default remains reading probabilities as dosages.
-
For memory-mapping, now use mio instead of boost.
-
snp_clumping()
(andsnp_autoSVD()
) now has asize
that is inversely proportional tothr.r2
. -
snp_pruning()
is deprecated (and will be removed someday); now always usesnp_clumping()
.
- When reading bed files, switch reading of Os and 2s to be consistent with other software.
- Add function
snp_assocBGEN()
for computing quick association tests from BGEN files. Could be useful for quick screening of useful SNPs to read in bigSNP format. This function might be improved in the future.
- Change url to download PLINK 1.9.
- Add function
snp_readBGEN()
to read UK Biobank BGEN files inbigSNP
format.
-
Add parameter
is.size.in.bp
tosnp_autoSVD()
for the clumping part. -
Change the threshold of outlier detection in
snp_autoSVD()
(it now detects less outliers). See the documentation details if you don't have any information about SNPs.
- Keep up with {bigstatsr}.
- Provide function
snp_gene
(as a gist) to get genes corresponding to 'rs' SNP IDs thanks to package {rsnps} from rOpenSci. See README.
- Package {bigsnpr} is published in Bioinformatics.
- Faster defaults + possibility to estimate correlations based on a subset of individuals for
snp_fastImpute
. Also store information in an FBM (instead of a data frame) so that imputation can be done by parts (you can stop the imputation by killing the R processes and come back to it later). Note that the defaults used in the Bioinformatics paper werealpha = 0.02
andsize = 500
(instead of1e-4
and200
now, respectively). These new defaults are more stringent on the SNPs that are used, which makes the imputation faster (30 min instead of 42-48 min), without impacting accuracy (still 4.7-4.8% of errors).
- This package won't be on CRAN.
- No longer download PLINK automatically (because it is a CRAN policy violation).