RFoptions: Setting control arguments

Description Details Value See Also Examples

Description

RFoptions sets and returns control arguments for diverse packages (miraculix, RandomFields).

RFoptions should not be used within parallelizing R commands such as mclapply in package parallel.

Details

The specific parameters for miraculix are the following. See RFoptions in RandomFieldsUtils for further options.

any2bit

logical. If TRUE then always the most time efficient code is used among

  • TwoBit (no SIMD needed)

  • Packed (SSE2 needed)

  • Shuffle (SSSE3 needed)

  • Shuffle256 (AVX2 needed)

whatever is available.

Default : FALSE. This value might change to TRUE in future.

centered

logical or numerical. If TRUE the P matrix is substracted before the crossproduct of the the SNP matrix is calculated, see relationshipMatrix for the P matrix.

If numeric, then the length of this vector must equal the number of SNPs per individual. Then this vector is substracted for each individual. Furthermore, normalized is FALSE. As the size of centered can be large, this vector is never returned by RFoption(); instead NA is returned.

Note that centered also sets the value of normalized.

Default : TRUE

cores

Number of cores for multicore algorithms.

digits

OBSOLETE. scalar. If digits is negative no rounding is performed. Else the matrix P when calculating the relationsship matrix (M-P)^T(M-P) is rounded to the given number of absolute (not significant) digits.

Default : 3.0.

normalized

logical. If TRUE the relationship matrix is normalized by σ^2, see relationshipMatrix.

Its value is set to the value of centered whenever the value of centered is changed. So normalized must be set always after centered, e.g. RFoptions(centered=TRUE, normalized=FALSE), but not RFoptions(normalized=FALSE, centered=TRUE).

Default : TRUE

snpcoding

integer. Possible values are

Shuffle

two bit mini hash table based on SSSE3

Shuffle256

two bit mini hash table based on AVX2

Packed

4-bit integer arithmetic based on SSE2

Packed256

4-bit integer arithmetic based on AVX2

Multiply

16-bit integer arithmetic based on SSE2

Multiply256

16-bit integer arithmetic based on AVX2

Twobit

two bit hash table

Threebit

three bit hash table

Hamming2

method used in PLINK

Hamming3

method used in PLINK

AutoCoding

method is chosen by the programme itself

NoSNPcoding

no coding, i.e. 32 bit integer

NoSNPcodingR

No coding: 32 bit integer, R code. Only for testing purposes.

NoSNPcodingAVX

No coding: AVX implementation if available (double precision or integer).

In for loops that run through all available methods the constants FirstGenuineMethod and LastGenuineMethod might be useful.

In case of the package MoPBS or if interest is in the 2 bit methods only, use the constants FirstMoBPSmethod and LastMoBPSmethod.

In case the names of the method is needed, use SNPCODING_NAMES[snp_coding + 1].

Default : Shuffle

returnsigma

logical. Whether σ^2 shall be also returned when the relationship matrix is calculated.

Value

NULL if any argument is given, and the full list of arguments, otherwise.

See Also

RFoptions,

Examples

1
RFoptions()$genetics

Example output

Loading required package: RandomFieldsUtils
'miraculix' sees OMP, SSE2, but not AVX2, SSSE3.
Without appropriate SIMD instruction set, the calculations might be slow.
Consider recompiling 'miraculix'  with flags e.g.,
 install.packages("miraculix", configure.args="CXX_FLAGS=-march=native")
 install.packages("miraculix", configure.args="CXX_FLAGS=-mavx2")
Alternatively consider installing 'miraculix'
from https://github.com/schlather/miraculix, i.e.,
   install.packages("devtools")
   library(devtools)
   devtools::install_github("schlather/miraculix/pkg")
List of 6
 $ any2bit    : logi FALSE
 $ centered   : logi TRUE
 $ digits     : num 3
 $ normalized : logi TRUE
 $ returnsigma: logi FALSE
 $ snpcoding  : int 10

miraculix documentation built on Sept. 22, 2021, 5:07 p.m.