Mercurial > repos > jdv > nanopore_qc
annotate nanopore_qc.R @ 10:e5a2720176d1 draft default tip
"planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 70f0b9a3a9835fd60acbb6d08efd0d5c15c97458"
| author | jdv |
|---|---|
| date | Fri, 23 Aug 2019 18:16:53 -0400 |
| parents | 0cf41189f086 |
| children |
| rev | line source |
|---|---|
|
0
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
1 #!/usr/bin/Rscript |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
2 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
3 # MinionQC version 1.0 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
4 # Copyright (C) 2017 Robert Lanfear |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
5 # |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
6 # This program is free software: you can redistribute it and/or modify it under |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
7 # the terms of the GNU General Public License as published by the Free Software |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
8 # Foundation, either version 3 of the License, or (at your option) any later |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
9 # version. |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
10 # |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
11 # This program is distributed in the hope that it will be useful, but WITHOUT |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
13 # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
14 # details. You should have received a copy of the GNU General Public License |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
15 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
16 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
17 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
18 # supress warnings |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
19 options(warn=-1) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
20 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
21 library(ggplot2) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
22 library(plyr) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
23 library(reshape2) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
24 library(readr) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
25 library(yaml) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
26 suppressMessages(library(scales)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
27 #library(parallel) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
28 library(futile.logger) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
29 suppressPackageStartupMessages(library(data.table)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
30 suppressPackageStartupMessages(library(optparse)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
31 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
32 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
33 # option parsing # |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
34 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
35 parser <- OptionParser() |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
36 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
37 parser <- add_option(parser, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
38 opt_str = c("-i", "--input"), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
39 type = "character", |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
40 dest = 'input.file', |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
41 help="Input file or directory (required). Either a full path to a sequence_summary.txt file, or a full path to a directory containing one or more such files. In the latter case the directory is searched recursively." |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
42 ) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
43 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
44 parser <- add_option(parser, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
45 opt_str = c("-o", "--outputdirectory"), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
46 type = "character", |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
47 dest = 'output.dir', |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
48 help="Output directory (required). If a single sequencing_summary.txt file is passed as input, then the output directory will contain just the plots associated with that file. If a directory containing more than one sequencing_summary.txt files is passed as input, then the plots will be put into sub-directories that have the same names as the parent directories of each sequencing_summary.txt file" |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
49 ) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
50 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
51 parser <- add_option(parser, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
52 opt_str = c("-q", "--qscore_cutoff"), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
53 type="double", |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
54 default=7.0, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
55 dest = 'q', |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
56 help="The cutoff value for the mean Q score of a read (default 7). Used to create separate plots for reads above and below this threshold" |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
57 ) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
58 |
|
6
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
59 parser <- add_option(parser, |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
60 opt_str = c("-d", "--discard_failed"), |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
61 type="logical", |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
62 default=FALSE, |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
63 dest = 'filt.failed', |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
64 help="Discard reads that failed Albacore filtering" |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
65 ) |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
66 |
|
0
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
67 opt = parse_args(parser) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
68 |
|
6
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
69 input.file = opt$input.file |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
70 output.dir = opt$output.dir |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
71 filt.failed = opt$filt.failed |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
72 q = opt$q |
|
0
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
73 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
74 # this is how we label the reads at least as good as q |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
75 q_title = paste("Q>=", q, sep="") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
76 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
77 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
78 # build the map for R9.5 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
79 p1 = data.frame(channel=33:64, row=rep(1:4, each=8), col=rep(1:8, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
80 p2 = data.frame(channel=481:512, row=rep(5:8, each=8), col=rep(1:8, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
81 p3 = data.frame(channel=417:448, row=rep(9:12, each=8), col=rep(1:8, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
82 p4 = data.frame(channel=353:384, row=rep(13:16, each=8), col=rep(1:8, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
83 p5 = data.frame(channel=289:320, row=rep(17:20, each=8), col=rep(1:8, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
84 p6 = data.frame(channel=225:256, row=rep(21:24, each=8), col=rep(1:8, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
85 p7 = data.frame(channel=161:192, row=rep(25:28, each=8), col=rep(1:8, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
86 p8 = data.frame(channel=97:128, row=rep(29:32, each=8), col=rep(1:8, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
87 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
88 q1 = data.frame(channel=1:32, row=rep(1:4, each=8), col=rep(16:9, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
89 q2 = data.frame(channel=449:480, row=rep(5:8, each=8), col=rep(16:9, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
90 q3 = data.frame(channel=385:416, row=rep(9:12, each=8), col=rep(16:9, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
91 q4 = data.frame(channel=321:352, row=rep(13:16, each=8), col=rep(16:9, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
92 q5 = data.frame(channel=257:288, row=rep(17:20, each=8), col=rep(16:9, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
93 q6 = data.frame(channel=193:224, row=rep(21:24, each=8), col=rep(16:9, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
94 q7 = data.frame(channel=129:160, row=rep(25:28, each=8), col=rep(16:9, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
95 q8 = data.frame(channel=65:96, row=rep(29:32, each=8), col=rep(16:9, 4)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
96 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
97 map = rbind(p1, p2, p3, p4, p5, p6, p7, p8, q1, q2, q3, q4, q5, q6, q7, q8) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
98 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
99 add_cols <- function(d, min.q){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
100 # take a sequencing sumamry file (d), and a minimum Q value you are interested in (min.q) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
101 # return the same data frame with the following columns added |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
102 # cumulative.bases |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
103 # hour of run |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
104 # reads.per.hour |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
105 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
106 d = subset(d, mean_qscore_template >= min.q) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
107 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
108 if(nrow(d)==0){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
109 flog.error(paste("There are no reads with a mean Q score higher than your cutoff of ", min.q, ". Please choose a lower cutoff and try again.", sep = "")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
110 quit() |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
111 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
112 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
113 d = merge(d, map, by="channel") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
114 d = d[with(d, order(start_time)), ] # sort by read length |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
115 d$cumulative.bases.time = cumsum(as.numeric(d$start_time)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
116 d = d[with(d, order(-sequence_length_template)), ] # sort by read length |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
117 d$cumulative.bases = cumsum(as.numeric(d$sequence_length_template)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
118 d$hour = d$start_time %/% 3600 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
119 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
120 # add the reads generated for each hour |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
121 reads.per.hour = as.data.frame(table(d$hour)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
122 names(reads.per.hour) = c("hour", "reads_per_hour") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
123 reads.per.hour$hour = as.numeric(as.character(reads.per.hour$hour)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
124 d = merge(d, reads.per.hour, by = c("hour")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
125 return(d) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
126 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
127 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
128 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
129 load_summary <- function(filepath, min.q){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
130 # load a sequencing summary and add some info |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
131 # min.q is a vector of length 2 defining 2 levels of min.q to have |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
132 # by default the lowest value is -Inf, i.e. includes all reads. The |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
133 # other value in min.q is set by the user at the command line |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
134 d = read_tsv(filepath, col_types = cols_only(channel = 'i', |
|
6
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
135 passes_filtering = 'c', |
|
0
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
136 num_events_template = 'i', |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
137 sequence_length_template = 'i', |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
138 mean_qscore_template = 'n', |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
139 sequence_length_2d = 'i', |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
140 mean_qscore_2d = 'n', |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
141 start_time = 'n')) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
142 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
143 if("sequence_length_2d" %in% names(d)){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
144 # it's a 1D2 or 2D run |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
145 d$sequence_length_template = as.numeric(as.character(d$sequence_length_2d)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
146 d$mean_qscore_template = as.numeric(as.character(d$mean_qscore_2d)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
147 d$num_events_template = NA |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
148 d$start_time = as.numeric(as.character(d$start_time)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
149 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
150 }else{ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
151 d$sequence_length_template = as.numeric(as.character(d$sequence_length_template)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
152 d$mean_qscore_template = as.numeric(as.character(d$mean_qscore_template)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
153 d$num_events_template = as.numeric(as.character(d$num_events_template)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
154 d$start_time = as.numeric(as.character(d$start_time)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
155 } |
|
4
4b7d1bcf210c
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit dfa6f9934da27ffddc4da6c16d97d4057662ef65
jdv
parents:
0
diff
changeset
|
156 |
|
4b7d1bcf210c
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit dfa6f9934da27ffddc4da6c16d97d4057662ef65
jdv
parents:
0
diff
changeset
|
157 # ignore 0-length reads |
|
4b7d1bcf210c
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit dfa6f9934da27ffddc4da6c16d97d4057662ef65
jdv
parents:
0
diff
changeset
|
158 d <- d[d$sequence_length_template > 0,] |
|
6
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
159 # ignore reads failing filtering |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
160 if (filt.failed) { |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
161 d <- d[d$passes_filtering == 'True',] |
|
0cf41189f086
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 0d8d1ec70b450f96a29a98e4dec9688b18170d32
jdv
parents:
4
diff
changeset
|
162 } |
|
0
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
163 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
164 d$events_per_base = d$num_events_template/d$sequence_length_template |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
165 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
166 flowcell = basename(dirname(filepath)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
167 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
168 # add columns for all the reads |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
169 d1 = add_cols(d, min.q[1]) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
170 d1$Q_cutoff = "All reads" |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
171 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
172 # add columns for just the reads that pass the user Q threshold |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
173 d2 = add_cols(d, min.q[2]) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
174 d2$Q_cutoff = q_title |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
175 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
176 # bind those two together into one data frame |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
177 d = as.data.frame(rbindlist(list(d1, d2))) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
178 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
179 # name the flowcell (useful for analyses with >1 flowcell) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
180 d$flowcell = flowcell |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
181 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
182 # make sure this is a factor |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
183 d$Q_cutoff = as.factor(d$Q_cutoff) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
184 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
185 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
186 keep = c("hour","start_time", "channel", "sequence_length_template", "mean_qscore_template", "row", "col", "cumulative.bases", "cumulative.bases.time", "reads_per_hour", "Q_cutoff", "flowcell", "events_per_base") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
187 d = d[keep] |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
188 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
189 d$start_bin = cut(d$start_time, 9,labels=c(1:9)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
190 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
191 return(d) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
192 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
193 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
194 reads.gt <- function(d, len){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
195 # return the number of reads in data frame d |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
196 # that are at least as long as length len |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
197 return(length(which(d$sequence_length_template>=len))) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
198 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
199 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
200 bases.gt <- function(d, len){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
201 # return the number of bases contained in reads from |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
202 # data frame d |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
203 # that are at least as long as length len |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
204 reads = subset(d, sequence_length_template >= len) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
205 return(sum(as.numeric(reads$sequence_length_template))) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
206 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
207 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
208 log10_minor_break = function (...){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
209 # function to add minor breaks to a log10 graph |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
210 # hat-tip: https://stackoverflow.com/questions/30179442/plotting-minor-breaks-on-a-log-scale-with-ggplot |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
211 function(x) { |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
212 minx = floor(min(log10(x), na.rm=T))-1; |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
213 maxx = ceiling(max(log10(x), na.rm=T))+1; |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
214 n_major = maxx-minx+1; |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
215 major_breaks = seq(minx, maxx, by=1) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
216 minor_breaks = |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
217 rep(log10(seq(1, 9, by=1)), times = n_major)+ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
218 rep(major_breaks, each = 9) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
219 return(10^(minor_breaks)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
220 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
221 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
222 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
223 binSearch <- function(min, max, df, t = 100000) { |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
224 # binary search algorithm, thanks to https://stackoverflow.com/questions/46292438/optimising-a-calculation-on-every-cumulative-subset-of-a-vector-in-r/46303384#46303384 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
225 # the aim is to return the number of reads in a dataset (df) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
226 # that comprise the largest subset of reads with an N50 of t |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
227 # we use this to calculte the number of 'ultra long' reads |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
228 # which are defined as those with N50 > 100KB |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
229 mid = floor(mean(c(min, max))) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
230 if (mid == min) { |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
231 if (df$sequence_length_template[min(which(df$cumulative.bases>df$cumulative.bases[min]/2))] < t) { |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
232 return(min - 1) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
233 } else { |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
234 return(max - 1) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
235 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
236 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
237 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
238 n = df$sequence_length_template[min(which(df$cumulative.bases>df$cumulative.bases[mid]/2))] |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
239 if (n >= t) { |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
240 return(binSearch(mid, max, df)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
241 } else { |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
242 return(binSearch(min, mid, df)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
243 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
244 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
245 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
246 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
247 summary.stats <- function(d, Q_cutoff="All reads"){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
248 # Calculate summary stats for a single value of min.q |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
249 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
250 rows = which(as.character(d$Q_cutoff)==Q_cutoff) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
251 d = d[rows,] |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
252 d = d[with(d, order(-sequence_length_template)), ] # sort by read length, just in case |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
253 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
254 total.bases = sum(as.numeric(d$sequence_length_template)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
255 total.reads = nrow(d) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
256 N50.length = d$sequence_length_template[min(which(d$cumulative.bases > (total.bases/2)))] |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
257 mean.length = round(mean(as.numeric(d$sequence_length_template)), digits = 1) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
258 median.length = round(median(as.numeric(d$sequence_length_template)), digits = 1) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
259 max.length = max(as.numeric(d$sequence_length_template)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
260 mean.q = round(mean(d$mean_qscore_template), digits = 1) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
261 median.q = round(median(d$mean_qscore_template), digits = 1) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
262 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
263 #calculate ultra-long reads and bases (max amount of data with N50>100KB) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
264 ultra.reads = binSearch(1, nrow(d), d, t = 100000) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
265 if(ultra.reads>=1){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
266 ultra.gigabases = sum(as.numeric(d$sequence_length_template[1:ultra.reads]))/1000000000 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
267 }else{ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
268 ultra.gigabases = 0 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
269 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
270 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
271 reads = list( |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
272 reads.gt(d, 10000), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
273 reads.gt(d, 20000), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
274 reads.gt(d, 50000), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
275 reads.gt(d, 100000), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
276 reads.gt(d, 200000), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
277 reads.gt(d, 500000), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
278 reads.gt(d, 1000000), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
279 ultra.reads) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
280 names(reads) = c(">10kb", ">20kb", ">50kb", ">100kb", ">200kb", ">500kb", ">1m", "ultralong") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
281 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
282 bases = list( |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
283 bases.gt(d, 10000)/1000000000, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
284 bases.gt(d, 20000)/1000000000, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
285 bases.gt(d, 50000)/1000000000, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
286 bases.gt(d, 100000)/1000000000, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
287 bases.gt(d, 200000)/1000000000, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
288 bases.gt(d, 500000)/1000000000, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
289 bases.gt(d, 1000000)/1000000000, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
290 ultra.gigabases) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
291 names(bases) = c(">10kb", ">20kb", ">50kb", ">100kb", ">200kb", ">500kb", ">1m", "ultralong") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
292 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
293 return(list('total.gigabases' = total.bases/1000000000, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
294 'total.reads' = total.reads, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
295 'N50.length' = N50.length, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
296 'mean.length' = mean.length, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
297 'median.length' = median.length, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
298 'max.length' = max.length, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
299 'mean.q' = mean.q, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
300 'median.q' = median.q, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
301 'reads' = reads, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
302 'gigabases' = bases |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
303 )) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
304 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
305 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
306 channel.summary <- function(d){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
307 # calculate summaries of what happened in each of the channels |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
308 # of a flowcell |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
309 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
310 a = ddply(d, .(channel), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
311 summarize, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
312 total.bases = sum(sequence_length_template), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
313 total.reads = sum(which(sequence_length_template>=0)), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
314 mean.read.length = mean(sequence_length_template), |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
315 median.read.length = median(sequence_length_template)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
316 b = melt(a, id.vars = c("channel")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
317 return(b) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
318 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
319 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
320 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
321 single.flowcell <- function(input.file, output.dir, q=8){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
322 # wrapper function to analyse data from a single flowcell |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
323 # input.file is a sequencing_summary.txt file from a 1D run |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
324 # output.dir is the output directory into which to write results |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
325 # q is the cutoff used for Q values, set by the user |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
326 flog.info(paste("Loading input file:", input.file)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
327 d = load_summary(input.file, min.q=c(-Inf, q)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
328 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
329 flowcell = unique(d$flowcell) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
330 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
331 flog.info(paste(sep = "", flowcell, ": creating output directory:", output.dir)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
332 dir.create(output.dir) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
333 out.txt = file.path(output.dir, "summary.yaml") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
334 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
335 flog.info(paste(sep = "", flowcell, ": summarising input file for flowcell")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
336 all.reads.summary = summary.stats(d, Q_cutoff = "All reads") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
337 q10.reads.summary = summary.stats(d, Q_cutoff = q_title) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
338 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
339 summary = list("input file" = input.file, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
340 "All reads" = all.reads.summary, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
341 cutoff = q10.reads.summary, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
342 "notes" = 'ultralong reads refers to the largest set of reads with N50>100KB') |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
343 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
344 names(summary)[3] = q_title |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
345 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
346 write(as.yaml(summary), out.txt) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
347 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
348 muxes = seq(from = 0, to = max(d$hour), by = 8) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
349 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
350 # make plots |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
351 flog.info(paste(sep = "", flowcell, ": plotting length histogram")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
352 len.lims <- quantile(d$sequence_length_template,c(0.01,0.99)) |
|
4
4b7d1bcf210c
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit dfa6f9934da27ffddc4da6c16d97d4057662ef65
jdv
parents:
0
diff
changeset
|
353 len.lims[1] <- max(1,len.lims[1]) |
|
0
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
354 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
355 p1 = ggplot(d, aes(x = sequence_length_template)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
356 geom_histogram(bins = 200, fill="steelblue") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
357 scale_x_log10(breaks=round(10^pretty(log10(len.lims),n=5),0),limits=len.lims) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
358 facet_wrap(~Q_cutoff, ncol = 1, scales = "free_y") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
359 #theme(text = element_text(size = 15)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
360 theme_linedraw() + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
361 xlab("Read length") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
362 ylab("Number of reads") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
363 ggsave(filename = file.path(output.dir, "length_histogram.png"), width = 7, height = 4, dpi=300, plot = p1) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
364 ggsave(filename = file.path(output.dir, "length_histogram.screen.png"), width = 7, height = 4, dpi=90, plot = p1) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
365 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
366 flog.info(paste(sep = "", flowcell, ": plotting mean Q score histogram")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
367 q.lims <- quantile(d$mean_qscore_template,c(0.005,0.995)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
368 p2 = ggplot(subset(d, Q_cutoff=="All reads"), aes(x = mean_qscore_template)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
369 geom_histogram(bins = 200, fill="steelblue") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
370 xlim(q.lims) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
371 geom_vline(xintercept=q) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
372 #theme(text = element_text(size = 15)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
373 theme_linedraw() + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
374 xlab("Mean Q score of read") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
375 ylab("Number of reads") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
376 ggsave(filename = file.path(output.dir, "q_histogram.png"), width = 7, height = 4, dpi=300, plot = p2) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
377 ggsave(filename = file.path(output.dir, "q_histogram.screen.png"), width = 7, height = 4, dpi=90, plot = p2) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
378 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
379 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
380 flog.info(paste(sep = "", flowcell, ": plotting flowcell overview")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
381 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
382 df <- data.frame(row=integer(),col=integer(),bin=integer(), quality=numeric()) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
383 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
384 # swap rows and columns |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
385 for (b in c(1,5,9)) { |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
386 m <- matrix(data=rep(0,512),nrow=16,ncol=32) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
387 for (r in 1:32) { |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
388 for (c in 1:16) { |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
389 sub <- subset(d, Q_cutoff=="All reads" & col == c & row == r & start_bin == b) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
390 Q <- median(sub$mean_qscore_template) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
391 df <- rbind(df, list(row=r, col=c, bin=b, quality=Q) ) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
392 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
393 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
394 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
395 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
396 df$bin <- factor(df$bin) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
397 levels(df$bin) <- c("Run start", "Run middle", "Run end") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
398 p5 = ggplot(df, aes(col, row)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
399 geom_tile(aes(fill = quality), color="white") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
400 scale_fill_gradient(low = "white", high="steelblue") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
401 xlab("Column") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
402 ylab("Row") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
403 facet_wrap(~bin, ncol=3) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
404 theme_linedraw() + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
405 theme(panel.grid.minor = element_blank(), panel.grid.major=element_blank()) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
406 #theme(text = element_text(size = 40), axis.text.x = element_text(size=12), axis.text.y = element_text(size=12), legend.text=element_text(size=12)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
407 ggsave(filename = file.path(output.dir, "flowcell_overview.png"), width = 7, height = 4, dpi=300, plot = p5) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
408 ggsave(filename = file.path(output.dir, "flowcell_overview.screen.png"), width = 7, height = 4, dpi=90, plot = p5) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
409 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
410 flog.info(paste(sep = "", flowcell, ": plotting cumulative yield summary")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
411 p5a = ggplot(d, aes(x=start_time/3600, y=cumulative.bases.time, colour = Q_cutoff)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
412 geom_line(size = 1) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
413 geom_vline(xintercept = muxes, colour = 'red', linetype = 'dashed', alpha = 0.5) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
414 xlab("Elapsed time (hrs)") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
415 ylab("Total yield in bases") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
416 scale_colour_discrete(guide = guide_legend(title = "Reads")) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
417 scale_x_continuous() + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
418 theme_linedraw() |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
419 #theme(text = element_text(size = 15)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
420 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
421 ggsave(filename = file.path(output.dir, "cumulative_yield.png"), width = 7, height = 4, dpi=300, plot = p5a) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
422 ggsave(filename = file.path(output.dir, "cumulative_yield.screen.png"), width = 7, height = 4, dpi=90, plot = p5a) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
423 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
424 flog.info(paste(sep = "", flowcell, ": plotting flowcell yield summary")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
425 p6 = ggplot(d, aes(x=sequence_length_template, y=cumulative.bases, colour = Q_cutoff)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
426 geom_line(size = 1) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
427 xlab("Minimum read length") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
428 ylab("Total yield in bases") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
429 scale_colour_discrete(guide = guide_legend(title = "Reads")) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
430 #theme(text = element_text(size = 15)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
431 theme_linedraw() |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
432 xmax = max(d$sequence_length_template[which(d$cumulative.bases > 0.01 * max(d$cumulative.bases))]) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
433 p6 = p6 + scale_x_continuous(limits = c(0, xmax)) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
434 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
435 ggsave(filename = file.path(output.dir, "yield_summary.png"), width = 7, height = 4, dpi=300, plot = p6) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
436 ggsave(filename = file.path(output.dir, "yield_summary.screen.png"), width = 7, height = 4, dpi=90, plot = p6) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
437 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
438 flog.info(paste(sep = "", flowcell, ": plotting sequence length over time")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
439 e = subset(d, Q_cutoff=="All reads") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
440 e$Q = paste(">=", q, sep="") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
441 e$Q[which(e$mean_qscore_template<q)] = paste("<", q, sep="") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
442 p7 = ggplot(e, aes(x=start_time/3600, y=sequence_length_template, colour = Q, group = Q)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
443 geom_vline(xintercept = muxes, colour = 'red', linetype = 'dashed', alpha = 0.5) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
444 geom_smooth() + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
445 xlab("Elapsed time (hrs)") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
446 ylab("Mean read length") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
447 ylim(0, NA) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
448 theme_linedraw() |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
449 ggsave(filename = file.path(output.dir, "length_by_hour.png"), width = 7, height = 4, dpi=300, plot = p7) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
450 ggsave(filename = file.path(output.dir, "length_by_hour.screen.png"), width = 7, height = 4, dpi=90, plot = p7) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
451 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
452 flog.info(paste(sep = "", flowcell, ": plotting Q score over time")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
453 p8 = ggplot(e, aes(x=start_time/3600, y=mean_qscore_template, colour = Q, group = Q)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
454 geom_vline(xintercept = muxes, colour = 'red', linetype = 'dashed', alpha = 0.5) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
455 geom_smooth() + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
456 xlab("Elapsed time (hrs)") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
457 ylab("Mean Q score") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
458 ylim(0, NA) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
459 theme_linedraw() |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
460 ggsave(filename = file.path(output.dir, "q_by_hour.png"), width = 7, height = 4, dpi=300, plot = p8) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
461 ggsave(filename = file.path(output.dir, "q_by_hour.screen.png"), width = 7, height = 4, dpi=90, plot = p8) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
462 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
463 flog.info(paste(sep = "", flowcell, ": plotting reads per hour")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
464 f = d[c("hour", "reads_per_hour", "Q_cutoff")] |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
465 f = f[!duplicated(f),] |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
466 g = subset(f, Q_cutoff=="All reads") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
467 h = subset(f, Q_cutoff==q_title) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
468 max = max(f$hour) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
469 # all of this is just to fill in hours with no reads recorded |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
470 all = 0:max |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
471 add.g = all[which(all %in% g$hour == FALSE)] |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
472 if(length(add.g)>0){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
473 add.g = data.frame(hour = add.g, reads_per_hour = 0, Q_cutoff = "All reads") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
474 g = rbind(g, add.g) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
475 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
476 add.h = all[which(all %in% h$hour == FALSE)] |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
477 if(length(add.h)>0){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
478 add.h = data.frame(hour = add.h, reads_per_hour = 0, Q_cutoff = q_title) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
479 h = rbind(h, add.h) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
480 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
481 i = rbind(g, h) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
482 i$Q_cutoff = as.character(i$Q_cutoff) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
483 i$Q_cutoff[which(i$Q_cutoff==q_title)] = paste("Q>=", q, sep="") |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
484 p9 = ggplot(i, aes(x=hour, y=reads_per_hour, colour = Q_cutoff, group = Q_cutoff)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
485 geom_vline(xintercept = muxes, colour = 'red', linetype = 'dashed', alpha = 0.5) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
486 #geom_point() + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
487 geom_line(size=1) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
488 xlab("Elapsed time (hrs)") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
489 ylab("Number of reads per hour") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
490 ylim(0, NA) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
491 scale_color_discrete(guide = guide_legend(title = "Reads")) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
492 theme_linedraw() |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
493 ggsave(filename = file.path(output.dir, "reads_per_hour.png"), width = 7, height = 4, dpi=300, plot = p9) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
494 ggsave(filename = file.path(output.dir, "reads_per_hour.screen.png"), width = 7, height = 4, dpi=90, plot = p9) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
495 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
496 flog.info(paste(sep = "", flowcell, ": plotting read length vs. q score scatterplot")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
497 p10 = ggplot(subset(d, Q_cutoff=="All reads"), aes(x = sequence_length_template, y = mean_qscore_template, colour = events_per_base)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
498 geom_point(alpha=0.05, size = 0.4) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
499 scale_x_log10(minor_breaks=log10_minor_break()) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
500 labs(colour='Events per base\n(log scale)\n') + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
501 theme(text = element_text(size = 15)) + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
502 xlab("Read length") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
503 ylab("Mean Q score of read") + |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
504 theme_linedraw() |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
505 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
506 if(max(d$events_per_base, na.rm=T)>0){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
507 # a catch for 1D2 runs which don't have events per base |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
508 p10 = p10 + scale_colour_distiller(trans = "log", labels = scientific, palette = 'Spectral') |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
509 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
510 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
511 ggsave(filename = file.path(output.dir, "length_vs_q.png"), width = 7, height = 4, dpi=300, plot = p10) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
512 ggsave(filename = file.path(output.dir, "length_vs_q.screen.png"), width = 7, height = 4, dpi=90, plot = p10) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
513 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
514 return(d) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
515 } |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
516 |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
517 if(file_test("-f", input.file)==TRUE){ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
518 # if it's an existing file (not a folder) just run one analysis |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
519 d = single.flowcell(input.file, output.dir, q) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
520 }else{ |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
521 #WTF |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
522 flog.warn(paste("Could find a sequencing summary file in your input which was: ", |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
523 input.file, |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
524 "\nThe input must be a sequencing_summary.txt file produced by Albacore")) |
|
192df6f6a41e
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopore_qc commit 59d1272f707bdd73a3f7d085f96789e649d54240-dirty
jdv
parents:
diff
changeset
|
525 } |
