### R code from vignette source 'seqPattern.Rnw'

###################################################
### code chunk number 1: style-Sweave
###################################################
BiocStyle::latex()


###################################################
### code chunk number 2: setup
###################################################
options(width = 80)
olocale=Sys.setlocale(locale="C")


###################################################
### code chunk number 3: seqPattern.Rnw:93-94
###################################################
library(seqPattern)


###################################################
### code chunk number 4: seqPattern.Rnw:106-109
###################################################
data(zebrafishPromoters)
zebrafishPromoters
head(zebrafishPromoters@elementMetadata)


###################################################
### code chunk number 5: seqPattern.Rnw:125-127
###################################################
data(zebrafishPromoters24h)
head(zebrafishPromoters24h)


###################################################
### code chunk number 6: seqPattern.Rnw:150-151
###################################################
library(BSgenome.Drerio.UCSC.danRer7)


###################################################
### code chunk number 7: seqPattern.Rnw:158-161
###################################################
data(zebrafishPromoters24h)
nrow(zebrafishPromoters24h)
head(zebrafishPromoters24h)


###################################################
### code chunk number 8: seqPattern.Rnw:176-188
###################################################
# create GRanges of dominant TSS position with associated metadata
zebrafishPromotersTSS <- GRanges(seqnames = zebrafishPromoters24h$chr,
            ranges = IRanges(start = zebrafishPromoters24h$dominantTSS, 
            end = zebrafishPromoters24h$dominantTSS), 
            strand = zebrafishPromoters24h$strand, 
            interquantileWidth = zebrafishPromoters24h$interquantileWidth, 
            seqlengths = seqlengths(Drerio))
# get regions flanking TSS - 400 bp upstream and 800 bp downstream
zebrafishPromotersTSSflank <- promoters(zebrafishPromotersTSS, upstream = 400, 
                                        downstream = 800)
# obtain genomic sequence of flanking regions
zebrafishPromotersTSSflankSeq <- getSeq(Drerio, zebrafishPromotersTSSflank)


###################################################
### code chunk number 9: seqPattern.Rnw:204-208 (eval = FALSE)
###################################################
## plotPatternDensityMap(regionsSeq = zebrafishPromotersTSSflankSeq, 
##             patterns = c("AA", "TA", "CG", "GC"), 
##             seqOrder = order(zebrafishPromotersTSSflank$interquantileWidth), 
##             flankUp = 400, flankDown = 800, color = "blue")


###################################################
### code chunk number 10: seqPattern.Rnw:264-268 (eval = FALSE)
###################################################
## plotPatternDensityMap(regionsSeq = zebrafishPromotersTSSflankSeq, 
##             patterns = c("AA", "TA", "CG", "GC"), 
##             seqOrder = order(zebrafishPromotersTSSflank$interquantileWidth),
##             flankUp = 400, flankDown = 800, useMulticore = TRUE, nrCores = 4)


###################################################
### code chunk number 11: seqPattern.Rnw:310-314 (eval = FALSE)
###################################################
## plotPatternDensityMap(regionsSeq = zebrafishPromotersTSSflankSeq, 
##             patterns = c("WW", "SS"), 
##             seqOrder = order(zebrafishPromotersTSSflank$interquantileWidth), 
##             flankUp = 400, flankDown = 800, color = "cyan", labelCol = "white")


###################################################
### code chunk number 12: seqPattern.Rnw:333-345 (eval = FALSE)
###################################################
## # make index of sharp and broad promoters
## sIdx <- zebrafishPromotersTSSflank$interquantileWidth <= 9
## bIdx <- zebrafishPromotersTSSflank$interquantileWidth > 9
## # plot average dinucleotide profile for sharp promoters
## par(mfrow = c(1,2), mar = c(4.5,4,1,1))
## plotPatternOccurrenceAverage(regionsSeq = zebrafishPromotersTSSflankSeq[sIdx], 
##             patterns = c("WW", "SS"), flankUp = 400, flankDown = 800, 
##             smoothingWindow = 3, color = c("red3", "blue3"), cex.axis = 0.9)
## # plot average dinucleotide profile for broad promoters
## plotPatternOccurrenceAverage(regionsSeq = zebrafishPromotersTSSflankSeq[bIdx], 
##             patterns = c("WW", "SS"), flankUp = 400, flankDown = 800, 
##             smoothingWindow = 3, color = c("red3", "blue3"), cex.axis = 0.9)


###################################################
### code chunk number 13: seqPattern.Rnw:370-375
###################################################
# get regions flanking dominant TSS - 200bp upstream and downstream
zebrafishPromotersTSSflank <- promoters(zebrafishPromotersTSS, upstream = 200, 
                                        downstream = 200)
# obtain genomic sequence of the flanking regions
zebrafishPromotersTSSflankSeq <- getSeq(Drerio, zebrafishPromotersTSSflank)


###################################################
### code chunk number 14: seqPattern.Rnw:377-389 (eval = FALSE)
###################################################
## # plot density of TATA-box consensus sequence in pink
## plotPatternDensityMap(regionsSeq = zebrafishPromotersTSSflankSeq, 
##             patterns = c("TATAWAWR", "YWTWTATA"), 
##             seqOrder = order(zebrafishPromotersTSSflank$interquantileWidth), 
##             flankUp = 200, flankDown = 200, nBin = c(400, 10000), 
##             bandWidth = c(1,6), color = "pink", addPatternLabel = FALSE)
##  # plot density of GC-box consensus sequence in purple
## plotPatternDensityMap(regionsSeq = zebrafishPromotersTSSflankSeq, 
##             patterns = c("RGGMGGR", "YCCKCCY"), 
##             seqOrder = order(zebrafishPromotersTSSflank$interquantileWidth), 
##             flankUp = 200, flankDown = 200, nBin = c(400, 10000), 
##             bandWidth = c(1,6), color = "purple", addPatternLabel = FALSE)


###################################################
### code chunk number 15: seqPattern.Rnw:429-431
###################################################
data(TBPpwm)
TBPpwm


###################################################
### code chunk number 16: seqPattern.Rnw:439-443 (eval = FALSE)
###################################################
## plotMotifDensityMap(regionsSeq = zebrafishPromotersTSSflankSeq, 
##             motifPWM = TBPpwm, minScore = "90%", 
##             seqOrder = order(zebrafishPromotersTSSflank$interquantileWidth),
##             flankUp = 200, flankDown = 200, color = "red")


###################################################
### code chunk number 17: seqPattern.Rnw:450-454 (eval = FALSE)
###################################################
## plotMotifScanScores(regionsSeq = zebrafishPromotersTSSflankSeq, 
##             motifPWM = TBPpwm,
##             seqOrder = order(zebrafishPromotersTSSflank$interquantileWidth),
##             flankUp = 200, flankDown = 200)


###################################################
### code chunk number 18: seqPattern.Rnw:481-494 (eval = FALSE)
###################################################
## # make index of sharp and broad promoters
## sIdx <- zebrafishPromotersTSSflank$interquantileWidth <= 9
## bIdx <- zebrafishPromotersTSSflank$interquantileWidth > 9
## # plot average motif occurrence profile for sharp promoters
## plotMotifOccurrenceAverage(regionsSeq = zebrafishPromotersTSSflankSeq[sIdx], 
##             motifPWM = TBPpwm, minScore = "90%", flankUp = 200, flankDown = 200, 
##             smoothingWindow = 3, color = c("red3"), cex.axis = 0.9)
## # add average motif occurrence profile for broad promoters to the existing plot
## plotMotifOccurrenceAverage(regionsSeq = zebrafishPromotersTSSflankSeq[bIdx], 
##             motifPWM = TBPpwm, minScore = "90%", flankUp = 200, flankDown = 200, 
##             smoothingWindow = 3, color = c("blue3"), add = TRUE)
## legend("topright", legend = c("sharp", "broad"), col = c("red3", "blue3"), 
## bty = "n", lwd = 1)


###################################################
### code chunk number 19: seqPattern.Rnw:519-524
###################################################
motifOccurrence <- motifScanHits(regionsSeq = 
            zebrafishPromotersTSSflankSeq[1:50], 
            motifPWM = TBPpwm, minScore = "90%", seqOrder = 
            order(zebrafishPromotersTSSflank$interquantileWidth[1:50]))
head(motifOccurrence)


###################################################
### code chunk number 20: seqPattern.Rnw:538-543
###################################################
scanScores <- motifScanScores(regionsSeq = zebrafishPromotersTSSflankSeq[1:50], 
            motifPWM = TBPpwm, seqOrder = 
            order(zebrafishPromotersTSSflank$interquantileWidth[1:50]))
dim(scanScores)
scanScores[1:6,1:6]


###################################################
### code chunk number 21: seqPattern.Rnw:552-553
###################################################
sessionInfo()
