Nothing
data("pbmc", package = "rliger")
withNewH5Copy <- function(fun) {
ctrlpath.orig <- system.file("extdata/ctrl.h5", package = "rliger")
stimpath.orig <- system.file("extdata/stim.h5", package = "rliger")
if (!file.exists(ctrlpath.orig))
stop("Cannot find original h5 file at: ", ctrlpath.orig)
# if (file.exists("ctrltest.h5")) file.remove("ctrltest.h5")
# if (file.exists("stimtest.h5")) file.remove("stimtest.h5")
# pwd <- getwd()
# # Temp setting for GitHub Actions
# fsep <- ifelse(Sys.info()["sysname"] == "Windows", "\\", "/")
# if (Sys.info()["sysname"] == "Windows") {
# pwd <- file.path("C:\\Users", Sys.info()["user"], "Documents", fsep = fsep)
# }
# ctrlpath <- file.path(pwd, "ctrltest.h5", fsep = fsep)
# stimpath <- file.path(pwd, "stimtest.h5", fsep = fsep)
ctrlpath <- tempfile(pattern = "ctrltest_", fileext = ".h5")
stimpath <- tempfile(pattern = "stimtest_", fileext = ".h5")
cat("Working ctrl H5 file path: ", ctrlpath, "\n")
cat("Working stim H5 file path: ", stimpath, "\n")
file.copy(ctrlpath.orig, ctrlpath, copy.mode = TRUE)
file.copy(stimpath.orig, stimpath, copy.mode = TRUE)
if (!file.exists(ctrlpath))
stop("Cannot find copied h5 file at: ", ctrlpath)
if (!file.exists(stimpath))
stop("Cannot find copied h5 file at: ", stimpath)
fun(list(ctrl = ctrlpath, stim = stimpath))
if (file.exists(ctrlpath)) unlink(ctrlpath)
if (file.exists(stimpath)) unlink(stimpath)
}
closeH5Liger <- function(object) {
for (d in names(object)) {
if (isH5Liger(object, d)) {
h5file <- getH5File(object, d)
h5file$close()
}
}
}
process <- function(object) {
object <- normalize(object)
object <- selectGenes(object)
object <- scaleNotCenter(object)
object <- runOnlineINMF(object, k = 20, minibatchSize = 100)
object <- quantileNorm(object)
object <- runUMAP(object)
}
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# liger object creation
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
context("subset liger object")
test_that("subsetLiger", {
expect_message(a <- subsetLiger("a"), "`object` is not a ")
expect_identical(a, "a")
skip_if_not_installed("RcppPlanc")
pbmc <- process(pbmc)
expect_error(subsetLiger(pbmc, featureIdx = 1:3),
"Feature subscription from a")
expect_error(
expect_warning(subsetLiger(pbmc,
featureIdx = c("fakeGene1", "fakeGene2")),
"2 out of 2 given features were not found"),
"No feature can be retrieved"
)
expect_is(retrieveCellFeature(pbmcPlot, 1, slot = "H"), "data.frame")
})
context("subset ligerDataset object")
test_that("subsetH5LigerDataset", {
skip_if_not_installed("RcppPlanc")
withNewH5Copy(
function(rawList, arg1, arg2) {
ctrlfile <- rawList$ctrl
stimfile <- rawList$stim
pbmcH5 <- createLiger(rawList)
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# Then whatever test with pbmc. For example:
pbmcH5 <- process(pbmcH5)
ctrl <- dataset(pbmcH5, "ctrl")
ctrlSmall <- subsetLiger(ctrl, featureIdx = 1:10, cellIdx = 1:10, newH5 = FALSE)
expect_false(isH5Liger(ctrlSmall))
path <- dirname(h5fileInfo(ctrl, "filename"))
newName <- file.path(path, "ctrltest.h5.small.h5")
expect_message(
subsetLigerDataset(ctrl, featureIdx = 1:10, cellIdx = 1:10,
newH5 = TRUE,
filename = newName,
returnObject = FALSE),
"Cannot set `returnObject = FALSE`"
)
expect_true(file.exists(newName))
unlink(newName)
expect_message(
rliger:::subsetH5LigerDatasetToMem(letters),
"`object` is not a "
)
expect_message(
rliger:::subsetH5LigerDatasetToMem(dataset(pbmc, "ctrl")),
"`object` is not HDF5 based."
)
valueList <- rliger:::subsetH5LigerDatasetToMem(
ctrl, 1:20, 1:20, returnObject = FALSE
)
expect_is(valueList, "list")
expect_message(
rliger:::subsetH5LigerDatasetToH5(letters),
"`object` is not a"
)
expect_message(
rliger:::subsetH5LigerDatasetToH5(dataset(pbmc, "ctrl")),
"`object` is not HDF5 based."
)
expect_no_error(
subsetH5LigerDataset(ctrl, 1:20, 1:20)
)
ctrlSmallH5 <- rliger:::subsetH5LigerDataset(
ctrl, 1:20, 1:20, filenameSuffix = "small2"
)
newPath <- paste0(ctrlfile, ".small2.h5")
expect_true(file.exists(newPath))
unlink(newPath)
expect_no_error(
rliger:::subsetH5LigerDataset(ctrl, 1:20, 1:20, newH5 = TRUE,
useSlot = "normData",
filenameSuffix = "small3")
)
newPath <- paste0(ctrlfile, ".small3.h5")
expect_true(file.exists(newPath))
unlink(newPath)
expect_no_error(
subsetH5LigerDataset(ctrl, 1:20, 1:20, useSlot = "scaleData")
)
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# And must close with:
closeH5Liger(pbmcH5)
}
)
})
unlink(grep("ctrltest", list.files(), value = TRUE))
unlink(grep("stimtest", list.files(), value = TRUE))
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.