Nothing
context('Test 2-level variable correction: cell_lines with cell_type and dataset')
## library(harmony)
## data(cell_lines)
## obj <- RunHarmony(
## cell_lines$scaled_pcs, cell_lines$meta_data,
## vars_use = c('cell_type', 'dataset'),
## theta = c(1, 1), nclust = 50, max_iter = 10,
## return_object = TRUE, verbose = FALSE,
## .options = harmony_options(max.iter.cluster = 10)
## )
## test_that('two-variable run: core dimensions are consistent', {
## expect_equal(dim(obj$Y), c(obj$d, obj$K))
## expect_equal(dim(obj$getZcorr()), c(obj$d, obj$N))
## expect_equal(dim(obj$getZorig()), c(obj$d, obj$N))
## expect_equal(dim(obj$R), c(obj$K, obj$N))
## })
## test_that('two-variable run: O and E columns span all levels of both covariates', {
## n_levels <- length(unique(cell_lines$meta_data$cell_type)) +
## length(unique(cell_lines$meta_data$dataset))
## expect_equal(ncol(obj$O), n_levels)
## expect_equal(ncol(obj$E), n_levels)
## })
## test_that('two-variable run: R defines proper probability distributions', {
## expect_gte(min(obj$R), 0)
## expect_lte(max(obj$R), 1)
## expect_equal(colSums(obj$R), rep(1, obj$N), tolerance = 1e-5)
## })
## test_that('two-variable run: corrected embedding has no NA or infinite values', {
## Z_corr <- obj$getZcorr()
## expect_true(all(!is.na(Z_corr)))
## expect_true(all(!is.infinite(Z_corr)))
## })
## test_that('two-variable run: higher theta reduces batch/cluster association for both covariates', {
## obj_lo <- RunHarmony(
## cell_lines$scaled_pcs, cell_lines$meta_data,
## vars_use = c('cell_type', 'dataset'),
## theta = c(0, 0), nclust = 20, max_iter = 2,
## return_object = TRUE, verbose = FALSE
## )
## obj_hi <- RunHarmony(
## cell_lines$scaled_pcs, cell_lines$meta_data,
## vars_use = c('cell_type', 'dataset'),
## theta = c(2, 2), nclust = 20, max_iter = 2,
## return_object = TRUE, verbose = FALSE
## )
## chi2_lo <- sum(((obj_lo$O - obj_lo$E) ^ 2) / obj_lo$E)
## chi2_hi <- sum(((obj_hi$O - obj_hi$E) ^ 2) / obj_hi$E)
## expect_gt(chi2_lo, chi2_hi)
## })
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.