library(fastseg)
#####################################################################
### the data
#####################################################################
data(coriell)
head(coriell)
samplenames <- colnames(coriell)[4:5]
data <- as.matrix(coriell[4:5])
data[is.na(data)] <- median(data, na.rm=TRUE)
chrom <- coriell$Chromosome
maploc <- coriell$Position
###########################################################
## GRanges
###########################################################
library("GenomicRanges")
## with both individuals
gr <- GRanges(seqnames=chrom,
ranges=IRanges(maploc, end=maploc))
mcols(gr) <- data
colnames(mcols(gr)) <- samplenames
res <- fastseg(gr)
segres <- toDNAcopyObj(
segData = res,
chrom = as.character(seqnames(gr)),
maploc = as.numeric(start(gr)),
genomdat = data,
sampleNames = samplenames)
## with one individual
gr2 <- gr
data2 <- as.matrix(data[, 1])
colnames(data2) <- "sample1"
mcols(gr2) <- data2
res <- fastseg(gr2)
segres <- toDNAcopyObj(
segData = res,
chrom = as.character(seqnames(gr)),
maploc = as.numeric(start(gr)),
genomdat = as.matrix(data2),
sampleNames = unique(mcols(res)$ID))
###########################################################
## vector
###########################################################
data2 <- data[, 1]
res <- fastseg(data2)
segres <- toDNAcopyObj(
segData = res,
chrom = rep(1, length(data2)),
maploc = 1:length(data2),
genomdat = as.matrix(data2),
sampleNames = "sample1")
###########################################################
## matrix
###########################################################
data2 <- data[1:400, ]
res <- fastseg(data2)
segres <- toDNAcopyObj(
segData = res,
chrom = rep(1, nrow(data2)),
maploc = 1:nrow(data2),
genomdat = as.matrix(data2),
sampleNames = colnames(data2))
#####################################################################
### plot the segments
#####################################################################
library(DNAcopy)
plot(segres)
Run the code above in your browser using DataLab