### R code from vignette source '/home/mtmorgan/a/bioC/Courses/EMBO-BGI-2013/EMBOBGI/vignettes/Ranges.Rnw'

###################################################
### code chunk number 1: ranges
###################################################
library(IRanges)
eg <- IRanges(start= c(1, 10, 20), 
              end  = c(4, 10, 19), 
              names= c("A", "B", "C"))
## bigger
start <- floor(runif(10000, 1, 1000))
end <- start + floor(runif(10000, 0, 100))
ir <- IRanges(start, end)


###################################################
### code chunk number 2: ranges-accessors
###################################################
length(ir)
ir[1:4]
start(ir[1:4])
ir[width(ir) > 10 & width(ir) < 20]


###################################################
### code chunk number 3: ranges-ops
###################################################
ir <- IRanges(start=c(7, 9, 12, 14, 22:24),
              end=c(15, 11, 12, 18, 26, 27, 28))
shift(ir)
rir <- reduce(ir)
findOverlaps(ir, rir)


###################################################
### code chunk number 4: IRangesList
###################################################
irl <- split(ir, width(ir))
reduce(irl)


###################################################
### code chunk number 5: GRanges-simple
###################################################
library(GenomicRanges)
genes <- GRanges(seqnames=c("chr3R", "chrX"),
    ranges=IRanges(
      start=c(19967117, 18962306),
      end  =c(19973212, 18962925),
      names=c("FBgn0039155", "FBgn0085359")),
    strand=c("+", "-"),
    seqlengths=c(chr3R=27905053L, chrX=22422827L))
mcols(genes) <- 
    DataFrame(EntrezId=c("42865", "2768869"),
              Symbol=c("kal-1", "CG34330"))


###################################################
### code chunk number 6: GRanges-accessors
###################################################
width(genes)
genes$Symbol


###################################################
### code chunk number 7: GRanges-operations
###################################################
flank(genes, 1000)  ## 5' flanking range


###################################################
### code chunk number 8: List
###################################################
rl <- splitAsList(1:5, c("A", "B", "A", "B", "B"))
elementLengths(rl)
log(rl)


###################################################
### code chunk number 9: Rle
###################################################
cvg <- coverage(ir)
runLength(cvg)
runValue(cvg)
log(cvg)
as.numeric(log(cvg))
slice(cvg, lower=2)


###################################################
### code chunk number 10: SummarizedExperiment
###################################################
library(GenomicRanges)
?SummarizedExperiment
example(SummarizedExperiment)
sset
dim(assays(sset)[[1]])
colData(sset)
rowData(sset)


###################################################
### code chunk number 11: SummarizedExperiment-manip
###################################################
sset$Treatment
sset[, sset$Treatment == "ChIP"]
roi <- GRanges("chr1", IRanges(1, 249250621))
sset[sset %over% roi, ]


