Mercurial > repos > drosofff > msp_sr_readmap_and_size_histograms
comparison readmap.xml @ 9:44a0b0fa52a9 draft
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/msp_sr_readmap_and_size_histograms commit e27d18d58ae095e7fad4b08b04370857a1d37964-dirty
author | mvdbeek |
---|---|
date | Tue, 02 Feb 2016 12:47:07 -0500 |
parents | 4e7f59d5ee18 |
children | 71a46afb9ce7 |
comparison
equal
deleted
inserted
replaced
8:4e7f59d5ee18 | 9:44a0b0fa52a9 |
---|---|
1 <tool id="Readmap" name="Generate readmap and histograms from alignment files" version="1.0.5"> | 1 <tool id="Readmap" name="Generate readmap and histograms from alignment files" version="1.1.0"> |
2 <description>from sRbowtie aligment</description> | 2 <description>from sRbowtie aligment</description> |
3 <requirements> | 3 <requirements> |
4 <requirement type="package" version="0.12.7">bowtie</requirement> | 4 <requirement type="package" version="0.12.7">bowtie</requirement> |
5 <requirement type="package" version="0.7.7">pysam</requirement> | 5 <requirement type="package" version="0.7.7">pysam</requirement> |
6 <requirement type="package" version="3.1.2">R</requirement> | 6 <requirement type="package" version="3.1.2">R</requirement> |
75 <!-- <validator type="dataset_metadata_in_data_table" table_name="bowtie_indexes" metadata_name="dbkey" metadata_column="0" message="GFF database and alignment file databse do not match!"/> --> | 75 <!-- <validator type="dataset_metadata_in_data_table" table_name="bowtie_indexes" metadata_name="dbkey" metadata_column="0" message="GFF database and alignment file databse do not match!"/> --> |
76 <param name="minquery" type="integer" size="3" value="18" label="Min size of query small RNAs" help="'18' = 18 nucleotides"/> | 76 <param name="minquery" type="integer" size="3" value="18" label="Min size of query small RNAs" help="'18' = 18 nucleotides"/> |
77 <param name="maxquery" type="integer" size="3" value="28" label="Max size of query small RNAs" help="'28' = 28 nucleotides"/> | 77 <param name="maxquery" type="integer" size="3" value="28" label="Max size of query small RNAs" help="'28' = 28 nucleotides"/> |
78 <param name="title" type="text" size="15" value= "Readmaps and size distributions" label="Main Titles"/> | 78 <param name="title" type="text" size="15" value= "Readmaps and size distributions" label="Main Titles"/> |
79 <param name="xlabel" type="text" size="15" value="Coordinates/read size" label="x axis label"/> | 79 <param name="xlabel" type="text" size="15" value="Coordinates/read size" label="x axis label"/> |
80 <param name="yrange" type="integer" size="6" value="0" label="y axis range" help="leave at 0 for autoscaling"/> | 80 <param name="yrange" type="integer" size="6" value="0" label="y axis range for readmap tool" help="leave at 0 for autoscaling"/> |
81 <param name="ylabel" type="text" size="15" value="Number of reads" label="y axis label"/> | 81 <param name="ylabel" type="text" size="15" value="Number of reads" label="y axis label"/> |
82 <param name="rows_per_page" type="text" size="9" value="8" label="How many items to display per page?"> | 82 <param name="rows_per_page" type="text" size="9" value="8" label="How many items to display per page?"> |
83 <validator type="in_range" min="6" max="20" message="Select between 6 and 20 rows, as the readability will suffer otherwise."/> | 83 <validator type="in_range" min="6" max="20" message="Select between 6 and 20 rows, as the readability will suffer otherwise."/> |
84 </param> | 84 </param> |
85 </inputs> | 85 </inputs> |
86 <configfiles> | 86 <configfiles> |
87 <configfile name="plotCode"> | 87 <configfile name="plotCode"><![CDATA[ |
88 ## Setup R error handling to go to stderr | 88 ## Setup R error handling to go to stderr |
89 options( show.error.messages=F, | 89 options( show.error.messages=F, |
90 error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } ) | 90 error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } ) |
91 library(RColorBrewer) | 91 library(RColorBrewer) |
92 library(lattice) | 92 library(lattice) |
93 library(latticeExtra) | 93 library(latticeExtra) |
94 library(grid) | 94 library(grid) |
95 library(gridExtra) | 95 library(gridExtra) |
96 | 96 |
97 ## data frames implementation | 97 ## data frames implementation |
98 | 98 |
99 rm=read.delim("${readmap_dataframe}", header=T, row.names=NULL) | 99 rm=read.delim("${readmap_dataframe}", header=T, row.names=NULL) |
100 n_samples=length(unique(rm\$sample)) | 100 n_samples=length(unique(rm$sample)) |
101 genes=unique(levels(rm\$gene)) | 101 genes=unique(levels(rm$gene)) |
102 per_gene_readmap=lapply(genes, function(x) subset(rm, gene==x)) ####### ? | 102 per_gene_readmap=lapply(genes, function(x) subset(rm, gene==x)) ####### ? |
103 n_genes=length(per_gene_readmap) | 103 n_genes=length(per_gene_readmap) |
104 | 104 |
105 size=read.delim("${size_distribution_dataframe}", header=T, row.names=NULL) | 105 size=read.delim("${size_distribution_dataframe}", header=T, row.names=NULL) |
106 per_gene_size=lapply(genes, function(x) subset(size, gene==x)) ###### ? | 106 per_gene_size=lapply(genes, function(x) subset(size, gene==x)) ###### ? |
107 | 107 |
108 ## end of data frames implementation | 108 ## end of data frames implementation |
109 | 109 |
110 ## functions | 110 ## functions |
111 | 111 |
112 plot_readmap=function(df, ...) { | 112 plot_readmap=function(df, ...) { |
113 combineLimits(xyplot(count~coord|factor(sample, levels=unique(sample))+reorder(gene, count, function(x) -sum(abs(x))), | 113 combineLimits(xyplot(count~coord|factor(sample, levels=unique(sample))+reorder(gene, count, function(x) -sum(abs(x))), |
114 data=df, | 114 data=df, |
115 type='h', | 115 type='h', |
116 scales= list(relation="free", x=list(rot=0, cex=0.7, axs="i", tck=0.5), y=list(tick.number=4, rot=90, cex=0.7)), | 116 scales= list(relation="free", x=list(rot=0, cex=0.7, axs="i", tck=0.5), y=list(tick.number=4, rot=90, cex=0.7)), |
117 xlab=NULL, main=NULL, ylab=NULL, | 117 xlab=NULL, main=NULL, ylab=NULL, |
118 as.table=T, | 118 as.table=T, |
119 origin = 0, | 119 origin = 0, |
120 horizontal=FALSE, | 120 horizontal=FALSE, |
121 group=polarity, | 121 group=polarity, |
122 col=c("red","blue"), | 122 col=c("red","blue"), |
123 par.strip.text = list(cex=0.7), | 123 par.strip.text = list(cex=0.7), |
124 ...)) | 124 ...)) |
125 } | |
126 | |
127 plot_size_distribution= function(df, ...) { | |
128 smR.prepanel=function(x,y,...){; yscale=c(-max(abs(y)), max(abs(y)));list(ylim=yscale);} | |
129 bc= barchart(count~as.factor(size)|factor(sample, levels=unique(sample))+gene, data = df, origin = 0, | |
130 horizontal=FALSE, | |
131 group=polarity, | |
132 stack=TRUE, | |
133 col=c('red', 'blue'), | |
134 cex=0.75, | |
135 scales=list(y=list(tick.number=4, rot=90, relation="free", cex=0.7), x=list(cex=0.7) ), | |
136 prepanel=smR.prepanel, | |
137 xlab = NULL, | |
138 ylab = NULL, | |
139 main = NULL, | |
140 as.table=TRUE, | |
141 newpage = T, | |
142 par.strip.text = list(cex=0.7), | |
143 ...) | |
144 combineLimits(bc) | |
145 } | |
146 | |
147 ## end of functions | |
148 | |
149 ## function parameters' | |
150 | |
151 par.settings.readmap=list(layout.heights=list(top.padding=0, bottom.padding=-2.5), strip.background = list(col=c("lightblue","lightgreen")) ) | |
152 par.settings.size=list(layout.heights=list(top.padding=-1, bottom.padding=-2.5), strip.background = list(col=c("lightblue","lightgreen")) ) | |
153 par.settings.combination.readmap=list(layout.heights=list(top.padding=0, bottom.padding=-3), strip.background=list(col=c("lightblue","lightgreen")) ) | |
154 par.settings.combination.size=list(layout.heights=list(top.padding=-2, bottom.padding=-0.5), strip.background=list(col=c("lightblue", "lightgreen")) ) | |
155 | |
156 ## end of function parameters' | |
157 | |
158 ## GRAPHS | |
159 | |
160 if (n_genes > 7) {page_height_simple = 11.69; page_height_combi=11.69; rows_per_page=${rows_per_page}; extrarow=0 } else { | |
161 rows_per_page= 8; page_height_simple = 11.69; page_height_combi=11.69; extrarow=0 } | |
162 ## rows_per_page= 8; page_height_simple = 11.69/7*n_genes; page_height_combi=11.69/9*(n_genes*2); extrarow=0 } | |
163 ## rows_per_page= n_genes; page_height_simple = 11.69/n_genes/4; page_height_combi=11.69/(n_genes*2); extrarow=1 } | |
164 if (n_samples > 4) {page_width = 8.2677*n_samples/4} else {page_width = 8.2677*n_samples/3} # to test | |
165 | |
166 | |
167 } | |
168 | |
169 pdf(file="${readmap_PDF}", paper="special", height=page_height_simple, width=page_width) | |
170 for (i in seq(1,n_genes,rows_per_page)) { | |
171 start=i | |
172 end=i+rows_per_page-1 | |
173 if (end>n_genes) {end=n_genes} | |
174 if ("${yrange}" != 0) { | |
175 readmap_plot.list=lapply(per_gene_readmap[start:end], function(x) plot_readmap(x, par.settings=par.settings.readmap)) | |
176 } else { | |
177 readmap_plot.list=lapply(per_gene_readmap[start:end], function(x) plot_readmap(x, ylim=c(-"{$yrange}", "{$yrange}"), par.settings=par.settings.readmap)) | |
125 } | 178 } |
126 | 179 args.list=c(readmap_plot.list, list(nrow=rows_per_page, ncol=1, |
127 plot_size_distribution= function(df, ...) { | 180 main=textGrob("Read Maps (nucleotide coordinates)", gp=gpar(cex=1), just="top"), |
128 smR.prepanel=function(x,y,...){; yscale=c(-max(abs(y)), max(abs(y)));list(ylim=yscale);} | 181 left=textGrob("${ylabel}", gp=gpar(cex=1), vjust=1, rot=90) |
129 bc= barchart(count~as.factor(size)|factor(sample, levels=unique(sample))+gene, data = df, origin = 0, | 182 #sub=textGrob("readmap coordinates", gp=gpar(cex=.75), just="bottom") |
130 horizontal=FALSE, | 183 ) |
131 group=polarity, | 184 ) |
132 stack=TRUE, | 185 do.call(grid.arrange, args.list) |
133 col=c('red', 'blue'), | 186 } |
134 cex=0.75, | 187 devname=dev.off() |
135 scales=list(y=list(tick.number=4, rot=90, relation="free", cex=0.7), x=list(cex=0.7) ), | 188 |
136 prepanel=smR.prepanel, | 189 |
137 xlab = NULL, | 190 pdf(file="${size_PDF}", paper="special", height=page_height_simple, width=page_width) |
138 ylab = NULL, | 191 for (i in seq(1,n_genes,rows_per_page)) { |
139 main = NULL, | 192 start=i |
140 as.table=TRUE, | 193 end=i+rows_per_page-1 |
141 newpage = T, | 194 if (end>n_genes) {end=n_genes} |
142 par.strip.text = list(cex=0.7), | 195 plot.list=lapply(per_gene_size[start:end], function(x) plot_size_distribution(x, par.settings=par.settings.size) ) |
143 ...) | 196 args.list=c(plot.list, list(nrow=rows_per_page, ncol=1, |
144 combineLimits(bc) | 197 main=textGrob("Size distributions (in nucleotides)", gp=gpar(cex=1), just="top"), |
145 } | 198 left=textGrob("${ylabel}", gp=gpar(cex=1), vjust=1, rot=90) |
146 | 199 #sub="readsize in nucleotides" |
147 ## end of functions | 200 ) |
148 | 201 ) |
149 ## function parameters' | 202 do.call(grid.arrange, args.list) |
150 | 203 } |
151 par.settings.readmap=list(layout.heights=list(top.padding=0, bottom.padding=-2.5), strip.background = list(col=c("lightblue","lightgreen")) ) | 204 devname=dev.off() |
152 par.settings.size=list(layout.heights=list(top.padding=-1, bottom.padding=-2.5), strip.background = list(col=c("lightblue","lightgreen")) ) | 205 |
153 par.settings.combination.readmap=list(layout.heights=list(top.padding=0, bottom.padding=-3), strip.background=list(col=c("lightblue","lightgreen")) ) | 206 pdf(file="${combi_PDF}", paper="special", height=page_height_combi, width=page_width) |
154 par.settings.combination.size=list(layout.heights=list(top.padding=-2, bottom.padding=-0.5), strip.background=list(col=c("lightblue", "lightgreen")) ) | 207 for (i in seq(1,n_genes,rows_per_page/2)) { |
155 | 208 start=i |
156 ## end of function parameters' | 209 end=i+rows_per_page/2-1 |
157 | 210 if (end>n_genes) {end=n_genes} |
158 ## GRAPHS | 211 read_plot.list=lapply(per_gene_readmap[start:end], function(x) plot_readmap(x, par.settings=par.settings.combination.readmap)) |
159 | 212 size_plot.list=lapply(per_gene_size[start:end], function(x) plot_size_distribution(x, strip=FALSE, par.settings=par.settings.combination.size)) |
160 if (n_genes > 7) {page_height_simple = 11.69; page_height_combi=11.69; rows_per_page=${rows_per_page}; extrarow=0 } else { | 213 plot.list=rbind(read_plot.list, size_plot.list ) |
161 rows_per_page= 8; page_height_simple = 11.69; page_height_combi=11.69; extrarow=0 } | 214 args.list=c(plot.list, list(nrow=rows_per_page + extrarow, ncol=1, |
162 ## rows_per_page= 8; page_height_simple = 11.69/7*n_genes; page_height_combi=11.69/9*(n_genes*2); extrarow=0 } | 215 main=textGrob("${title}", gp=gpar(cex=1), just="top"), |
163 ## rows_per_page= n_genes; page_height_simple = 11.69/n_genes/4; page_height_combi=11.69/(n_genes*2); extrarow=1 } | 216 left=textGrob("${ylabel}", gp=gpar(cex=1), vjust=1, rot=90), |
164 if (n_samples > 4) {page_width = 8.2677*n_samples/4} else {page_width = 8.2677*n_samples/3} # to test | 217 sub=textGrob("${xlabel}", gp=gpar(cex=1), just="bottom") |
165 | 218 ) |
166 pdf(file="${readmap_PDF}", paper="special", height=page_height_simple, width=page_width) | 219 ) |
167 for (i in seq(1,n_genes,rows_per_page)) { | 220 do.call(grid.arrange, args.list) |
168 start=i | 221 } |
169 end=i+rows_per_page-1 | 222 devname=dev.off() |
170 if (end>n_genes) {end=n_genes} | 223 |
171 readmap_plot.list=lapply(per_gene_readmap[start:end], function(x) plot_readmap(x, par.settings=par.settings.readmap)) | 224 ]]></configfile> |
172 args.list=c(readmap_plot.list, list(nrow=rows_per_page, ncol=1, | |
173 main=textGrob("Read Maps (nucleotide coordinates)", gp=gpar(cex=1), just="top"), | |
174 left=textGrob("${ylabel}", gp=gpar(cex=1), vjust=1, rot=90) | |
175 #sub=textGrob("readmap coordinates", gp=gpar(cex=.75), just="bottom") | |
176 ) | |
177 ) | |
178 do.call(grid.arrange, args.list) | |
179 } | |
180 devname=dev.off() | |
181 | |
182 | |
183 pdf(file="${size_PDF}", paper="special", height=page_height_simple, width=page_width) | |
184 for (i in seq(1,n_genes,rows_per_page)) { | |
185 start=i | |
186 end=i+rows_per_page-1 | |
187 if (end>n_genes) {end=n_genes} | |
188 plot.list=lapply(per_gene_size[start:end], function(x) plot_size_distribution(x, par.settings=par.settings.size) ) | |
189 args.list=c(plot.list, list(nrow=rows_per_page, ncol=1, | |
190 main=textGrob("Size distributions (in nucleotides)", gp=gpar(cex=1), just="top"), | |
191 left=textGrob("${ylabel}", gp=gpar(cex=1), vjust=1, rot=90) | |
192 #sub="readsize in nucleotides" | |
193 ) | |
194 ) | |
195 do.call(grid.arrange, args.list) | |
196 } | |
197 devname=dev.off() | |
198 | |
199 pdf(file="${combi_PDF}", paper="special", height=page_height_combi, width=page_width) | |
200 for (i in seq(1,n_genes,rows_per_page/2)) { | |
201 start=i | |
202 end=i+rows_per_page/2-1 | |
203 if (end>n_genes) {end=n_genes} | |
204 read_plot.list=lapply(per_gene_readmap[start:end], function(x) plot_readmap(x, par.settings=par.settings.combination.readmap)) | |
205 size_plot.list=lapply(per_gene_size[start:end], function(x) plot_size_distribution(x, strip=FALSE, par.settings=par.settings.combination.size)) | |
206 plot.list=rbind(read_plot.list, size_plot.list ) | |
207 args.list=c(plot.list, list(nrow=rows_per_page + extrarow, ncol=1, | |
208 main=textGrob("${title}", gp=gpar(cex=1), just="top"), | |
209 left=textGrob("${ylabel}", gp=gpar(cex=1), vjust=1, rot=90), | |
210 sub=textGrob("${xlabel}", gp=gpar(cex=1), just="bottom") | |
211 ) | |
212 ) | |
213 do.call(grid.arrange, args.list) | |
214 } | |
215 devname=dev.off() | |
216 | |
217 | |
218 </configfile> | |
219 </configfiles> | 225 </configfiles> |
220 | 226 |
221 <outputs> | 227 <outputs> |
222 <data format="tabular" name="readmap_dataframe" label="Readmap dataframe"/> | 228 <data format="tabular" name="readmap_dataframe" label="Readmap dataframe"/> |
223 <data format="tabular" name="size_distribution_dataframe" label="Size distribution dataframe"/> | 229 <data format="tabular" name="size_distribution_dataframe" label="Size distribution dataframe"/> |