library("PSCBS")
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Simulating copy-number data
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
set.seed(0xBEEF)
# Number of loci
J <- 1000
mu <- double(J)
mu[200:300] <- mu[200:300] + 1
mu[350:400] <- NA # centromere
mu[650:800] <- mu[650:800] - 1
eps <- rnorm(J, sd=1/2)
y <- mu + eps
x <- sort(runif(length(y), max=length(y))) * 1e5
w <- runif(J)
w[650:800] <- 0.001
## Create multiple chromosomes
data <- knownSegments <- list()
for (cc in 1:3) {
data[[cc]] <- data.frame(chromosome=cc, y=y, x=x)
knownSegments[[cc]] <- data.frame(
chromosome=c( cc, cc, cc),
start =x[c( 1, 350, 401)],
end =x[c(349, 400, J)]
)
}
data <- Reduce(rbind, data)
str(data)
knownSegments <- Reduce(rbind, knownSegments)
str(knownSegments)
message("*** segmentByCBS() via futures ...")
message("*** segmentByCBS() via futures with 'future' attached ...")
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("- segmentByCBS() using '%s' futures ...", strategy))
plan(strategy)
fit <- segmentByCBS(data, seed=0xBEEF, verbose=TRUE)
fits[[strategy]] <- fit
stopifnot(all.equal(fit, fits[[1]]))
}
message("*** segmentByCBS() via futures with known segments ...")
fits <- list()
dataT <- subset(data, chromosome == 1)
for (strategy in strategies) {
message(sprintf("- segmentByCBS() w/ known segments using '%s' futures ...", strategy))
plan(strategy)
fit <- segmentByCBS(dataT, knownSegments=knownSegments, seed=0xBEEF, verbose=TRUE)
fits[[strategy]] <- fit
stopifnot(all.equal(fit, fits[[1]]))
}
message("*** segmentByCBS() via futures ... DONE")
## Cleanup
plan(oplan)
rm(list=c("fits", "dataT", "data", "fit"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.