Uses an efficient strategy for updating that takes advantage of the information in the existing factorization; always uses previous k. Recommended mainly when re-optimizing for higher lambda and when new lambda value is significantly different; otherwise may not return optimal results.
Usage
optimizeNewLambda(
object,
lambdaNew,
nIteration = 30,
seed = 1,
verbose = getOption("ligerVerbose"),
new.lambda = lambdaNew,
max.iters = nIteration,
rand.seed = seed,
thresh = NULL
)
Arguments
- object
liger object. Should have integrative factorization (e.g.
runINMF
) performed in advance.- lambdaNew
Numeric regularization parameter. Larger values penalize dataset-specific effects more strongly.
- nIteration
Number of block coordinate descent iterations to perform. Default
30
.- seed
Random seed to allow reproducible results. Default
1
. Used byrunINMF
factorization.- verbose
Logical. Whether to show information of the progress. Default
getOption("ligerVerbose")
which isTRUE
if users have not set.- new.lambda, max.iters, rand.seed
These arguments are now replaced by others and will be removed in the future. Please see usage for replacement.
- thresh
Deprecated. New implementation of iNMF does not require a threshold for convergence detection. Setting a large enough
nIteration
will bring it to convergence.
Value
Input object
with optimized factorization values updated.
including the W
matrix in liger object, and H
and
V
matrices in each ligerDataset object in the
datasets
slot.
Examples
pbmc <- normalize(pbmc)
#> ℹ Normalizing datasets "ctrl"
#> ℹ Normalizing datasets "stim"
#> ✔ Normalizing datasets "stim" ... done
#>
#> ℹ Normalizing datasets "ctrl"
#> ✔ Normalizing datasets "ctrl" ... done
#>
pbmc <- selectGenes(pbmc)
#> ℹ Selecting variable features for dataset "ctrl"
#> ✔ ... 168 features selected out of 249 shared features.
#> ℹ Selecting variable features for dataset "stim"
#> ✔ ... 166 features selected out of 249 shared features.
#> ✔ Finally 173 shared variable features are selected.
pbmc <- scaleNotCenter(pbmc)
#> ℹ Scaling dataset "ctrl"
#> ✔ Scaling dataset "ctrl" ... done
#>
#> ℹ Scaling dataset "stim"
#> ✔ Scaling dataset "stim" ... done
#>
if (requireNamespace("RcppPlanc", quietly = TRUE)) {
# Only running a few iterations for fast examples
pbmc <- runINMF(pbmc, k = 20, nIteration = 2)
pbmc <- optimizeNewLambda(pbmc, lambdaNew = 5.5, nIteration = 2)
}