library(PSCBS)
library(utils)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Load SNP microarray data
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
data <- PSCBS::exampleData("paired.chr01")
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Paired PSCBS segmentation
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Drop single-locus outliers
dataS <- dropSegmentationOutliers(data)
# Run light-weight tests by default
if (Sys.getenv("_R_CHECK_FULL_") == "") {
# Use only every 5th data point
dataS <- dataS[seq(from=1, to=nrow(data), by=5),]
# Number of segments (for assertion)
nSegs <- 4L
} else {
# Full tests
nSegs <- 11L
}
str(dataS)
## Create multiple chromosomes
data <- list()
for (cc in 1:3) {
dataS$chromosome <- cc
data[[cc]] <- dataS
}
data <- Reduce(rbind, data)
str(data)
message("*** segmentByPairedPSCBS() via futures ...")
library("future")
oplan <- plan()
strategies <- c("sequential", "multisession")
## Test 'future.batchtools' futures?
pkg <- "future.batchtools"
if (require(pkg, character.only=TRUE)) {
strategies <- c(strategies, "batchtools_local")
}
message("Future strategies to test: ", paste(sQuote(strategies), collapse=", "))
fits <- list()
for (strategy in strategies) {
message(sprintf("- segmentByPairedPSCBS() using '%s' futures ...", strategy))
plan(strategy)
fit <- segmentByPairedPSCBS(data, seed=0xBEEF, verbose=TRUE)
fits[[strategy]] <- fit
equal <- all.equal(fit, fits[[1]])
if (!equal) {
str(fit)
str(fits[[1]])
print(equal)
stop(sprintf("segmentByPairedPSCBS() using '%s' futures does not produce the same results as when using '%s' futures", strategy, names(fits)[1]))
}
}
message("*** segmentByPairedPSCBS() via futures ... DONE")
message("*** segmentByPairedPSCBS() via futures with known segments ...")
fits <- list()
dataT <- subset(data, chromosome == 1)
gaps <- findLargeGaps(dataT, minLength=2e6)
knownSegments <- gapsToSegments(gaps)
for (strategy in strategies) {
message(sprintf("- segmentByPairedPSCBS() w/ known segments using '%s' futures ...", strategy))
plan(strategy)
fit <- segmentByPairedPSCBS(dataT, knownSegments=knownSegments, seed=0xBEEF, verbose=TRUE)
fits[[strategy]] <- fit
equal <- all.equal(fit, fits[[1]])
if (!equal) {
str(fit)
str(fits[[1]])
print(equal)
stop(sprintf("segmentByPairedPSCBS() w/ known segments using '%s' futures does not produce the same results as when using '%s' futures", strategy, names(fits)[1]))
}
}
message("*** segmentByPairedPSCBS() via futures ... DONE")
## Cleanup
plan(oplan)
rm(list=c("fits", "data", "fit"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.