###################################################
### chunk number 1: 
###################################################
options(width=40)


###################################################
### chunk number 2:  eval=FALSE
###################################################
## require(GenomeGraphs)


###################################################
### chunk number 3: 
###################################################
require(GenomeGraphs)
args(gdPlot)


###################################################
### chunk number 4: 
###################################################
lst <- list(makeBaseTrack(1:100, rnorm(100)), makeGenomeAxis())
gdPlot(lst)


###################################################
### chunk number 5: 
###################################################
gdPlot(list("mouse" = makeBaseTrack(1:100, rnorm(100), dp = DisplayPars(type = 'h', lwd = 3, color = c("blue", "green"))), 
            "base" = makeGenomeAxis()))


###################################################
### chunk number 6: 
###################################################
showDisplayOptions("BaseTrack")
showDisplayOptions("GenericArray")


###################################################
### chunk number 7: 
###################################################
mart <- useMart("ensembl", "scerevisiae_gene_ensembl")
data("seqDataEx")
head(seqDataEx$david)
gdPlot(makeGeneRegion(1e4, 5e4, chr = "IV", strand = "+", biomart = mart), 1e4, 5e4)


###################################################
### chunk number 8: 
###################################################
array <- as.data.frame(seqDataEx$david)
lst <- lapply(c("+", "-"), function(s) {
    a <- as.matrix(subset(array, strand == ifelse(s == "+", 1, -1)))
    c(makeGenericArray(a[,"expr", drop = FALSE], a[,"location"]),
      makeGeneRegion(start = min(array[,"location"]),
                     end = max(array[,"location"]),
                     chr = "IV", 
                     strand = s, 
                     biomart = mart, dp = DisplayPars(plotId=TRUE, idRotation = 0, cex = .5, idColor = "black")))
})
gdPlot(yeastLst <- c(unlist(lst), makeGenomeAxis()))


###################################################
### chunk number 9: 
###################################################
hMart <- useMart("ensembl", "hsapiens_gene_ensembl")
gdPlot(makeTranscript("ENSG00000168309", biomart = hMart))


###################################################
### chunk number 10: 
###################################################
data("unrData", package = "GenomeGraphs")
class(unrData)
head(unrPositions, 2)
exon <- makeExonArray(intensity = unrData, probeStart = unrPositions[,3], 
                      probeEnd = unrPositions[,4], probeId = as.character(unrPositions[,1]), 
                      nProbes = unrNProbes, 
                      dp = DisplayPars(color = "blue", mapColor = "dodgerblue2"), 
                      displayProbesets = FALSE)
geneModel <- makeGeneModel(start = unrPositions[,3], end = unrPositions[,4])
gdPlot(list(exon, geneModel))


###################################################
### chunk number 11: 
###################################################
ovlay <- makeRectangleOverlay(1301000, 1302000)
gdPlot(yeastLst, overlays = ovlay)


###################################################
### chunk number 12: 
###################################################
array <- array[array$strand == 1, ]
anno <- yeastLst[[2]]@ens
anno <- anno[anno$ensembl_gene_id == "YDR418W", c("exon_chrom_start", "exon_chrom_end")]
foldChange <- paste("fold-change:", round(mean(split(array$expr, findInterval(array$location, as.numeric(anno)))[[2]]), 2))
ovlay <- makeRectangleOverlay(1301500, 1302500, region = c(1,2), dp = DisplayPars(alpha = .5))
tovlay <- makeTextOverlay(foldChange, 1303500, .75, region = c(1,1), dp = DisplayPars(color="black"))
gdPlot(yeastLst, overlays = c(ovlay, tovlay))


###################################################
### chunk number 13: 
###################################################
require(tilingArray)
Y <- yeastLst[[1]]
s <- segment(Y@intensity, maxk = 500, maxseg = 20)
bins <- findInterval(1:length(Y@intensity), s@breakpoints[[7]])
means <- tapply(Y@intensity, bins, mean)
ranges <- do.call(rbind, tapply(Y@probeStart, bins, range))
Y@segmentation <- makeSegmentation(ranges[,1], ranges[,2], means)
gdPlot(Y)


###################################################
### chunk number 14: 
###################################################
S <- seq(1, 100, by = 20)
E <- S + rpois(length(S), 10)

anno <- makeAnnotationTrack(start = S, end = E, feature = "gene", dp = DisplayPars("gene" = "darkblue"))
gdPlot(anno, minBase = 0, maxBase = 100)


###################################################
### chunk number 15: 
###################################################
anno <- read.csv("http://wiki.biostat.berkeley.edu/~bullard/aleatoria/yeast_anno_4.csv")
data("seqDataEx")

aTrack <- makeAnnotationTrack(start = anno$start[anno$feature == "CDS"], 
                              end = anno$end[anno$feature == "CDS"], feature = "CDS", 
                              ID = anno$name[anno$feature == "CDS"],
                              dp = DisplayPars("CDS" = "blue", plotId = TRUE, idColor = "black", idRotation = 0))
bTrack <- makeBaseTrack(seqDataEx$conservation[,"location"], 
              seqDataEx$conservation[,"score"], dp = DisplayPars(type = 'p', lwd = .2))
gdPlot(list(bTrack, aTrack), minBase = 1300000 - 1500, maxBase = 1307000 + 2500)