## ----style, echo = FALSE, results = 'asis'------------------------------------
BiocStyle::markdown()
knitr::opts_chunk$set(eval=TRUE)

## ----loadLibs, message=FALSE, warning=FALSE-----------------------------------
library(IONiseR)
library(ggplot2)
library(gridExtra)

## ----readData, eval=FALSE-----------------------------------------------------
# fast5files <- list.files(path = "/path/to/data/", pattern = ".fast5$", full.names = TRUE)
# example.summary <- readFast5Summary( fast5files )

## ----loadData-----------------------------------------------------------------
library(minionSummaryData)
data(s.typhi.rep1)

## ----exampleData--------------------------------------------------------------
s.typhi.rep1

## ----extractData1, warning=FALSE----------------------------------------------
baseCalled(s.typhi.rep1)

## ----extractData2, warning=FALSE----------------------------------------------
baseCalled(s.typhi.rep1[1:2])

## ----summaryPlots1, fig.height=5, fig.width=12.5, dev='png', warning=FALSE----
p1 <- plotReadAccumulation(s.typhi.rep1)
p2 <- plotActiveChannels(s.typhi.rep1)
grid.arrange(p1, p2, ncol = 2)

## ----readCategories, fig.height=5, fig.width=12.5, dev='png', warning=FALSE----
p1 <- plotReadCategoryCounts(s.typhi.rep1)
p2 <- plotReadCategoryQuals(s.typhi.rep1)
grid.arrange(p1, p2, ncol = 2)

## ----summaryPlots2, fig.height=5, fig.width=12.5, dev='png', warning=FALSE----
p1 <- plotEventRate(s.typhi.rep1)
p2 <- plotBaseProductionRate(s.typhi.rep1)
grid.arrange(p1, p2, ncol = 2)

## ----numReads, fig.height=4.8, fig.width=14.5, dev='png', warning=FALSE-------
p1 <- layoutPlot(s.typhi.rep1, attribute = "nreads")
p2 <- layoutPlot(s.typhi.rep1, attribute = "kb")
grid.arrange(p1, p2, ncol = 2)

## ----heatmapExample, fig.height=4.8, fig.width=14.5, dev='png', message=FALSE, warning=FALSE----
library(dplyr)

read_count_2D <- baseCalled(s.typhi.rep1) %>% ## start with base called reads
  filter(strand == 'template') %>% ## keep template so we don't count things twice
  left_join(readInfo(s.typhi.rep1), by = 'id') %>% ## channel stored in @readInfo slot, match by id column
  group_by(channel) %>% ## group according to channel
  summarise(d2_count = length(which(full_2D == TRUE)), ## count those with full 2D status
            d2_prop = length(which(full_2D == TRUE)) / n()) ## divide by total count of reads from channel

## plot side-by-side
p1 <- channelHeatmap(read_count_2D, zValue = 'd2_count')
p2 <- channelHeatmap(read_count_2D, zValue = 'd2_prop')
grid.arrange(p1, p2, ncol = 2)

## ----channelActivity, fig.height=4.8, fig.width=10, dev='png', message=FALSE, warning=FALSE----
data(s.typhi.rep3, package = 'minionSummaryData')
## we will plot the median event signal for each read on z-axis
z_scale = select(eventData(s.typhi.rep3), id, median_signal)
channelActivityPlot( s.typhi.rep3, zScale = z_scale )

## ----pentamerCorrelation, fig.height=5, fig.width=6.5, dev='png', message=FALSE, warning=FALSE----
plotKmerFrequencyCorrelation( s.typhi.rep3, only2D = FALSE )

## ----combinedplots, eval=FALSE------------------------------------------------
# p1 <- channelActivityPlot(dat, select(eventData(dat), id, median_signal))
# p2 <- plotKmerFrequencyCorrelation(dat)
# grid.arrange(p1, p2, ncol = 2)

## ----writefastq, message=FALSE------------------------------------------------
library(ShortRead)
writeFastq( fastq( s.typhi.rep1 ), file = tempfile() )

## ----writefastq2--------------------------------------------------------------
writeFastq( fastq2D( s.typhi.rep1 ), file = tempfile() )

## ----fast5toFastq-------------------------------------------------------------
fast5files <- system.file('extdata', 'example.fast5', package = "IONiseR")
fast5toFastq(files = fast5files, fileName = "test", outputDir = tempdir(), 
             strand = 'all', ncores = 1)
list.files(path = tempdir(), pattern = "*.fq.gz$")

