This function allows for various methods (see type
)
of segmenting based on the density of features x
.
segmentDensity(x, n, L_s = 1e+06, exclude = NULL, type = c("cbs", "hmm"))
the input GRanges, e.g. genes
the number of states
segment length
GRanges of excluded region
the type of segmentation, either
Circular Binary Segmentation "cbs"
(which will use 'DNAcopy' to segment) or
Hidden Markov Model "hmm"
(which will use 'RcppHMM').
These packages are not imported by nullranges, but must be installed
by the user
a GRanges with metadata columns containing:
state segmentation state
counts average number of genes
Circular binary segmentation (CBS):
Olshen, A. B., E. S. Venkatraman, R. Lucito, and M. Wigler. 2004. "Circular binary segmentation for the analysis of array-based DNA copy number data." Biostatistics 5 (4): 557–72.
Hidden Markov Model from RcppHMM:
Roberto A. Cardenas-Ovando, Julieta Noguez, and Claudia Rangel-Escareno. "Rcpp Hidden Markov Model." CRAN R package.
n <- 10000
library(GenomicRanges)
gr <- GRanges("chr1", IRanges(round(
c(runif(n/4,1,991), runif(n/4,1001,3991),
runif(n/4,4001,4991), runif(n/4,7001,9991))),
width=10), seqlengths=c(chr1=10000))
gr <- sort(gr)
exclude <- GRanges("chr1", IRanges(5001,6000), seqlengths=c(chr1=10000))
seg <- segmentDensity(gr, n=3, L_s=100, exclude=exclude, type="cbs")
#> Analyzing: Sample.1