Mercurial > repos > iuc > ribowaltz_plot
comparison ribowaltz_plot.R @ 0:8e903cb3f919 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ribowaltz commit ff002df702f544829d1b500ac4b517c1e70ad14d
author | iuc |
---|---|
date | Thu, 22 Sep 2022 20:30:20 +0000 |
parents | |
children | e25d81465c23 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:8e903cb3f919 |
---|---|
1 # setup R error handling to go to stderr | |
2 options(show.error.messages = FALSE, error = function() { | |
3 cat(geterrmessage(), file = stderr()) | |
4 q("no", 1, FALSE) | |
5 }) | |
6 | |
7 # we need that to not crash galaxy with an UTF8 error on German LC settings. | |
8 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") | |
9 library("getopt") | |
10 options(stringAsFactors = FALSE, useFancyQuotes = FALSE) | |
11 args <- commandArgs(trailingOnly = TRUE) | |
12 | |
13 # get options, using the spec as defined by the enclosed list. | |
14 # we read the options from the default: commandArgs(TRUE). | |
15 spec <- matrix(c( | |
16 "quiet", "q", 0, "logical", | |
17 "help", "h", 0, "logical", | |
18 "input_rdata", "i", 1, "character", | |
19 "params_rlength_distr", "r", 0, "character", | |
20 "params_rends_heat", "e", 0, "character", | |
21 "region_psite_plot", "R", 0, "logical", | |
22 "params_trint_periodicity", "t", 0, "character", | |
23 "params_metaplots", "m", 0, "character", | |
24 "params_codon_usage_psite", "u", 0, "character" | |
25 ), byrow = TRUE, ncol = 4) | |
26 opt <- getopt(spec) | |
27 | |
28 # if help was asked for print a friendly message | |
29 # and exit with a non-zero error code | |
30 if (!is.null(opt$help)) { | |
31 cat(getopt(spec, usage = TRUE)) | |
32 q(status = 1) | |
33 } | |
34 | |
35 verbose <- is.null(opt$quiet) | |
36 | |
37 library("riboWaltz") | |
38 library("jsonlite") | |
39 | |
40 load(opt$input_rdata) | |
41 | |
42 if (!is.null(opt$params_rlength_distr)) { | |
43 pdf("read_lengths.pdf") | |
44 json_rlength_distr <- fromJSON(opt$params_rlength_distr) | |
45 length_dist <- rlength_distr( | |
46 reads_psite_list, | |
47 sample = names(reads_psite_list), | |
48 cl = json_rlength_distr$cl, | |
49 multisamples = json_rlength_distr$multisamples, | |
50 plot_style = json_rlength_distr$plot_style | |
51 ) | |
52 print(length_dist) | |
53 dev.off() | |
54 } | |
55 | |
56 if (!is.null(opt$params_rends_heat)) { | |
57 pdf("read_ends_heatmap.pdf", height = 5 * length(reads_psite_list), width = 15) | |
58 json_rends_heat <- fromJSON(opt$params_rends_heat) | |
59 for (sample_name in names(reads_psite_list)) { | |
60 ends_heatmap <- rends_heat( | |
61 reads_psite_list, | |
62 annotation_dt, | |
63 sample = sample_name, | |
64 cl = json_rends_heat$cl, | |
65 utr5l = json_rends_heat$utr5l, | |
66 cdsl = json_rends_heat$cdsl, | |
67 utr3l = json_rends_heat$utr3l | |
68 ) | |
69 print(ends_heatmap[["plot"]]) | |
70 } | |
71 dev.off() | |
72 } | |
73 | |
74 if (!is.null(opt$region_psite_plot)) { | |
75 pdf("psites_per_region.pdf", height = 12, width = 7 * length(reads_psite_list)) | |
76 psite_region <- region_psite(reads_psite_list, annotation_dt, sample = names(reads_psite_list)) | |
77 print(psite_region[["plot"]]) | |
78 dev.off() | |
79 } | |
80 | |
81 if (!is.null(opt$params_trint_periodicity)) { | |
82 pdf("trinucleotide_periodicity.pdf", height = 6 * length(reads_psite_list), width = 10) | |
83 json_trint_periodicity <- fromJSON(opt$params_trint_periodicity) | |
84 frames_stratified <- frame_psite_length( | |
85 reads_psite_list, | |
86 sample = names(reads_psite_list), | |
87 cl = json_trint_periodicity$cl, | |
88 region = json_trint_periodicity$region, | |
89 length_range = json_trint_periodicity$length_range | |
90 ) | |
91 frames_stratified[["plot"]] | |
92 frames <- frame_psite_length( | |
93 reads_psite_list, | |
94 sample = names(reads_psite_list), | |
95 region = json_trint_periodicity$region, | |
96 length_range = json_trint_periodicity$length_range | |
97 ) | |
98 print(frames[["plot"]]) | |
99 dev.off() | |
100 } | |
101 | |
102 if (!is.null(opt$params_metaplots)) { | |
103 pdf("metaplots.pdf", height = 5 * length(reads_psite_list), width = 24) | |
104 json_metaplots <- fromJSON(opt$params_metaplots) | |
105 metaprofile <- metaprofile_psite( | |
106 reads_psite_list, | |
107 annotation_dt, | |
108 sample = names(reads_psite_list), | |
109 multisamples = json_metaplots$multisamples, | |
110 plot_style = json_metaplots$plot_style, | |
111 length_range = json_metaplots$length_range, | |
112 frequency = json_metaplots$frequency, | |
113 utr5l = json_metaplots$utr5l, | |
114 cdsl = json_metaplots$cdsl, | |
115 utr3l = json_metaplots$utr3l, | |
116 plot_title = "sample.transcript.length_range" | |
117 ) | |
118 print(metaprofile) | |
119 sample_list <- list() | |
120 for (sample_name in names(reads_psite_list)) { | |
121 sample_list[[sample_name]] <- c(sample_name) | |
122 } | |
123 metaheatmap <- metaheatmap_psite( | |
124 reads_psite_list, | |
125 annotation_dt, | |
126 sample = sample_list, | |
127 length_range = json_metaplots$length_range, | |
128 utr5l = json_metaplots$utr5l, | |
129 cdsl = json_metaplots$cdsl, | |
130 utr3l = json_metaplots$utr3l, | |
131 plot_title = "Comparison metaheatmap" | |
132 ) | |
133 print(metaheatmap[["plot"]]) | |
134 dev.off() | |
135 } | |
136 | |
137 if (!is.null(opt$params_codon_usage_psite)) { | |
138 pdf("codon_usage.pdf", height = 6, width = 16) | |
139 json_codon_usage_psite <- fromJSON(opt$params_codon_usage_psite) | |
140 for (sample_name in names(reads_psite_list)) { | |
141 cu_barplot <- codon_usage_psite( | |
142 reads_psite_list, | |
143 annotation_dt, | |
144 sample = sample_name, | |
145 fastapath = json_codon_usage_psite$fastapath, | |
146 fasta_genome = FALSE, | |
147 frequency_normalization = json_codon_usage_psite$frequency | |
148 ) | |
149 print(cu_barplot[["plot"]]) | |
150 } | |
151 dev.off() | |
152 } |