annotate 02_per_base_sequence_quality.Rmd @ 1:645291efd2e7 draft

working version
author mingchen0919
date Tue, 27 Feb 2018 10:36:24 -0500
parents f74fdae99053
children b9c9d1dacda6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
1 ---
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
2 output: html_document
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
3 ---
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
4
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
5 ```{r setup, include=FALSE, warning=FALSE, message=FALSE}
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
6 knitr::opts_chunk$set(
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
7 echo = as.logical(opt$X_e),
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
8 error = TRUE,
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
9 eval = TRUE
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
10 )
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
11 ```
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
12
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
13
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
14 ```{r 'function definition', echo=FALSE}
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
15 # Define a function to extract outputs for each module from fastqc output
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
16 extract_data_module = function(fastqc_data, module_name, header = TRUE, comment.char = "") {
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
17 f = readLines(fastqc_data)
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
18 start_line = grep(module_name, f)
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
19 end_module_lines = grep('END_MODULE', f)
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
20 end_line = end_module_lines[which(end_module_lines > start_line)[1]]
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
21 module_data = f[(start_line+1):(end_line-1)]
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
22 writeLines(module_data, '/tmp/temp.txt')
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
23 read.csv('/tmp/temp.txt', sep = '\t', header = header, comment.char = comment.char)
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
24 }
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
25 ```
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
26
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
27 # Per base sequence quality
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
28
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
29 ```{r 'per base sequence quality', fig.width=10}
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
30 ## reads 1
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
31 pbsq_1 = extract_data_module(paste0(opt$X_d, '/read_1_fastqc/fastqc_data.txt'), 'Per base sequence quality')
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
32 pbsq_1$id = 1:length(pbsq_1$X.Base)
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
33 pbsq_1$trim = 'before'
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
34
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
35 ## reads 2
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
36 pbsq_2 = extract_data_module(paste0(opt$X_d, '/read_2_fastqc/fastqc_data.txt'), 'Per base sequence quality')
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
37 pbsq_2$id = 1:length(pbsq_2$X.Base)
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
38 pbsq_2$trim = 'after'
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
39
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
40 comb_pbsq = rbind(pbsq_1, pbsq_2)
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
41 comb_pbsq$trim = factor(levels = c('before', 'after'), comb_pbsq$trim)
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
42
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
43 p = ggplot(data = comb_pbsq) +
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
44 geom_boxplot(mapping = aes(x = id,
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
45 lower = Lower.Quartile,
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
46 upper = Upper.Quartile,
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
47 middle = Median,
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
48 ymin = X10th.Percentile,
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
49 ymax = X90th.Percentile,
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
50 fill = "yellow"),
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
51 stat = 'identity') +
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
52 geom_line(mapping = aes(x = id, y = Mean, color = "red")) +
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
53 scale_x_continuous(breaks = pbsq_2$id, labels = pbsq_2$X.Base) +
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
54 scale_fill_identity() +
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
55 scale_color_identity() +
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
56 ylim(0, max(comb_pbsq$Upper.Quartile) + 5) +
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
57 xlab('Position in read (bp)') +
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
58 facet_grid(. ~ trim) +
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
59 theme(axis.text.x = element_text(angle=45))
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
60 p
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
61
645291efd2e7 working version
mingchen0919
parents: 0
diff changeset
62 ```