RAMEN 2.1.2
This patch focuses on the running time and memory usage of the package, and
fixes a few bugs:
- Fixed a bug in
lmGE()where the function would throw an error when a
covariate had a non-syntactic name (e.g. "cell type"). This happened whenever
the winning model was G+E or GxE. - Fixed a bug in
lmGE()where aselected_variablesobject in which no VML
had any selected genotype or environmental variable would throw an error. All
the VML are now returned with the basal model as their winner, which is what
already happened when only some of them were empty. - Fixed a bug in
selectVariables()where settingenvironmental_matrix = NULL, which the documentation describes as the way to run the variable
selection on the genotype alone, would throw an error instead. The
documentation of that argument was also narrowed: agenotype_matrixis
always required, and only the environmental one can be omitted.
The performance work touches findVML(), medCorVMR(), summarizeVML(),
selectVariables(), lmGE() and nullDistGE(). Most of it resolves look-ups
that were being repeated once per locus a single time up front instead, and
avoids keeping unnecessary copies of the genotype and methylation objects. Both
the running time and the memory each parallel worker needs are reduced.
Outputs are unchanged, with one exception: summarizeVML() now computes
medians with matrixStats::colMedians(). For VML with an even number of probes
the two middle values are averaged slightly differently than by median(), so
results can differ in the last representable digit (a relative difference of
about one machine epsilon). VML with an odd number of probes, including all
sVMPs, are unaffected.
The documentation of nullDistGE() now notes that the same seed is handed to
selectVariables() in every permutation, so the cross-validation folds are
shared across permutations.
On the testing side, a test was added checking that the variables
selectVariables() reports are the ones the underlying LASSO fits select, and
the tests that register a parallel back-end now restore the sequential one when
they finish, so that the back-end no longer leaks into the test files that run
after them.
Finally, the repository was transferred to ropensci after passing the peer
review process. All repository and website links were updated to reflect this
change.
The changes in this patch were conducted with help of Claude Opus 5.