```{r setup, include=FALSE, warning=FALSE, message=FALSE}
knitr::opts_knit$set(progress = FALSE)
knitr::opts_chunk$set(error = TRUE, echo = FALSE)
```

### Per tile sequence quality

```{r 'per tile sequence quality', fig.width=10}
## check if 'per tile sequence quality' module exits or not
check_ptsq = grep('Per tile sequence quality', readLines(paste0(opt$X_d, '/read_1_fastqc/fastqc_data.txt')))
if (length(check_ptsq) > 0) {
    ## reads 1
  ptsq_1 = extract_data_module(paste0(opt$X_d, '/read_1_fastqc/fastqc_data.txt'), 'Per tile sequence quality')
  ptsq_1$trim = 'before'
  
  ## reads 2
  ptsq_2 = extract_data_module(paste0(opt$X_d, '/read_2_fastqc/fastqc_data.txt'), 'Per tile sequence quality')
  ptsq_2$trim = 'after'
  
  comb_ptsq = rbind(ptsq_1, ptsq_2)
  comb_ptsq$trim = factor(levels = c('before', 'after'), comb_ptsq$trim)
  comb_ptsq$Base = factor(levels = unique(comb_ptsq$Base), comb_ptsq$Base)
  
  # convert integers to charaters
  # comb_ptsq$Tile = as.character(comb_ptsq$X.Tile)
  
  p = ggplot(data = comb_ptsq) +
    geom_raster(mapping = aes(x = Base, y = X.Tile, fill = Mean)) + 
    facet_grid(. ~ trim) + 
    scale_x_discrete(name = "Position in read (bp)") +
    scale_y_continuous(name = "") +
    scale_fill_gradient(low = "blue", high = "red") +
    theme(axis.text.x = element_text(size = 5, angle = 90),
          axis.text.y = element_text(size = 5),
        panel.background = element_rect(fill = NA))
  ggplotly(p)
} else {
  print('No "per tile sequence quality" data')
}
```
