comparison plot.xml @ 0:2622dd85416f draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/seurat_v5 commit a9214c07b0cc929a51fd92a369bb89c675b6c88d
author iuc
date Wed, 11 Sep 2024 10:21:18 +0000
parents
children fee4b4eb0ef5
comparison
equal deleted inserted replaced
-1:000000000000 0:2622dd85416f
1 <tool id="seurat_plot" name="Seurat Visualize" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
2 <description>- Plot cells, features and dimensions</description>
3 <macros>
4 <import>macros.xml</import>
5 </macros>
6 <expand macro="requirements"/>
7 <expand macro="version_command"/>
8 <command detect_errors="exit_code"><![CDATA[
9 @CMD@
10 ]]></command>
11 <configfiles>
12 <configfile name="script_file"><![CDATA[
13 @CMD_imports@
14 @CMD_read_inputs@
15 library(ggplot2)
16
17 #if $method.method == 'VlnPlot'
18
19 plot<-VlnPlot(
20 seurat_obj,
21 features = c(unlist(strsplit(gsub(" ", "", '$method.features'), ","))),
22 #if $method.idents != ''
23 idents = '$method.idents',
24 #end if
25 sort = $method.sort,
26 #if $method.adv.assay != ''
27 assay = '$method.adv.assay',
28 #end if
29 #if $method.adv.layer != ''
30 layer = '$method.adv.layer',
31 #end if
32 #if $method.plot.cols != ''
33 cols = c(unlist(strsplit(gsub(" ", "", '$method.plot.cols'), ","))),
34 #end if
35 #if $method.plot.pt_size
36 pt.size = $method.plot.pt_size,
37 #end if
38 alpha = $method.plot.alpha,
39 #if $method.adv.group_by != ''
40 group.by = '$method.adv.group_by',
41 #end if
42 #if $method.adv.split_by != ''
43 split.by = '$method.adv.split_by',
44 #end if
45 adjust = $method.plot.adjust,
46 #if $method.plot.y_max
47 y.max = $method.plot.y_max,
48 #end if
49 same.y.lims = $method.plot.same_y_lims,
50 log = $method.plot.log,
51 #if $method.plot.ncol != ''
52 ncol = $method.plot.ncol,
53 #end if
54 split.plot = $method.adv.split_plot,
55 stack = $method.adv.stack,
56 fill.by = '$method.plot.fill_by',
57 flip = $method.plot.flip,
58 add.noise = $method.plot.add_noise,
59 combine = TRUE
60 )
61
62 #else if $method.method == 'FeatureScatter'
63
64 #if $method.adv.cells
65 cells_list<-paste(readLines('$method.adv.cells'), collapse=",")
66 #end if
67
68 plot<-FeatureScatter(
69 seurat_obj,
70 feature1 = '$method.feature1',
71 feature2 = '$method.feature2',
72 #if $method.adv.cells
73 cells = c(unlist(strsplit(cells_list, ","))),
74 #end if
75 shuffle = $method.plot.shuffle.shuffle,
76 #if $method.plot.shuffle.shuffle == 'TRUE'
77 seed = $method.plot.shuffle.seed,
78 #end if
79 #if $method.adv.group_by != ''
80 group.by = '$method.adv.group_by',
81 #end if
82 #if $method.adv.split_by != ''
83 split.by = '$method.adv.split_by',
84 #end if
85 #if $method.plot.cols != ''
86 cols = c(unlist(strsplit(gsub(" ", "", '$method.plot.cols'), ","))),
87 #end if
88 #if $method.plot.pt_size
89 pt.size = $method.plot.pt_size,
90 #end if
91 #if $method.adv.span != ''
92 span = '$method.adv.span',
93 #end if
94 smooth = $method.plot.smooth,
95 slot = '$method.adv.slot',
96 plot.cor = $method.plot.plot_cor,
97 log = $method.plot.log,
98 #if $method.plot.ncol
99 ncol = $method.plot.ncol,
100 #end if
101 raster = $method.plot.raster.raster,
102 #if $method.plot.raster.raster == 'TRUE'
103 raster.dpi = c($method.plot.raster.raster_x, $method.plot.raster.raster_y),
104 #end if
105 jitter = $method.plot.jitter,
106 combine = TRUE
107 )
108
109 #else if $method.method == 'CellScatter'
110
111 #if $method.features
112 features_list<-paste(readLines('$method.features'), collapse=",")
113 #end if
114
115 plot<-CellScatter(
116 seurat_obj,
117 cell1 = '$method.cell1',
118 cell2 = '$method.cell2',
119 #if $method.features
120 features = c(unlist(strsplit(features_list, ","))),
121 #end if
122 #if $method.highlight != ''
123 highlight = c(unlist(strsplit(gsub(" ", "", '$method.highlight'), ","))),
124 #end if
125 #if $method.plot.cols != ''
126 cols = c(unlist(strsplit(gsub(" ", "", '$method.plot.cols'), ","))),
127 #end if
128 #if $method.plot.pt_size
129 pt.size = $method.plot.pt_size,
130 #end if
131 smooth = $method.plot.smooth,
132 raster = $method.plot.raster.raster,
133 #if $method.plot.raster.raster == 'TRUE'
134 raster.dpi = c($method.plot.raster.raster_x, $method.plot.raster.raster_y),
135 #end if
136 )
137
138 #if $method.label_points == 'true'
139 plot<-LabelPoints(
140 plot,
141 points = c(unlist(strsplit(gsub(" ", "", '$method.highlight'), ","))),
142 repeal = TRUE
143 )
144 #end if
145
146 #else if $method.method == 'VariableFeaturePlot'
147
148 plot<-VariableFeaturePlot(
149 seurat_obj,
150 #if $method.assay != ''
151 assay = '$method.assay',
152 #end if
153 cols = c('$method.plot.cols_1', '$method.plot.cols_2'),
154 #if $method.plot.pt_size
155 pt.size = $method.plot.pt_size,
156 #end if
157 raster = $method.plot.raster.raster,
158 #if $method.plot.raster.raster == 'TRUE'
159 raster.dpi = c($method.plot.raster.raster_x, $method.plot.raster.raster_y),
160 #end if
161 log =$method.plot.log
162 )
163
164 #if $method.label_topN.label_topN == 'true'
165 N = $method.label_topN.topN
166 top_N<-head(VariableFeatures(seurat_obj), N)
167 plot<-LabelPoints(plot,
168 points = top_N,
169 repel = TRUE)
170 #end if
171
172 #else if $method.method == 'VizDimLoadings'
173 plot<-VizDimLoadings(
174 seurat_obj,
175 dims = 1:$method.dims,
176 nfeatures = $method.nfeatures,
177 reduction = '$method.reduction',
178 col = '$method.plot.col',
179 projected = $method.projected,
180 balanced = $method.balanced,
181 #if $method.plot.ncol
182 ncol = $method.plot.ncol,
183 #end if
184 combine = TRUE
185 )
186
187 #else if $method.method == 'DimPlot'
188
189 #if $method.adv.cells
190 cells_list<-paste(readLines('$method.adv.cells'), collapse=",")
191 #end if
192
193 plot<-DimPlot(
194 seurat_obj,
195 dims = c($method.dims_1, $method.dims_2),
196 #if $method.adv.cells
197 cells = c(unlist(strsplit(cells_list, ","))),
198 #end if
199 #if $method.reduction != ''
200 reduction = '$method.reduction',
201 #end if
202 #if $method.plot.cols != ''
203 cols = c(unlist(strsplit(gsub(" ", "", '$method.plot.cols'), ","))),
204 #end if
205 #if $method.plot.pt_size
206 pt.size = $method.plot.pt_size,
207 #end if
208 #if $method.adv.group_by != ''
209 group.by = '$method.adv.group_by',
210 #end if
211 #if $method.adv.split_by != ''
212 split.by = '$method.adv.split_by',
213 #end if
214 #if $method.adv.shape_by != ''
215 shape.by = '$method.adv.shape_by',
216 #end if
217 #if $method.plot.order != ''
218 order = c(unlist(strsplit(gsub(" ", "", '$method.plot.order'), ","))),
219 #end if
220 shuffle = $method.plot.shuffle.shuffle,
221 #if $method.plot.shuffle.shuffle == 'TRUE'
222 seed = $method.plot.shuffle.seed,
223 #end if
224 label = $method.plot.label.label,
225 #if $method.plot.label.label =='TRUE'
226 label.size = $method.plot.label.label_size,
227 label.color = '$method.plot.label.label_color',
228 label.box = $method.plot.label.label_box,
229 repel = $method.plot.label.repel,
230 #end if
231 alpha = $method.plot.alpha,
232 #if $method.plot.highlight.highlight == 'true'
233 cells.highlight = c(unlist(strsplit(gsub(" ", "", '$method.plot.highlight.cells_highlight'), ","))),
234 cols.highlight = '$method.plot.highlight.cols_highlight',
235 sizes.highlight = $method.plot.highlight.sizes_highlight,
236 #end if
237 na.value = '$method.plot.na_value',
238 #if $method.plot.ncol
239 ncol = $method.plot.ncol,
240 #end if
241 raster = $method.plot.raster.raster,
242 #if $method.plot.raster.raster == 'TRUE'
243 raster.dpi = c($method.plot.raster.raster_x, $method.plot.raster.raster_y),
244 #end if
245 combine = TRUE
246 )
247
248 #else if $method.method == 'DimHeatmap'
249 plot<-DimHeatmap(
250 seurat_obj,
251 dims = $method.dims,
252 nfeatures = $method.nfeatures,
253 reduction = '$method.reduction',
254 #if $method.adv.cells != ''
255 cells = $method.adv.cells,
256 #end if
257 #if $method.plot.disp_min
258 disp.min = $method.plot.disp_min,
259 #end if
260 #if $method.plot.disp_max
261 disp.max = $method.plot.disp_max,
262 #end if
263 projected = $method.adv.projected,
264 balanced = $method.adv.balanced,
265 #if $method.plot.ncol
266 ncol = $method.plot.ncol,
267 #end if
268 fast = FALSE,
269 raster = $method.plot.raster,
270 slot = '$method.adv.slot',
271 #if $method.adv.assays != ''
272 assays = c(unlist(strsplit(gsub(" ", "", '$method.adv.assays'), ","))),
273 #end if
274 combine = TRUE
275 )
276
277 #else if $method.method == 'ElbowPlot'
278 plot<-ElbowPlot(
279 seurat_obj,
280 ndims = $method.ndims,
281 reduction = '$method.reduction'
282 )
283
284 #else if $method.method == 'FeaturePlot'
285
286 #if $method.adv.cells
287 cells_list<-paste(readLines('$method.adv.cells'), collapse=",")
288 #end if
289
290 plot<-FeaturePlot(
291 seurat_obj,
292 features = c(unlist(strsplit(gsub(" ", "", '$method.features'), ","))),
293 dims = c('$method.dims_1', '$method.dims_2'),
294 #if $method.reduction != ''
295 reduction = '$method.reduction',
296 #end if
297 #if $method.adv.cells
298 cells = c(unlist(strsplit(cells_list, ","))),
299 #end if
300 blend = $method.plot.blend.blend,
301 #if $method.plot.blend.blend == 'TRUE'
302 cols = c('$method.plot.blend.cols_1', '$method.plot.cols_2', '$method.plot.cols_3'),
303 blend.threshold = $method.plot.blend.blend_threshold,
304 #else
305 cols = c('$method.plot.cols_2', '$method.plot.cols_3'),
306 #end if
307 #if $method.plot.pt_size
308 pt.size = $method.plot.pt_size,
309 #end if
310 alpha = $method.plot.alpha,
311 order = $method.plot.order,
312 min.cutoff = 'q$method.adv.min_cutoff',
313 max.cutoff = 'q$method.adv.max_cutoff',
314 #if $method.adv.split_by != ''
315 split.by = '$method.adv.split_by',
316 by.col = $method.plot.blend.by_col,
317 #end if
318 keep.scale = '$method.plot.keep_scale',
319 #if $method.adv.shape_by != ''
320 shape.by = '$method.adv.shape_by',
321 #end if
322 slot = '$method.adv.slot',
323 label = $method.plot.label.label,
324 #if $method.plot.label.label =='TRUE'
325 label.size = $method.plot.label.label_size,
326 label.color = '$method.plot.label.label_color',
327 repel = $method.plot.label.repel,
328 #end if
329 #if $method.plot.ncol
330 ncol = $method.plot.ncol,
331 #end if
332 coord.fixed = $method.plot.coord_fixed,
333 raster = $method.plot.raster.raster,
334 #if $method.plot.raster.raster == 'TRUE'
335 raster.dpi = c($method.plot.raster.raster_x, $method.plot.raster.raster_y),
336 #end if
337 combine = TRUE
338 )
339
340 #else if $method.method == 'DoHeatmap'
341
342 #if $method.features
343 features_list<-paste(readLines('$method.features'), collapse=",")
344 #end if
345 #if $method.cells
346 cells_list<-paste(readLines('$method.cells'), collapse=",")
347 #end if
348
349 plot<-DoHeatmap(
350 seurat_obj,
351 #if $method.features
352 features = c(unlist(strsplit(features_list, ","))),
353 #end if
354 #if $method.cells
355 cells = c(unlist(strsplit(cells_list, ","))),
356 #end if
357 #if $method.adv.group_by != ''
358 group.by = '$method.adv.group_by',
359 #end if
360 group.bar = $method.plot.group_bar,
361 #if $method.plot.group_colors != ''
362 group.colors = c(unlist(strsplit(gsub(" ", "", '$method.plot.group_colors'), ","))),
363 #end if
364 #if $method.plot.disp_min
365 disp.min = $method.plot.disp_min,
366 #end if
367 #if $method.plot.disp_max
368 disp.max = $method.plot.disp_max,
369 #end if
370 slot = '$method.adv.slot',
371 #if $method.adv.assay != ''
372 assay = '$method.adv.assay',
373 #end if
374 label = $method.plot.label,
375 size = $method.plot.size,
376 hjust = $method.plot.hjust,
377 vjust = $method.plot.vjust,
378 angle = $method.plot.angle,
379 raster = $method.plot.raster,
380 draw.lines = $method.plot.draw_lines,
381 #if $method.plot.lines_width
382 lines.width = $method.plot.lines_width,
383 #end if
384 group.bar.height = $method.plot.group_bar_height,
385 combine = TRUE
386 )
387
388 #else if $method.method == 'DotPlot'
389 plot<-DotPlot(
390 seurat_obj,
391 features = c(unlist(strsplit(gsub(" ", "", '$method.features'), ","))),
392 #if $method.plot.cols.cols == 'two'
393 cols = c('$method.plot.cols.cols_1', '$method.plot.cols.cols_2'),
394 #else if $method.plot.cols.cols == 'more'
395 cols = c(unlist(strsplit(gsub(" ", "", '$method.plot.cols.cols_more'), ","))),
396 #end if
397 col.min = $method.plot.col_min,
398 col.max = $method.plot.col_max,
399 dot.min = $method.plot.dot_min,
400 dot.scale = $method.plot.dot_scale,
401 cluster.idents = $method.plot.cluster_idents,
402 scale = $method.plot.scale.scale,
403 #if $method.plot.scale.scale == 'TRUE'
404 scale.by = '$method.plot.scale.scale_by',
405 #if $method.plot.scale.scale_min != ''
406 scale.min = $method.plot.scale.scale_min,
407 #end if
408 #if $method.plot.scale.scale_max != ''
409 scale.max = $method.plot.scale.scale_max
410 #end if
411 #end if
412 #if $method.adv.assay != ''
413 assay = '$method.adv.assay',
414 #end if
415 #if $method.adv.group_by != ''
416 group.by = '$method.adv.group_by',
417 #end if
418 #if $method.adv.split_by != ''
419 split.by = '$method.adv.split_by'
420 #end if
421 )
422
423 #end if
424
425 #if $plot_format == 'png'
426 ggsave('plot.png',
427 #if $resize.resize == 'true'
428 width = $resize.width,
429 height = $resize.height,
430 units = 'px',
431 #end if
432 bg = 'white'
433 )
434 #else if $plot_format == 'pdf'
435 ggsave('plot.pdf',
436 #if $resize.resize == 'true'
437 width = $resize.width,
438 height = $resize.height,
439 units = 'px',
440 #end if
441 bg = 'white'
442 )
443 #else if $plot_format == 'svg'
444 ggsave('plot.svg',
445 #if $resize.resize == 'true'
446 width = $resize.width,
447 height = $resize.height,
448 units = 'px',
449 #end if
450 bg = 'white'
451 )
452 #else if $plot_format == 'jpeg'
453 ggsave('plot.jpeg',
454 #if $resize.resize == 'true'
455 width = $resize.width,
456 height = $resize.height,
457 units = 'px',
458 #end if
459 bg = 'white'
460 )
461 #else if $plot_format == 'tex'
462 ggsave('plot.tex',
463 #if $resize.resize == 'true'
464 width = $resize.width,
465 height = $resize.height,
466 units = 'px',
467 #end if
468 bg = 'white'
469 )
470 #else if $plot_format == 'tiff'
471 ggsave('plot.tiff',
472 #if $resize.resize == 'true'
473 width = $resize.width,
474 height = $resize.height,
475 units = 'px',
476 #end if
477 bg = 'white'
478 )
479 #else if $plot_format == 'eps'
480 ggsave('plot.eps',
481 #if $resize.resize == 'true'
482 width = $resize.width,
483 height = $resize.height,
484 units = 'px',
485 #end if
486 bg = 'white'
487 )
488 #end if
489
490 ]]></configfile>
491 </configfiles>
492 <inputs>
493 <expand macro="input_rds"/>
494 <expand macro="plot_types"/>
495 <conditional name="method">
496 <param name="method" type="select" label="Method used">
497 <option value="VlnPlot">Violin Plot with 'VlnPlot'</option>
498 <option value="FeatureScatter">Scatter Plot with 'FeatureScatter'</option>
499 <option value="CellScatter">Scatter Plot with 'CellScatter'</option>
500 <option value="VariableFeaturePlot">Plot Variable Genes with 'VariableFeaturePlot'</option>
501 <option value="VizDimLoadings">Visualize Reduction Results with 'VizDimLoadings'</option>
502 <option value="DimPlot">Visualize Dimensional Reduction with 'DimPlot'</option>
503 <option value="DimHeatmap">Visualize Reduction Results with 'DimHeatmap'</option>
504 <option value="ElbowPlot">Determine dimensionality with 'ElbowPlot'</option>
505 <option value="FeaturePlot">Visualize expression with 'FeaturePlot'</option>
506 <option value="DoHeatmap">Visualize expression with 'DoHeatmap'</option>
507 <option value="DotPlot">Visualize expression with 'DotPlot'</option>
508 </param>
509 <when value="VlnPlot">
510 <param argument="features" type="text" value="nFeature_RNA" label="Features to plot" help="as variables on y-axis, comma-separated list e.g. nCount_RNA, percent.mt">
511 <expand macro="valid_list"/>
512 </param>
513 <param argument="idents" type="text" optional="true" value="" label="Ident classes to display on plot" help="as category on x-axis, defauts to all">
514 <expand macro="valid_name"/>
515 </param>
516 <param argument="sort" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Sort identity classes by average expression"/>
517 <section name="plot" title="Plot Formatting Options">
518 <expand macro="plot_ncol"/>
519 <expand macro="plot_cols"/>
520 <expand macro="plot_pt_size"/>
521 <expand macro="plot_alpha"/>
522 <param argument="adjust" type="integer" value="1" label="Adjust parameter for geom_violin"/>
523 <param name="y_max" type="float" optional="true" value="" label="Maximum y axis value" help="(y.max)"/>
524 <param name="same_y_lims" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Set all y-axis limits to same value" help="when plotting multiple features (same.y.lims)"/>
525 <expand macro="plot_log_scale"/>
526 <param name="fill_by" type="select" label="Colour violins by feature or ident" help="(fill.by)">
527 <option value="feature" selected="true">feature</option>
528 <option value="ident">ident</option>
529 </param>
530 <param argument="flip" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Flip plot orientation" help="puts identities on y-axis"/>
531 <param name="add_noise" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Add a small noise for plotting" help="(add.noise)"/>
532 </section>
533 <section name="adv" title="Advanced Options">
534 <expand macro="select_assay"/>
535 <expand macro="select_layer"/>
536 <expand macro="plot_group_by"/>
537 <expand macro="plot_split_by"/>
538 <param name="split_plot" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Plot each group of a split plot as multiple violin shapes" help="(split.plot)"/>
539 <param argument="stack" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Horizontally stack plots for each feature"/>
540 </section>
541 </when>
542 <when value="FeatureScatter">
543 <param argument="feature1" type="text" value="nCount_RNA" label="First feature to plot" help="on x-axis">
544 <expand macro="valid_name"/>
545 </param>
546 <param argument="feature2" type="text" value="nFeature_RNA" label="Second feature to plot" help="on y-axis">
547 <expand macro="valid_name"/>
548 </param>
549 <section name="plot" title="Plot Formatting Options">
550 <expand macro="plot_cols"/>
551 <expand macro="plot_pt_size"/>
552 <expand macro="plot_shuffle_and_seed"/>
553 <expand macro="plot_smooth"/>
554 <param name="plot_cor" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Display correlation in plot title" help="(plot.cor)"/>
555 <expand macro="plot_ncol"/>
556 <expand macro="raster_select"/>
557 <expand macro="plot_log_scale"/>
558 <param argument="jitter" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Jitter for easier visualization of crowded points"/>
559 </section>
560 <section name="adv" title="Advanced Options">
561 <param argument="cells" type="data" format="txt,tabular" optional="true" label="List of cells to include on plot" help="text file with one cell on each line"/>
562 <expand macro="select_slot_data"/>
563 <expand macro="plot_group_by"/>
564 <expand macro="plot_split_by"/>
565 <param argument="span" type="boolean" truevalue="TRUE" falsevalue="NULL" checked="false" label="Spline span in loess function call"/>
566 </section>
567 </when>
568 <when value="CellScatter">
569 <param argument="cell1" type="text" value="cell 1" label="First cell to plot" help="on x-axis">
570 <expand macro="valid_cell_name"/>
571 </param>
572 <param argument="cell2" type="text" value="cell 2" label="Second cell to plot" help="on y-axis">
573 <expand macro="valid_cell_name"/>
574 </param>
575 <param argument="features" type="data" format="txt,tabular" optional="true" label="List of features to plot" help="text file with one feature on each line, default is all features"/>
576 <param argument="highlight" type="text" optional="true" value="" label="Features to highlight">
577 <expand macro="valid_list"/>
578 </param>
579 <param name="label_points" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Label highlighted features"/>
580 <section name="plot" title="Plot Formatting Options">
581 <expand macro="plot_cols"/>
582 <expand macro="plot_pt_size"/>
583 <expand macro="plot_smooth"/>
584 <expand macro="raster_select"/>
585 </section>
586 </when>
587 <when value="VariableFeaturePlot">
588 <expand macro="select_assay"/>
589 <conditional name="label_topN">
590 <param name="label_topN" type="select" label="Label the top most variable features">
591 <option value="true">Yes</option>
592 <option value="false" selected="true">No</option>
593 </param>
594 <when value="true">
595 <expand macro="set_topN"/>
596 </when>
597 <when value="false">
598 </when>
599 </conditional>
600 <section name="plot" title="Plot Formatting Options">
601 <param name="cols_1" type="select" label="Colour for non-variable genes">
602 <option value="black" selected="true">black</option>
603 <option value="grey">grey</option>
604 </param>
605 <param name="cols_2" type="select" label="Colour for variable genes">
606 <option value="red" selected="true">red</option>
607 <option value="blue">blue</option>
608 <option value="green">green</option>
609 <option value="orange">orange</option>
610 <option value="magenta">magenta</option>
611 <option value="purple">purple</option>
612 <option value="black">black</option>
613 </param>
614 <expand macro="plot_pt_size"/>
615 <param argument="log" type="boolean" truevalue="TRUE" falsevalue="NULL" checked="false" label="Plot the x-axis in log scale"/>
616 <expand macro="raster_select"/>
617 </section>
618 </when>
619 <when value="VizDimLoadings">
620 <param argument="dims" type="integer" value="10" label="Number of dimensions to display"/>
621 <param argument="nfeatures" type="integer" value="30" label="Number of genes to display"/>
622 <expand macro="select_reduction_pca"/>
623 <expand macro="plot_projected_and_balanced"/>
624 <section name="plot" title="Plot Formatting Options">
625 <param argument="col" type="select" label="Colour to use for points">
626 <option value="blue" selected="true">blue</option>
627 <option value="red">red</option>
628 <option value="green">green</option>
629 <option value="orange">orange</option>
630 <option value="magenta">magenta</option>
631 <option value="purple">purple</option>
632 <option value="grey">grey</option>
633 <option value="black">black</option>
634 </param>
635 <expand macro="plot_ncol"/>
636 </section>
637 </when>
638 <when value="DimPlot">
639 <expand macro="plot_2_dims"/>
640 <expand macro="select_reduction_umap"/>
641 <section name="plot" title="Plot Formatting Options">
642 <expand macro="plot_cols"/>
643 <expand macro="plot_pt_size"/>
644 <expand macro="plot_order"/>
645 <expand macro="plot_shuffle_and_seed"/>
646 <expand macro="plot_alpha"/>
647 <expand macro="plot_ncol"/>
648 <expand macro="raster_select"/>
649 <conditional name="label">
650 <param argument="label" type="select" label="Add labels to the clusters">
651 <option value="TRUE">Yes</option>
652 <option value="FALSE" selected="true">No</option>
653 </param>
654 <when value="TRUE">
655 <param name="label_size" type="integer" value="4" label="Set size of labels" help="(label.size)"/>
656 <param name="label_color" type="select" label="Set colour of label text" help="(label.color)">
657 <option value="black" selected="true">black</option>
658 <option value="grey">grey</option>
659 </param>
660 <param name="label_box" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Put a box around each label" help="(label.box)"/>
661 <param argument="repel" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Repel labels"/>
662 </when>
663 <when value="FALSE">
664 </when>
665 </conditional>
666 <conditional name="highlight">
667 <param name="highlight" type="select" label="Highlight group(s) of cells">
668 <option value="true">Yes</option>
669 <option value="false" selected="true">No</option>
670 </param>
671 <when value="true">
672 <param name="cells_highlight" type="text" value="" label="List of cells to highlight" help="comma-separated list of e.g. barcodes, clusters, groups (cells.highlight)">
673 <expand macro="valid_cell_list"/>
674 </param>
675 <param name="cols_highlight" type="select" label="Colour for highlighted cells" help="other cells will be black (cols.highlight)">
676 <option value="blue" selected="true">blue</option>
677 <option value="red">red</option>
678 <option value="green">green</option>
679 <option value="orange">orange</option>
680 <option value="magenta">magenta</option>
681 <option value="purple">purple</option>
682 <option value="grey">grey</option>
683 </param>
684 <param name="sizes_highlight" type="integer" value="1" label="Size of highlighted cells" help="(sizes.highlight)"/>
685 </when>
686 <when value="false">
687 </when>
688 </conditional>
689 <param name="na_value" type="select" label="Colour for NA points when using custom scale" help="(na.value)">
690 <option value="lightgrey" selected="true">lightgrey</option>
691 <option value="grey">grey</option>
692 <option value="black">black</option>
693 </param>
694 </section>
695 <section name="adv" title="Advanced Options">
696 <param argument="cells" type="data" format="txt,tabular" optional="true" label="List of cells to include on plot" help="text file with one cell on each line"/>
697 <expand macro="plot_group_by"/>
698 <expand macro="plot_split_by"/>
699 <param name="shape_by" type="text" optional="true" value="" label="Shape points by a group or identity" help="only when not saving as raster (shape.by)"/>
700 </section>
701 </when>
702 <when value="DimHeatmap">
703 <param argument="dims" type="text" value="1:10" label="Dimensions from reduction to plot" help="enter one or a range of dimensions e.g. 3 to plot dim 3, 1:10 to plot dims 1 to 10">
704 <validator type="regex" message="Please only use numbers or colon">^[\d:]+$</validator>
705 </param>
706 <param argument="nfeatures" type="integer" value="30" label="Number of genes to plot"/>
707 <expand macro="select_reduction_pca"/>
708 <section name="plot" title="Plot Formatting Options">
709 <expand macro="plot_disp_min_max"/>
710 <expand macro="plot_ncol"/>
711 <expand macro="raster_boolean"/>
712 </section>
713 <section name="adv" title="Advanced Options">
714 <param argument="cells" type="integer" optional="true" value="" label="Number of top cells to plot"/>
715 <expand macro="select_slot_scale"/>
716 <param argument="assays" type="text" optional="true" value="" label="Vector of assays to pull data from">
717 <expand macro="valid_list"/>
718 </param>
719 <expand macro="plot_projected_and_balanced"/>
720 </section>
721 </when>
722 <when value="ElbowPlot">
723 <param argument="ndims" type="integer" value="30" label="Number of dimensions to plot standard deviation for"/>
724 <expand macro="select_reduction_pca"/>
725 </when>
726 <when value="FeaturePlot">
727 <param argument="features" type="text" value="" label="Features to plot" help="e.g. gene, percent.mito, PC_1">
728 <expand macro="valid_list"/>
729 </param>
730 <expand macro="plot_2_dims"/>
731 <expand macro="select_reduction_umap"/>
732 <section name="plot" title="Plot Formatting Options">
733 <param name="keep_scale" type="select" label="How to handle colour scale across multiple plots" help="(keep.scale)">
734 <option value="feature" selected="true">Scale each feature separately</option>
735 <option value="all">Scale all to same maximum</option>
736 </param>
737 <conditional name="blend">
738 <param argument="blend" type="select" label="Scale and blend expression values to visualize coexpression" help="of two features entered as features to plot">
739 <option value="TRUE">Yes</option>
740 <option value="FALSE" selected="true">No</option>
741 </param>
742 <when value="TRUE">
743 <param name="blend_threshold" type="float" value="0.5" min="0" max="1" label="Colour cutoff from weak signal to strong signal" help="(blend.threshold)"/>
744 <param name="cols_1" type="select" label="Colour for double negatives">
745 <option value="lightgrey" selected="true">lightgrey</option>
746 <option value="grey">grey</option>
747 <option value="black">black</option>
748 </param>
749 </when>
750 <when value="FALSE">
751 <param name="by_col" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="If splitting by a factor, plot the splits per column with features as rows" help="ignored if blend = TRUE (by.col)"/>
752 </when>
753 </conditional>
754 <param name="cols_2" type="select" label="Colour for low values">
755 <option value="lightgrey" selected="true">light grey</option>
756 <option value="grey">grey</option>
757 <option value="lightblue">light blue</option>
758 <option value="blue">blue</option>
759 <option value="palegreen">light green</option>
760 <option value="palegreen4">green</option>
761 <option value="red">red</option>
762 <option value="red4">dark red</option>
763 </param>
764 <param name="cols_3" type="select" label="Colour for high values">
765 <option value="lightgrey">light grey</option>
766 <option value="grey">grey</option>
767 <option value="lightblue">light blue</option>
768 <option value="blue" selected="true">blue</option>
769 <option value="palegreen">light green</option>
770 <option value="palegreen4">green</option>
771 <option value="red">red</option>
772 <option value="red4">dark red</option>
773 </param>
774 <expand macro="plot_pt_size"/>
775 <expand macro="plot_alpha"/>
776 <param argument="order" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Plot cells in order of expression"/>
777 <conditional name="label">
778 <param argument="label" type="select" label="Add labels to the clusters">
779 <option value="TRUE">Yes</option>
780 <option value="FALSE" selected="true">No</option>
781 </param>
782 <when value="TRUE">
783 <param name="label_size" type="integer" value="4" label="Set size of labels" help="(label.size)"/>
784 <param name="label_color" type="select" label="Set colour of label text" help="(label.color)">
785 <option value="black">black</option>
786 <option value="grey">grey</option>
787 </param>
788 <param argument="repel" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Repel labels"/>
789 </when>
790 <when value="FALSE">
791 </when>
792 </conditional>
793 <param name="coord_fixed" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Plot cartesian coordinates with fixed aspect ratio" help="(coord.fixed)"/>
794 <expand macro="plot_ncol"/>
795 <expand macro="raster_select"/>
796 </section>
797 <section name="adv" title="Advanced Options">
798 <param argument="cells" type="data" format="txt,tabular" optional="true" label="List of cells to include on plot" help="text file with one cell on each line"/>
799 <expand macro="select_slot_data"/>
800 <expand macro="plot_split_by"/>
801 <param name="shape_by" type="text" optional="true" value="" label="Shape points by a group or identity (only if raster is FALSE)" help="(shape.by)"/>
802 <param name="min_cutoff" type="integer" optional="true" value="" label="Minimum cutoff for features - as quantile" help="(min.cutoff)"/>
803 <param name="max_cutoff" type="integer" optional="true" value="" label="Maximum cutoff for features - as quantile" help="(max.cutoff)"/>
804 </section>
805 </when>
806 <when value="DoHeatmap">
807 <param argument="features" type="data" format="txt,tabular" optional="true" label="List of features to plot" help="text file with one cell on each line, defaults to VariableFeatures"/>
808 <param argument="cells" type="data" format="txt,tabular" optional="true" label="List of cells to include on plot" help="text file with one cell on each line"/>
809 <section name="plot" title="Plot Formatting Options">
810 <param name="group_bar" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Add colour bar showing group status for cells" help="(group.bar)"/>
811 <param name="group_colors" type="text" optional="true" value="" label="Colours to use for colour bar" help="comma-separated list of colours, one for each identity(group.colors)">
812 <expand macro="valid_list"/>
813 </param>
814 <expand macro="plot_disp_min_max"/>
815 <param argument="label" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Label cell identities above the colour bar" help="(label)"/>
816 <param argument="size" type="float" value="5.5" label="Size of text above colour bar" help="(size)"/>
817 <param argument="hjust" type="float" value="0" label="Horizontal justification of text above colour bar" help="(hjust)"/>
818 <param argument="vjust" type="float" value="0" label="Vertical justification of text above colour bar" help="(vjust)"/>
819 <param argument="angle" type="integer" value="45" min="0" max="90" label="Angle of text above colour bar" help="(angle)"/>
820 <expand macro="raster_boolean"/>
821 <param name="draw_lines" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Include white lines to separate the groups" help="(draw.lines)"/>
822 <param name="lines_width" type="integer" optional="true" value="" label="Integer number to adjust width of separating lines" help="corresponds to the number of 'cells' between groups (lines.width)"/>
823 <param name="group_bar_height" type="float" value="0.02" label="Scale the height of the colour bar" help="(group.bar.height)"/>
824 </section>
825 <section name="adv" title="Advanced options">
826 <param name="group_by" type="text" optional="true" value="ident" label="Vector of variables to group cells by" help="use ident to group by cluster (group.by)">
827 <expand macro="valid_list"/>
828 </param>
829 <expand macro="select_slot_scale"/>
830 <expand macro="select_assay"/>
831 </section>
832 </when>
833 <when value="DotPlot">
834 <param argument="idents" type="text" optional="true" value="" label="Identity classes to include in plot" help="comma-separated list of clusters/idents, leave blank to include all">
835 <expand macro="valid_list"/>
836 </param>
837 <param argument="features" type="text" value="" label="Features to plot" help="object or comma-separated list">
838 <expand macro="valid_list"/>
839 </param>
840 <section name="plot" title="Plot Formatting Options">
841 <conditional name="cols">
842 <param name="cols" type="select" label="" help="">
843 <option value="two" selected="true">two</option>
844 <option value="more">more</option>
845 </param>
846 <when value="two">
847 <param name="cols_1" type="select" label="Colour for low values">
848 <option value="lightgrey" selected="true">light grey</option>
849 <option value="grey">grey</option>
850 <option value="lightblue">light blue</option>
851 <option value="blue">blue</option>
852 <option value="palegreen">light green</option>
853 <option value="palegreen4">green</option>
854 <option value="red">light red</option>
855 <option value="red4">red</option>
856 </param>
857 <param name="cols_2" type="select" label="Colour for high values">
858 <option value="lightgrey">light grey</option>
859 <option value="grey">grey</option>
860 <option value="lightblue">light blue</option>
861 <option value="blue" selected="true">blue</option>
862 <option value="palegreen">light green</option>
863 <option value="palegreen4">green</option>
864 <option value="red">red</option>
865 <option value="red4">dark red</option>
866 </param>
867 </when>
868 <when value="more">
869 <param name="cols_more" type="text" value="RdBu" label="Colours to plot" help="comma-separated list or palette (cols)">
870 <expand macro="valid_list"/>
871 </param>
872 </when>
873 </conditional>
874 <param name="col_min" type="float" value="-2.5" label="Minimum scaled average expression threshold" help="everything smaller will be set to this (col.min"/>
875 <param name="col_max" type="float" value="2.5" label="Maximum scaled average expression threshold" help="everything larger will be set to this (col.max"/>
876 <param name="dot_min" type="float" value="0" min="0" max="1" label="Fraction of cells at which to draw smallest dot" help="no dot drawn for groups where fewer cells express the gene (dot.min)"/>
877 <param name="dot_scale" type="float" value="6" label="Scale size of points" help="(dot.scale)"/>
878 <param name="cluster_idents" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Order identities into hierarchy" help="based on the features being plotted (cluster.idents)"/>
879 <conditional name="scale">
880 <param argument="scale" type="select" label="Scale the data">
881 <option value="TRUE" selected="true">No</option>
882 <option value="FALSE">Yes</option>
883 </param>
884 <when value="FALSE"></when>
885 <when value="TRUE">
886 <param name="scale_by" type="select" label="Scale by" help="(scale.by)">
887 <option value="radius" selected="true">radius</option>
888 <option value="size">size</option>
889 </param>
890 <param name="scale_min" type="float" optional="true" value="" label="Lower limit for scaling" help="leave blank to use default (scale.min)"/>
891 <param name="scale_max" type="float" optional="true" value="" label="Upper limit for scaling" help="leave blank to use default (scale.max)"/>
892 </when>
893 </conditional>
894 </section>
895 <section name="adv" title="Advanced Options">
896 <expand macro="select_assay"/>
897 <expand macro="plot_group_by"/>
898 <expand macro="plot_split_by"/>
899 </section>
900 </when>
901 </conditional>
902 <expand macro="plot_sizes"/>
903 <expand macro="inputs_common_advanced"/>
904 </inputs>
905 <outputs>
906 <expand macro="plot_out"/>
907 <expand macro="outputs_common_advanced"/>
908 </outputs>
909 <tests>
910 <test expect_num_outputs="2">
911 <!-- test1: VlnPlot PNG -->
912 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/filtered.rds"/>
913 <param name="plot_format" value="png"/>
914 <conditional name="method">
915 <param name="method" value="VlnPlot"/>
916 <param name="features" value="nFeature_RNA, nCount_RNA, percent.mt"/>
917 <section name="plot">
918 <param name="ncol" value="2"/>
919 </section>
920 </conditional>
921 <section name="advanced_common">
922 <param name="show_log" value="true"/>
923 </section>
924 <output name="hidden_output">
925 <assert_contents>
926 <has_text_matching expression="VlnPlot"/>
927 </assert_contents>
928 </output>
929 <output name="plot_out_png" location="https://zenodo.org/records/13732784/files/VlnPlot.png" ftype="png" compare="image_diff"/>
930 </test>
931 <test expect_num_outputs="2">
932 <!-- test2: FeatureScatter PDF -->
933 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/filtered.rds"/>
934 <param name="plot_format" value="png"/>
935 <conditional name="method">
936 <param name="method" value="FeatureScatter"/>
937 <param name="feature1" value="nCount_RNA"/>
938 <param name="feature2" value="percent.mt"/>
939 </conditional>
940 <section name="advanced_common">
941 <param name="show_log" value="true"/>
942 </section>
943 <output name="hidden_output">
944 <assert_contents>
945 <has_text_matching expression="FeatureScatter"/>
946 </assert_contents>
947 </output>
948 <output name="plot_out_png" location="https://zenodo.org/records/13732784/files/FeatureScatter.png" ftype="png" compare="image_diff"/>
949 </test>
950 <test expect_num_outputs="2">
951 <!-- test3: CellScatter PDF -->
952 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/variablefeatures.rds"/>
953 <param name="plot_format" value="pdf"/>
954 <conditional name="method">
955 <param name="method" value="CellScatter"/>
956 <param name="cell1" value="X16cell"/>
957 <param name="cell2" value="midblast.9"/>
958 <param name="highlight" value="Pkd2l2, Gm4850, Nlrp9b"/>
959 <param name="label_points" value="true"/>
960 </conditional>
961 <section name="advanced_common">
962 <param name="show_log" value="true"/>
963 </section>
964 <output name="hidden_output">
965 <assert_contents>
966 <has_text_matching expression="CellScatter"/>
967 </assert_contents>
968 </output>
969 <output name="plot_out_pdf" location="https://zenodo.org/records/13732784/files/CellScatter.pdf" ftype="pdf" compare="diff" lines_diff="50"/>
970 </test>
971 <test expect_num_outputs="2">
972 <!-- test4: VariableFeaturePlot SVG -->
973 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/variablefeatures.rds"/>
974 <param name="plot_format" value="svg"/>
975 <conditional name="method">
976 <param name="method" value="VariableFeaturePlot"/>
977 <conditional name="label_topN">
978 <param name="label_topN" value="true"/>
979 <param name="topN" value="5"/>
980 </conditional>
981 </conditional>
982 <section name="advanced_common">
983 <param name="show_log" value="true"/>
984 </section>
985 <output name="hidden_output">
986 <assert_contents>
987 <has_text_matching expression="VariableFeaturePlot"/>
988 </assert_contents>
989 </output>
990 <output name="plot_out_svg" location="https://zenodo.org/records/13732784/files/VariableFeaturePlot.svg" ftype="svg" compare="diff" lines_diff="50"/>
991 </test>
992 <test expect_num_outputs="2">
993 <!-- test5: VizDimLoadings JPEG -->
994 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/pca.rds"/>
995 <param name="plot_format" value="jpeg"/>
996 <conditional name="method">
997 <param name="method" value="VizDimLoadings"/>
998 <param name="dims" value="5"/>
999 <param name="nfeatures" value="10"/>
1000 <param name="reduction" value="pca"/>
1001 <section name="plot">
1002 <param name="col" value="magenta"/>
1003 </section>
1004 <param name="projected" value="FALSE"/>
1005 <param name="balanced" value="TRUE"/>
1006 </conditional>
1007 <section name="advanced_common">
1008 <param name="show_log" value="true"/>
1009 </section>
1010 <output name="hidden_output">
1011 <assert_contents>
1012 <has_text_matching expression="VizDimLoadings"/>
1013 </assert_contents>
1014 </output>
1015 <output name="plot_out_jpeg" location="https://zenodo.org/records/13732784/files/VizDimLoadings.jpeg" ftype="jpeg" compare="image_diff"/>
1016 </test>
1017 <test expect_num_outputs="2">
1018 <!-- test6: DimPlot TEX -->
1019 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/umap.rds"/>
1020 <param name="plot_format" value="tex"/>
1021 <conditional name="method">
1022 <param name="method" value="DimPlot"/>
1023 <param name="dims" value="1, 2"/>
1024 <param name="reduction" value="umap"/>
1025 </conditional>
1026 <section name="advanced_common">
1027 <param name="show_log" value="true"/>
1028 </section>
1029 <output name="hidden_output">
1030 <assert_contents>
1031 <has_text_matching expression="DimPlot"/>
1032 </assert_contents>
1033 </output>
1034 <output name="plot_out_tex" location="https://zenodo.org/records/13732784/files/DimPlot.tex" ftype="tex">
1035 <assert_contents>
1036 <has_text_matching expression="beginpicture"/>
1037 </assert_contents>
1038 </output>
1039 </test>
1040 <test expect_num_outputs="2">
1041 <!-- test7: DimHeatmap TIFF -->
1042 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/pca.rds"/>
1043 <param name="plot_format" value="tiff"/>
1044 <conditional name="method">
1045 <param name="method" value="DimHeatmap"/>
1046 <param name="dims" value="1:3"/>
1047 <param name="nfeatures" value="30"/>
1048 <param name="reduction" value="pca"/>
1049 <section name="adv">
1050 <param name="cells" value="50"/>
1051 <param name="slot" value="scale.data"/>
1052 <param name="balanced" value="TRUE"/>
1053 </section>
1054 <section name="plot">
1055 <param name="raster" value="TRUE"/>
1056 <param name="ncol" value="1"/>
1057 </section>
1058 </conditional>
1059 <section name="advanced_common">
1060 <param name="show_log" value="true"/>
1061 </section>
1062 <output name="hidden_output">
1063 <assert_contents>
1064 <has_text_matching expression="DimHeatmap"/>
1065 </assert_contents>
1066 </output>
1067 <output name="plot_out_tiff" location="https://zenodo.org/records/13732784/files/DimHeatmap.tiff" ftype="tiff" compare="image_diff"/>
1068 </test>
1069 <test expect_num_outputs="2">
1070 <!-- test8: ElbowPlot EPS -->
1071 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/pca.rds"/>
1072 <param name="plot_format" value="eps"/>
1073 <conditional name="method">
1074 <param name="method" value="ElbowPlot"/>
1075 <param name="ndims" value="50"/>
1076 <param name="reduction" value="pca"/>
1077 </conditional>
1078 <section name="advanced_common">
1079 <param name="show_log" value="true"/>
1080 </section>
1081 <output name="hidden_output">
1082 <assert_contents>
1083 <has_text_matching expression="ElbowPlot"/>
1084 </assert_contents>
1085 </output>
1086 <output name="plot_out_eps" location="https://zenodo.org/records/13732784/files/ElbowPlot.eps" ftype="eps"/>
1087 </test>
1088 <test expect_num_outputs="2">
1089 <!-- test9: FeaturePlot PNG -->
1090 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/umap.rds"/>
1091 <param name="plot_format" value="png"/>
1092 <conditional name="method">
1093 <param name="method" value="FeaturePlot"/>
1094 <param name="features" value="Obox6"/>
1095 <param name="dims" value="1, 2"/>
1096 <param name="reduction" value="umap"/>
1097 <section name="plot">
1098 <param name="cols_2" value="blue"/>
1099 <param name="cols_3" value="lightblue"/>
1100 </section>
1101 </conditional>
1102 <section name="advanced_common">
1103 <param name="show_log" value="true"/>
1104 </section>
1105 <output name="hidden_output">
1106 <assert_contents>
1107 <has_text_matching expression="FeaturePlot"/>
1108 </assert_contents>
1109 </output>
1110 <output name="plot_out_png" location="https://zenodo.org/records/13732784/files/FeaturePlot.png" ftype="png" compare="image_diff"/>
1111 </test>
1112 <test expect_num_outputs="2">
1113 <!-- test10: DoHeatmap PNG -->
1114 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/clusters.rds"/>
1115 <param name="plot_format" value="png"/>
1116 <conditional name="method">
1117 <param name="method" value="DoHeatmap"/>
1118 <section name="plot">
1119 <param name="raster" value="TRUE"/>
1120 </section>
1121 <section name="adv">
1122 <param name="group_by" value="ident"/>
1123 </section>
1124 </conditional>
1125 <conditional name="resize">
1126 <param name="resize" value="true"/>
1127 <param name="width" value="2100"/>
1128 <param name="height" value="3100"/>
1129 </conditional>
1130 <section name="advanced_common">
1131 <param name="show_log" value="true"/>
1132 </section>
1133 <output name="hidden_output">
1134 <assert_contents>
1135 <has_text_matching expression="DoHeatmap"/>
1136 </assert_contents>
1137 </output>
1138 <output name="plot_out_png" location="https://zenodo.org/records/13732784/files/DoHeatmap.png" ftype="png" compare="image_diff"/>
1139 </test>
1140 <test expect_num_outputs="2">
1141 <!-- test11: DotPlot PNG -->
1142 <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/clusters.rds"/>
1143 <param name="plot_format" value="png"/>
1144 <conditional name="method">
1145 <param name="method" value="DotPlot"/>
1146 <param name="features" value="Pkd2l2, Gm4850, Nlrp9b, Dnajb4, Siah2"/>
1147 </conditional>
1148 <section name="advanced_common">
1149 <param name="show_log" value="true"/>
1150 </section>
1151 <output name="hidden_output">
1152 <assert_contents>
1153 <has_text_matching expression="DotPlot"/>
1154 </assert_contents>
1155 </output>
1156 <output name="plot_out_png" location="https://zenodo.org/records/13732784/files/DotPlot.png" ftype="png" compare="image_diff"/>
1157 </test>
1158 </tests>
1159 <help><![CDATA[
1160 Seurat
1161 ======
1162
1163 Seurat is an R package designed for QC, analysis, and exploration of single-cell RNA-seq data.
1164
1165 Seurat aims to enable users to identify and interpret sources of heterogeneity from single-cell transcriptomic measurements, and to integrate diverse types of single-cell data.
1166
1167 You can choose which type of file you want to produce, but be aware that some types (e.g. tex) may not be viewable on Galaxy, although you will be able to download them to use elsewhere.
1168
1169 VlnPlot
1170 =======
1171
1172 Draw a violin plot of single cell data (gene expression, metrics, PC scores, etc.)
1173
1174 More details on the `seurat documentation
1175 <https://satijalab.org/seurat/reference/vlnplot>`__
1176
1177 FeatureScatter
1178 ==============
1179
1180 Create a scatter plot of two features (typically feature expression), across a set of single cells. Cells are colored by their identity class.
1181 Pearson correlation between the two features is displayed above the plot.
1182
1183 More details on the `seurat documentation
1184 <https://satijalab.org/seurat/reference/featurescatter>`__
1185
1186 CellScatter
1187 ===========
1188
1189 Creates a plot of scatter plot of features across two single cells. Pearson correlation between the two cells is displayed above the plot.
1190
1191 More details on the `seurat documentation
1192 <https://satijalab.org/seurat/reference/cellscatter>`__
1193
1194 VariableFeaturePlot
1195 ===================
1196
1197 View selected variable features on a plot of variances.
1198
1199 More details on the `seurat documentation
1200 <https://satijalab.org/seurat/reference/variablefeatureplot>`__
1201
1202 VizDimLoadings
1203 ==============
1204
1205 Visualize top genes associated with reduction components - default reduction is PCA.
1206
1207 More details on the `seurat documentation
1208 <https://satijalab.org/seurat/reference/vizdimloadings>`__
1209
1210 DimPlot
1211 =======
1212
1213 Graph the output of a dimensional reduction technique on a 2D scatter plot where each point is a cell and it's positioned based on the cell embeddings determined by the reduction technique.
1214 By default, cells are colored by their identity class (can be changed with the group.by parameter).
1215
1216 More details on the `seurat documentation
1217 <https://satijalab.org/seurat/reference/dimplot>`__
1218
1219 DimHeatmap
1220 ==========
1221
1222 Draw a heatmap focusing on a principal component. Both cells and genes are sorted by their principal component scores.
1223 Allows for nice visualization of sources of heterogeneity in the dataset.
1224
1225 More details on the `seurat documentation
1226 <https://satijalab.org/seurat/reference/dimheatmap>`__
1227
1228 ElbowPlot
1229 =========
1230
1231 Plot the standard deviations of the principal components for easy identification of an elbow in the graph - plots PCA as default reduction.
1232
1233 More details on the `seurat documentation
1234 <https://satijalab.org/seurat/reference/elbowplot>`__
1235
1236 FeaturePlot
1237 ===========
1238
1239 Color single cells on a dimensional reduction plot according to a 'feature' (i.e. gene expression, PC scores, number of genes detected, etc.)
1240
1241 More details on the `seurat documentation
1242 <https://satijalab.org/seurat/reference/featureplot>`__
1243
1244 DoHeatmap
1245 =========
1246
1247 Draw a heatmap of single cell feature expression.
1248
1249 More details on the `seurat documentation
1250 <https://satijalab.org/seurat/reference/doheatmap>`__
1251
1252 DotPlot
1253 =======
1254
1255 Visualize how feature expression changes across different identity classes (e.g. clusters).
1256 The size of the dot encodes the percentage of cells within a class that express the gene, while the color encodes the AverageExpression level across all cells within a class.
1257
1258 More details on the `seurat documentation
1259 <https://satijalab.org/seurat/reference/dotplot>`__
1260
1261 ]]></help>
1262 <expand macro="citations"/>
1263 </tool>