diff plot.xml @ 3:a8f865950ac4 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/scanpy/ commit 3b41d687ff30583540d055f6995de00530cca81d"
author iuc
date Thu, 12 Dec 2019 09:24:59 -0500
parents 4bfb75bb7c8e
children 8599fd07d140
line wrap: on
line diff
--- a/plot.xml	Thu Dec 05 07:10:37 2019 -0500
+++ b/plot.xml	Thu Dec 12 09:24:59 2019 -0500
@@ -37,53 +37,33 @@
     #end if
     use_raw=$method.use_raw,
     sort_order=$method.sort_order,
-    @CMD_params_pl_groups@
+    @CMD_params_groups@
     @CMD_params_pl_components@
     projection='$method.plot.projection',
     legend_loc='$method.plot.legend_loc',
-    legend_fontsize=$method.plot.legend_fontsize,
+    @CMD_param_legend_fontsize@
     legend_fontweight='$method.plot.legend_fontweight',
     color_map='$method.plot.color_map',
+    #if str($method.plot.palette) != ''
     palette='$method.plot.palette',
+    #end if
     frameon=$method.plot.frameon,
-    #if $method.plot.title
-    title='$method.plot.title',
-    #end if
-    size=$method.plot.size)
+    @CMD_param_title@
+    @CMD_param_size@)
 
 #else if $method.method == 'pl.heatmap'
 sc.pl.heatmap(
     @CMD_param_plot_inputs@
+    @CMD_params_inputs@
     @CMD_params_plots@
-    swap_axes=$method.swap_axes,
-    show_gene_labels=$method.show_gene_labels,
-    cmap='$method.matplotlib_pyplot_imshow.cmap',
-    #if str($method.matplotlib_pyplot_imshow.interpolation) != 'None'
-    interpolation='$method.matplotlib_pyplot_imshow.interpolation',
-    #end if
-    #if $method.matplotlib_pyplot_imshow.alpha
-    alpha=$method.matplotlib_pyplot_imshow.alpha,
-    #end if
-    #if $method.matplotlib_pyplot_imshow.vmin
-    vmin=$method.matplotlib_pyplot_imshow.vmin,
-    #end if
-    #if $method.matplotlib_pyplot_imshow.vmax
-    vmax=$method.matplotlib_pyplot_imshow.vmax,
-    #end if
-    origin='$method.matplotlib_pyplot_imshow.origin')
+    @CMD_pl_heatmap@)
 
 #else if $method.method == 'pl.dotplot'
 sc.pl.dotplot(
     @CMD_param_plot_inputs@
+    @CMD_params_inputs@
     @CMD_params_plots@
-    color_map='$method.color_map',
-    #if $method.dot_max
-    dot_max=$method.dot_max,
-    #end if
-    #if $method.dot_min
-    dot_min=$method.dot_min,
-    #end if
-    @CMD_params_matplotlib_pyplot_scatter@)
+    @CMD_pl_dotplot@)
 
 #else if $method.method == 'pl.violin'
 sc.pl.violin(
@@ -118,33 +98,16 @@
 #else if $method.method == 'pl.stacked_violin'
 sc.pl.stacked_violin(
     @CMD_param_plot_inputs@
+    @CMD_params_inputs@
     @CMD_params_plots@
-    swap_axes=$method.swap_axes,
-    @CMD_conditional_stripplot@
-    scale='$method.violin_plot.scale',
-    row_palette='$method.row_palette',
-    #if str($method.standard_scale) != 'None'
-    standard_scale='$method.standard_scale',
-    #end if
-    @CMD_params_seaborn_violinplot@)
+    @CMD_pl_stacked_violin@)
 
 #else if $method.method == 'pl.matrixplot'
 sc.pl.matrixplot(
     @CMD_param_plot_inputs@
+    @CMD_params_inputs@
     @CMD_params_plots@
-    swap_axes=$method.swap_axes,
-    cmap='$method.matplotlib_pyplot_pcolor.cmap',
-    #if $method.matplotlib_pyplot_pcolor.vmin
-    vmin=$method.matplotlib_pyplot_pcolor.vmin,
-    #end if
-    #if $method.matplotlib_pyplot_pcolor.vmax
-    vmax=$method.matplotlib_pyplot_pcolor.vmax,
-    #end if
-    edgecolors='$method.matplotlib_pyplot_pcolor.edgecolors',
-    #if $method.matplotlib_pyplot_pcolor.alpha
-    alpha=$method.matplotlib_pyplot_pcolor.alpha,
-    #end if
-    snap=$method.matplotlib_pyplot_pcolor.snap)
+    @CMD_pl_matrixplot@)
 
 #else if $method.method == 'pl.clustermap'
 sc.pl.clustermap(
@@ -190,8 +153,7 @@
     log=$method.log,
     save='.$format',
     show=False,
-    highly_variable_genes=$method.highly_variable_genes
-    )
+    highly_variable_genes=$method.highly_variable_genes)
 
 #else if $method.method == 'pl.pca'
 sc.pl.pca(
@@ -199,7 +161,7 @@
     @CMD_param_color@
     use_raw=$method.use_raw,
     sort_order=$method.sort_order,
-    @CMD_params_pl_groups@
+    @CMD_params_groups@
     @CMD_params_pl_components@
     @CMD_pl_attribute_section@
     @CMD_params_matplotlib_pyplot_scatter@)
@@ -222,7 +184,7 @@
     @CMD_param_color@
     use_raw=$method.use_raw,
     sort_order=$method.sort_order,
-    @CMD_params_pl_groups@
+    @CMD_params_groups@
     @CMD_params_pl_components@
     @CMD_pl_attribute_section@
     @CMD_params_matplotlib_pyplot_scatter@)
@@ -235,7 +197,7 @@
     @CMD_pl_edges@
     arrows=$method.arrows,
     sort_order=$method.sort_order,
-    @CMD_params_pl_groups@
+    @CMD_params_groups@
     @CMD_params_pl_components@
     @CMD_pl_attribute_section@
     @CMD_params_matplotlib_pyplot_scatter@)
@@ -248,7 +210,7 @@
     @CMD_pl_edges@
     arrows=$method.arrows,
     sort_order=$method.sort_order,
-    @CMD_params_pl_groups@
+    @CMD_params_groups@
     @CMD_params_pl_components@
     @CMD_pl_attribute_section@
     @CMD_params_matplotlib_pyplot_scatter@)
@@ -259,7 +221,7 @@
     @CMD_param_color@
     use_raw=$method.use_raw,
     sort_order=$method.sort_order,
-    @CMD_params_pl_groups@
+    @CMD_params_groups@
     @CMD_params_pl_components@
     @CMD_pl_attribute_section@
     @CMD_params_matplotlib_pyplot_scatter@)
@@ -282,7 +244,7 @@
     #end if
     arrows=$method.arrows,
     sort_order=$method.sort_order,
-    @CMD_params_pl_groups@
+    @CMD_params_groups@
     @CMD_params_pl_components@
     @CMD_pl_attribute_section@
     @CMD_params_matplotlib_pyplot_scatter@)
@@ -290,13 +252,18 @@
 #else if $method.method == 'pl.dpt_groups_pseudotime'
 sc.pl.dpt_groups_pseudotime(
     @CMD_param_plot_inputs@
-    color_map='$method.color_map')
+    #if str($method.color_map) != ''
+    color_map='$method.color_map'
+    #end if
+    )
 
 #else if $method.method == 'pl.dpt_timeseries'
 sc.pl.dpt_timeseries(
     @CMD_param_plot_inputs@
     #if $method.heatmap.as_heatmap == "True"
+        #if str($method.heatmap.color_map) != ''
     color_map='$method.heatmap.color_map',
+        #end if
     #end if
     as_heatmap=$method.heatmap.as_heatmap)
 
@@ -322,7 +289,9 @@
         #set $annotations=([x.strip() for x in str($method.annotations).split(',')])
     annotations=$annotations,
     #end if
+    #if str($method.color_map) != ''
     color_map='$method.color_map',
+    #end if
     n_avg=$method.n_avg,
     #if str($method.annotations) != ''
     groups_key='$method.groups_key',
@@ -336,7 +305,7 @@
 #else if $method.method == 'pl.rank_genes_groups'
 sc.pl.rank_genes_groups(
     @CMD_param_plot_inputs@
-    @CMD_params_pl_groups@
+    @CMD_params_groups@
     n_genes=$method.n_genes,
     #if str($method.gene_symbols) != ''
     gene_symbols='$method.gene_symbols',
@@ -348,14 +317,16 @@
 #else if $method.method == 'pl.rank_genes_groups_violin'
 sc.pl.rank_genes_groups_violin(
     @CMD_param_plot_inputs@
-    @CMD_params_pl_groups@
+    @CMD_params_groups@
     #if $method.genes.select == 'n_genes'
     n_genes=$method.genes.n_genes,
     #else
         #set $gene_names = ([x.strip() for x in str($method.genes.gene_names).split(',')])
     gene_names=$gene_names,
     #end if
+    #if str($method.gene_symbols) != ''
     gene_symbols='$method.gene_symbols',
+    #end if
     use_raw=$method.use_raw,
     split=$method.split,
     strip=$method.violin_plot.stripplot.stripplot,
@@ -367,6 +338,34 @@
     #end if
     scale='$method.violin_plot.scale')
 
+#else if $method.method == 'pl.rank_genes_groups_dotplot'
+sc.pl.rank_genes_groups_dotplot(
+    @CMD_param_plot_inputs@
+    @CMD_pl_rank_genes_groups_ext@
+    @CMD_params_plots@
+    @CMD_pl_dotplot@)
+
+#else if $method.method == 'pl.rank_genes_groups_heatmap'
+sc.pl.rank_genes_groups_heatmap(
+    @CMD_param_plot_inputs@
+    @CMD_pl_rank_genes_groups_ext@
+    @CMD_params_plots@
+    @CMD_pl_heatmap@)
+
+#else if $method.method == 'pl.rank_genes_groups_matrixplot'
+sc.pl.rank_genes_groups_matrixplot(
+    @CMD_param_plot_inputs@
+    @CMD_pl_rank_genes_groups_ext@
+    @CMD_params_plots@
+    @CMD_pl_matrixplot@)
+
+#else if $method.method == 'pl.rank_genes_groups_stacked_violin'
+sc.pl.rank_genes_groups_stacked_violin(
+    @CMD_param_plot_inputs@
+    @CMD_pl_rank_genes_groups_ext@
+    @CMD_params_plots@
+    @CMD_pl_stacked_violin@)
+
 #end if
 ]]></configfile>
     </configfiles>
@@ -375,43 +374,36 @@
         <expand macro="param_plot_format"/>
         <conditional name="method">
             <param argument="method" type="select" label="Method used for plotting">
-                <option value="pl.scatter">Generic: Scatter plot along observations or variables axes, using `pl.scatter`</option>
-                <option value="pl.heatmap">Generic: Heatmap of the expression values of set of genes, using `pl.heatmap`</option>
-                <option value="pl.dotplot">Generic: Makes a dot plot of the expression values, using `pl.dotplot`</option>
-                <option value="pl.violin">Generic: Violin plot, using `pl.violin`</option>
-                <option value="pl.stacked_violin">Generic: Stacked violin plots, using `pl.stacked_violin`</option>
-                <option value="pl.matrixplot">Generic: Heatmap of the mean expression values per cluster, using `pl.matrixplot`</option>
-                <option value="pl.clustermap">Generic: Hierarchically-clustered heatmap, using `pl.clustermap`</option>
+                <option value="pl.scatter">Generic: Scatter plot along observations or variables axes, using 'pl.scatter'</option>
+                <option value="pl.heatmap">Generic: Heatmap of the expression values of set of genes, using 'pl.heatmap'</option>
+                <option value="pl.dotplot">Generic: Makes a dot plot of the expression values, using 'pl.dotplot'</option>
+                <option value="pl.violin">Generic: Violin plot, using 'pl.violin'</option>
+                <option value="pl.stacked_violin">Generic: Stacked violin plots, using 'pl.stacked_violin'</option>
+                <option value="pl.matrixplot">Generic: Heatmap of the mean expression values per cluster, using 'pl.matrixplot'</option>
+                <option value="pl.clustermap">Generic: Hierarchically-clustered heatmap, using 'pl.clustermap'</option>
                 <!--<option value="pl.ranking">Generic: </option>!-->
-                <option value="pl.highest_expr_genes">Preprocessing: Plot the fraction of counts assigned to each gene over all cells, using `pl.highest_expr_genes`</option>
-                <!--<option value="pl.filter_genes_dispersion">Preprocessing: Plot dispersions versus means for genes, using `pl.filter_genes_dispersion`</option>-->
-                <option value="pl.highly_variable_genes">Preprocessing: Plot dispersions versus means for genes, using `pl.highly_variable_genes`</option>
-                <!--<option value="pl.calculate_qc_metrics">Preprocessing: </option>!-->
-                <option value="pl.pca">PCA: Scatter plot in PCA coordinates, using `pl.pca`</option>
-                <option value="pl.pca_loadings">PCA: Rank genes according to contributions to PCs, using `pl.pca_loadings`</option>
-                <option value="pl.pca_variance_ratio">PCA: Scatter plot in PCA coordinates, using `pl.pca_variance_ratio`</option>
-                <option value="pl.pca_overview">PCA: Plot PCA results, using `pl.pca_overview`</option>
-                <option value="pl.tsne">Embeddings: Scatter plot in tSNE basis, using `pl.tsne`</option>
-                <option value="pl.umap">Embeddings: Scatter plot in UMAP basis, using `pl.umap`</option>
-                <option value="pl.diffmap">Embeddings: Scatter plot in Diffusion Map basis, using `pl.diffmap`</option>
-                <option value="pl.draw_graph">Embeddings: Scatter plot in graph-drawing basis, using `pl.draw_graph`</option>
-                <option value="pl.dpt_groups_pseudotime">Branching trajectories and pseudotime, clustering: Plot groups and pseudotime, using `pl.dpt_groups_pseudotime`</option>
-                <option value="pl.dpt_timeseries">Branching trajectories and pseudotime, clustering: Heatmap of pseudotime series, using `pl.dpt_timeseries`</option>
-                <option value="pl.paga">Branching trajectories and pseudotime, clustering: Plot the abstracted graph through thresholding low-connectivity edges, using `pl.paga`</option>
-                <option value="pl.paga_compare">Branching trajectories and pseudotime, clustering: Scatter and PAGA graph side-by-side, using `pl.paga_compare`</option>
-                <option value="pl.paga_path">Branching trajectories and pseudotime, clustering: Gene expression and annotation changes along paths, using `pl.paga_path`</option>
-                <option value="pl.rank_genes_groups">Marker genes: Plot ranking of genes using dotplot plot, using `pl.rank_genes_groups`</option>
-                <!--<option value="pl.rank_genes_groups_dotplot">Marker genes: </option>!-->
-                <!--<option value="pl.rank_genes_groups_heatmap">Marker genes: </option>!-->
-                <!--<option value="pl.rank_genes_groups_matrixplot">Marker genes: </option>!-->
-                <!--<option value="pl.rank_genes_groups_stacked_violin">Marker genes: </option>!-->
-                <option value="pl.rank_genes_groups_violin">Marker genes: Plot ranking of genes for all tested comparisons, using `pl.rank_genes_groups_violin`</option>
-                <!--<option value="pl.phate">Misc: </option>!-->
-                <!--<option value="pl.matrix">Misc: </option>!-->
-                <!--<option value="pl.paga_adjacency">Misc: </option>!-->
-                <!--<option value="pl.timeseries">Misc: </option>!-->
-                <!--<option value="pl.timeseries_as_heatmap">Misc: </option>!-->
-                <!--<option value="pl.timeseries_subplot">Misc: </option>!-->
+                <option value="pl.highest_expr_genes">Preprocessing: Plot the fraction of counts assigned to each gene over all cells, using 'pl.highest_expr_genes'</option>
+                <!--<option value="pl.filter_genes_dispersion">Preprocessing: Plot dispersions versus means for genes, using 'pl.filter_genes_dispersion'</option>-->
+                <option value="pl.highly_variable_genes">Preprocessing: Plot dispersions versus means for genes, using 'pl.highly_variable_genes'</option>
+                <option value="pl.pca">PCA: Scatter plot in PCA coordinates, using 'pl.pca'</option>
+                <option value="pl.pca_loadings">PCA: Rank genes according to contributions to PCs, using 'pl.pca_loadings'</option>
+                <option value="pl.pca_variance_ratio">PCA: Scatter plot in PCA coordinates, using 'pl.pca_variance_ratio'</option>
+                <option value="pl.pca_overview">PCA: Plot PCA results, using 'pl.pca_overview'</option>
+                <option value="pl.tsne">Embeddings: Scatter plot in tSNE basis, using 'pl.tsne'</option>
+                <option value="pl.umap">Embeddings: Scatter plot in UMAP basis, using 'pl.umap'</option>
+                <option value="pl.diffmap">Embeddings: Scatter plot in Diffusion Map basis, using 'pl.diffmap'</option>
+                <option value="pl.draw_graph">Embeddings: Scatter plot in graph-drawing basis, using 'pl.draw_graph'</option>
+                <option value="pl.dpt_groups_pseudotime">Branching trajectories and pseudotime, clustering: Plot groups and pseudotime, using 'pl.dpt_groups_pseudotime'</option>
+                <option value="pl.dpt_timeseries">Branching trajectories and pseudotime, clustering: Heatmap of pseudotime series, using 'pl.dpt_timeseries'</option>
+                <option value="pl.paga">Branching trajectories and pseudotime, clustering: Plot the abstracted graph through thresholding low-connectivity edges, using 'pl.paga'</option>
+                <option value="pl.paga_compare">Branching trajectories and pseudotime, clustering: Scatter and PAGA graph side-by-side, using 'pl.paga_compare'</option>
+                <option value="pl.paga_path">Branching trajectories and pseudotime, clustering: Gene expression and annotation changes along paths, using 'pl.paga_path'</option>
+                <option value="pl.rank_genes_groups">Marker genes: Plot ranking of genes using dotplot plot, using 'pl.rank_genes_groups'</option>
+                <option value="pl.rank_genes_groups_violin">Marker genes: Plot ranking of genes as violin plot, using 'pl.rank_genes_groups_violin'</option>
+                <option value="pl.rank_genes_groups_dotplot">Marker genes: Plot ranking of genes as dotplot plot, using 'pl.rank_genes_groups_dotplot'</option>
+                <option value="pl.rank_genes_groups_heatmap">Marker genes: Plot ranking of genes as heatmap plot, using 'pl.rank_genes_groups_heatmap'</option>
+                <option value="pl.rank_genes_groups_matrixplot">Marker genes: Plot ranking of genes as matrixplot plot, using 'pl.rank_genes_groups_matrixplot'</option>
+                <option value="pl.rank_genes_groups_stacked_violin">Marker genes: Plot ranking of genes as stacked violin plot, using 'pl.rank_genes_groups_stacked_violin'</option>
             </param>
             <when value="pl.scatter">
                 <conditional name="type">
@@ -420,35 +412,35 @@
                         <option value="basis">Using tool that computes coordinates</option>
                     </param>
                     <when value="xy">
-                        <param argument="x" type="text" value="" label="x coordinate" help="Index or key from either `.obs` or `.var`"/>
-                        <param argument="y" type="text" value="" label="y coordinate" help="Index or key from either `.obs` or `.var`"/>
+                        <param argument="x" type="text" value="" label="x coordinate" help="Index or key from either '.obs' or '.var'"/>
+                        <param argument="y" type="text" value="" label="y coordinate" help="Index or key from either '.obs' or '.var'"/>
                         <conditional name="layers">
                             <param argument="use_layers" type="select" label="Use the layers attribute?">
                                 <option value="true">Yes</option>
                                 <option value="false" selected="true">No</option>
                             </param>
                             <when value="true">
-                                <param argument="layer_x" type="text" value="" optional="true" label="Layers for x coordinate" help="Use the `layers` attribute of `adata` if present"/>
-                                <param argument="layer_y" type="text" value="" optional="true" label="Layers for y coordinate" help="Use the `layers` attribute of `adata` if present"/>
-                                <param argument="layer_color" type="text" value="" optional="true" label="Layers for color" help="Use the `layers` attribute of `adata` if present"/>
+                                <param argument="layer_x" type="text" value="" optional="true" label="Layers for x coordinate" help="Use the 'layers' attribute of 'adata' if present"/>
+                                <param argument="layer_y" type="text" value="" optional="true" label="Layers for y coordinate" help="Use the 'layers' attribute of 'adata' if present"/>
+                                <param argument="layer_color" type="text" value="" optional="true" label="Layers for color" help="Use the 'layers' attribute of 'adata' if present"/>
                             </when>
                             <when value="false"/>
                         </conditional>
                     </when>
                     <when value="basis">
                         <param argument="basis" type="select" label="Plotting tool that computes coordinates" help="">
-                            <option value="pca">pca (need to run on `tl.pca` output)</option>
-                            <option value="tsne">tsne (need to run on `tl.tsne` output)</option>
-                            <option value="umap">umap (need to run on `tl.umap` output)</option>
-                            <option value="diffmap">diffmap (need to run on `tl.diffmap` output)</option>
-                            <option value="draw_graph_fr">draw_graph_fr (need to run on `tl.draw_graph` output)</option>
+                            <option value="pca">pca (need to run on 'tl.pca' output)</option>
+                            <option value="tsne">tsne (need to run on 'tl.tsne' output)</option>
+                            <option value="umap">umap (need to run on 'tl.umap' output)</option>
+                            <option value="diffmap">diffmap (need to run on 'tl.diffmap' output)</option>
+                            <option value="draw_graph_fr">draw_graph_fr (need to run on 'tl.draw_graph' output)</option>
                         </param>
                         <expand macro="param_color"/>
                     </when>
                 </conditional>
                 <expand macro="param_use_raw"/>
                 <param argument="sort_order" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Plot data points with higher values on top of others?" help="For continuous annotations used as color parameter"/>
-                <expand macro="pl_groups"/>
+                <expand macro="param_groups"/>
                 <section name="plot" title="Plot attributes">
                     <expand macro="pl_components"/>
                     <expand macro="param_projection"/>
@@ -463,59 +455,26 @@
                 </section>
             </when>
             <when value="pl.heatmap">
+                <expand macro="params_inputs"/>
                 <expand macro="params_plots"/>
-                <expand macro="param_swap_axes"/>
-                <param argument="show_gene_labels" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Show gene labels?" help="By default gene labels are shown when there are 50 or less genes. Otherwise the labels are removed."/>
-                <section name="matplotlib_pyplot_imshow" title="Parameters for matplotlib.pyplot.imshow">
-                    <expand macro="param_cmap"/>
-                    <param name="interpolation" type="select" label="Interpolation method" help="">
-                        <option value="None">none</option>
-                        <option value="nearest">nearest</option>
-                        <option value="bilinear">bilinear</option>
-                        <option value="bicubic">bicubic</option>
-                        <option value="spline16">spline16</option>
-                        <option value="spline36">spline36</option>
-                        <option value="hanning">hanning</option>
-                        <option value="hamming">hamming</option>
-                        <option value="hermite">hermite</option>
-                        <option value="kaiser">kaiser</option>
-                        <option value="quadric">quadric</option>
-                        <option value="catrom">catrom</option>
-                        <option value="gaussian">gaussian</option>
-                        <option value="bessel">bessel</option>
-                        <option value="sinc">sinc</option>
-                        <option value="mitchell">mitchell</option>
-                        <option value="lanczos">lanczos</option>
-                    </param>
-                    <expand macro="param_alpha"/>
-                    <expand macro="param_vmin"/>
-                    <expand macro="param_vmax"/>
-                    <param name="origin" type="select" label="Place the [0,0] index of the array in the upper left or lower left corner of the axes" help=" The convention 'upper' is typically used for matrices and images.">
-                        <option value="upper">Upper</option>
-                        <option value="lower">Lower</option>
-                    </param>
-                </section>
+                <expand macro="pl_heatmap"/>
             </when>
             <when value="pl.dotplot">
+                <expand macro="params_inputs"/>
                 <expand macro="params_plots"/>
-                <param argument="color_map" type="select" label="Color palette">
-                    <expand macro="matplotlib_pyplot_colormap"/>
-                </param>
-                <param argument="dot_max" type="float" value="" min="0" max="1" optional="true" label="Maximum dot size" help="If none, the maximum dot size is set to the maximum fraction value found (e.g. 0.6). If given, the value should be a number between 0 and 1. All fractions larger than dot_max are clipped to this value."/>
-                <param argument="dot_min" type="float" value="" min="0" max="1" optional="true" label="Minimum dot size" help="If none, the minimum dot size is set to 0. If given, the value should be a number between 0 and 1. All fractions smaller than dot_min are clipped to this value."/>
-                <expand macro="section_matplotlib_pyplot_scatter"/>
+                <expand macro="pl_dotplot"/>
             </when>
             <when value="pl.violin">
                 <conditional name="key_variables">
                     <param name="type" type="select" label="Keys for accessing variables">
-                        <option value="var_names">All variables in `.var_names`</option>
-                        <option value="obs">All fields in `.obs`</option>
-                        <option value="custom">Subset of variables in `adata.var_names` or fields of `.obs`</option>
+                        <option value="var_names">All variables in '.var_names'</option>
+                        <option value="obs">All fields in '.obs'</option>
+                        <option value="custom">Subset of variables in 'adata.var_names' or fields of '.obs'</option>
                     </param>
                     <when value="var_names"/>
                     <when value="obs"/>
                     <when value="custom">
-                        <param argument="keys" type="text" value="" label="Keys for accessing variables" help="One or a list of comma-separated index or key from `.var_names` or fields of `.obs`"/>
+                        <param argument="keys" type="text" value="" label="Keys for accessing variables" help="One or a list of comma-separated index or key from '.var_names' or fields of '.obs'"/>
                     </when>
                 </conditional>
                 <expand macro="param_groupby"/>
@@ -524,7 +483,7 @@
                 <section name="violin_plot" title="Violin plot attributes">
                     <expand macro="conditional_stripplot"/>
                     <conditional name="multi_panel">
-                        <param argument="multi_panel" type="select" label="Display keys in multiple panels" help="Also when `groupby is not provided">
+                        <param argument="multi_panel" type="select" label="Display keys in multiple panels" help="Also when 'groupby is not provided">
                             <option value="True">Yes</option>
                             <option value="False" selected="true">No</option>
                         </param>
@@ -536,41 +495,19 @@
                     </conditional>
                     <expand macro="param_scale"/>
                 </section>
-                <param argument="xlabel" type="text" value="" optional="true" label="Label of the x axis" help="Defaults to `groupby` if `rotation` is `None`,    otherwise, no label is shown."/>
+                <param argument="xlabel" type="text" value="" optional="true" label="Label of the x axis" help="Defaults to 'groupby' if 'rotation' is 'None',    otherwise, no label is shown."/>
                 <param argument="rotation" type="float" value="" optional="true" label="Rotation of xtick labels" help=""/>
                 <expand macro="seaborn_violinplot"/>
             </when>
             <when value="pl.stacked_violin">
+                <expand macro="params_inputs"/>
                 <expand macro="params_plots"/>
-                <expand macro="param_swap_axes"/>
-                <section name="violin_plot" title="Violin plot attributes">
-                    <expand macro="conditional_stripplot"/>
-                    <expand macro="param_scale"/>
-                </section>
-                <param argument="row_palette" type="select" label="Colors to use in each of the stacked violin plots">
-                    <option value="muted">muted</option>
-                    <expand macro="seaborn_color_palette_options"/>
-                </param>
-                <param argument="standard_scale" type="select" label="Standardize a dimension between 0 and 1" help="Each variable or observation is subtracted by the minimum and divided each by its maximum.">
-                    <option value="None">No standardization</option>
-                    <option value="var">Standardization on variable</option>
-                    <option value="obs">Standardization on observation</option>
-                </param>
-                <expand macro="seaborn_violinplot"/>
+                <expand macro="pl_stacked_violin"/>
             </when>
             <when value="pl.matrixplot">
+                <expand macro="params_inputs"/>
                 <expand macro="params_plots"/>
-                <expand macro="param_swap_axes"/>
-                <section name="matplotlib_pyplot_pcolor" title="Parameters for matplotlib.pyplot.pcolor">
-                    <param argument="cmap" type="select" label="Color palette">
-                        <expand macro="seaborn_color_palette_options"/>
-                    </param>
-                    <param argument="vmin" type="float" value="" optional="true" label="Minimum value to anchor the colormap" help=""/>
-                    <param argument="vmax" type="float" value="" optional="true" label="Maximum value to anchor the colormap" help=""/>
-                    <expand macro="param_matplotlib_pyplot_edgecolors"/>
-                    <expand macro="param_alpha"/>
-                    <param argument="snap" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Snap the mesh to pixel boundaries?" help=""/>
-                </section>
+                <expand macro="pl_matrixplot"/>
             </when>
             <when value="pl.clustermap">
                 <param argument="obs_keys" type="text" value="" optional="true" label="Categorical annotation to plot with a different color map" help="Currently, only a single key is supported."/>
@@ -608,7 +545,7 @@
             </when>
             <when value="pl.highest_expr_genes">
                 <param argument="n_top" type="integer" min="0" value="30" label="Number of top genes" help=""/>
-                <param argument="gene_symbols" type="text" optional="true" label="Key for field in `.var` that stores gene symbols" help="Fill it if you do not want to use `.var_names`."/>
+                <param argument="gene_symbols" type="text" optional="true" label="Key for field in '.var' that stores gene symbols" help="Fill it if you do not want to use '.var_names'."/>
                 <section name="setseaborn_boxplot" title="Plot settings" expanded="false">
                     <param argument="color" type="text" value="" optional="true" label="Color for all of the elements, or seed for a gradient palette" help=""/>
                     <param argument="palette" type="select" optional="true" label="Colors to use for the different levels of the hue variable" help="See https://seaborn.pydata.org/tutorial/color_palettes.html for more details.">
@@ -621,12 +558,12 @@
                 <expand macro="param_color"/>
                 <expand macro="param_use_raw"/>
                 <expand macro="param_sort_order"/>
-                <expand macro="pl_groups"/>
+                <expand macro="param_groups"/>
                 <expand macro="pl_attribute_section"/>
                 <expand macro="section_matplotlib_pyplot_scatter"/>
             </when>
             <when value="pl.pca_loadings">
-                <param argument="components" type="text" value="1,2,3" label="Lsit of comma-separated components" help="1, 2, 3 means first, second and third principal components"/>
+                <param argument="components" type="text" value="1,2,3" label="List of comma-separated components" help="1, 2, 3 means first, second and third principal components"/>
             </when>
             <when value="pl.pca_variance_ratio">
                 <param argument="n_pcs" type="integer" min="0" value="30" label="Number of PCs to show" help=""/>
@@ -636,7 +573,7 @@
                 <expand macro="param_color"/>
                 <expand macro="param_use_raw"/>
                 <expand macro="param_sort_order"/>
-                <expand macro="pl_groups"/>
+                <expand macro="param_groups"/>
                 <expand macro="pl_attribute_section"/>
                 <expand macro="section_matplotlib_pyplot_scatter"/>
             </when>
@@ -646,7 +583,7 @@
                 <expand macro="pl_edges"/>
                 <expand macro="param_arrows"/>
                 <expand macro="param_sort_order"/>
-                <expand macro="pl_groups"/>
+                <expand macro="param_groups"/>
                 <expand macro="pl_attribute_section"/>
                 <expand macro="section_matplotlib_pyplot_scatter"/>
             </when>
@@ -656,7 +593,7 @@
                 <expand macro="pl_edges"/>
                 <expand macro="param_arrows"/>
                 <expand macro="param_sort_order"/>
-                <expand macro="pl_groups"/>
+                <expand macro="param_groups"/>
                 <expand macro="pl_attribute_section"/>
                 <expand macro="section_matplotlib_pyplot_scatter"/>
             </when>
@@ -664,7 +601,7 @@
                 <expand macro="param_color"/>
                 <expand macro="param_use_raw"/>
                 <expand macro="param_sort_order"/>
-                <expand macro="pl_groups"/>
+                <expand macro="param_groups"/>
                 <expand macro="pl_attribute_section"/>
                 <expand macro="section_matplotlib_pyplot_scatter"/>
             </when>
@@ -678,7 +615,7 @@
                 <expand macro="pl_edges"/>
                 <expand macro="param_arrows"/>
                 <expand macro="param_sort_order"/>
-                <expand macro="pl_groups"/>
+                <expand macro="param_groups"/>
                 <expand macro="pl_attribute_section"/>
                 <expand macro="section_matplotlib_pyplot_scatter"/>
             </when>
@@ -706,7 +643,7 @@
             <when value="pl.paga_path">
                 <param argument="nodes" type="text" value="" label="A path through nodes of the abstracted graph" 
                     help="Each node is represented by its indice (within .categories) for the groups that have been used to run PAGA. Comma-separated"/>
-                <param argument="keys" type="text" value="" label="Keys for accessing variables" help="One or a list of comma-separated index or key from `.var_names` or fields of `.obs`"/>
+                <param argument="keys" type="text" value="" label="Keys for accessing variables" help="One or a list of comma-separated index or key from '.var_names' or fields of '.obs'"/>
                 <expand macro="param_use_raw"/>
                 <param argument="annotations" type="text" value="" optional="true" label="Key to plot" help="Keys for obs, comma-separated"/>
                 <expand macro="param_color_map"/>
@@ -719,22 +656,22 @@
                 <param argument="normalize_to_zero_one" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Shift and scale the running average to [0, 1] per gene?"/>
             </when>
             <when value="pl.rank_genes_groups">
-                <expand macro="pl_groups"/>
-                <expand macro="n_genes"/>
+                <expand macro="param_groups"/>
+                <expand macro="param_n_genes"/>
                 <expand macro="gene_symbols"/>
                 <param argument="fontsize" type="integer" min="0" value="8" label="Font size for gene names"/>
                 <expand macro="param_ncols"/>
                 <param argument="sharey" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Should the y-axis of each panels be shared?" help="If not, each panel has its own y-axis range"/>
             </when>
             <when value="pl.rank_genes_groups_violin">
-                <expand macro="pl_groups"/>
+                <expand macro="param_groups"/>
                 <conditional name="genes">
                     <param argument="select" type="select" label="Which genes to plot?" help="">
                         <option value="n_genes">A number of genes</option>
                         <option value="gene_names">A custom list of genes</option>
                     </param>
                     <when value="n_genes">
-                        <expand macro="n_genes"/>
+                        <expand macro="param_n_genes"/>
                     </when>
                     <when value="gene_names">
                         <param argument="gene_names" type="text" value="" label="List of genes to plot" help="A list of comma-separated names"/>
@@ -748,6 +685,26 @@
                     <expand macro="param_scale"/>
                 </section>
             </when>
+            <when value="pl.rank_genes_groups_dotplot">
+                <expand macro="pl_rank_genes_groups_ext"/>
+                <expand macro="params_plots"/>
+                <expand macro="pl_dotplot"/>
+            </when>
+            <when value="pl.rank_genes_groups_heatmap">
+                <expand macro="pl_rank_genes_groups_ext"/>
+                <expand macro="params_plots"/>
+                <expand macro="pl_heatmap"/>
+            </when>
+            <when value="pl.rank_genes_groups_matrixplot">
+                <expand macro="pl_rank_genes_groups_ext"/>
+                <expand macro="params_plots"/>
+                <expand macro="pl_matrixplot"/>
+            </when>
+            <when value="pl.rank_genes_groups_stacked_violin">
+                <expand macro="pl_rank_genes_groups_ext"/>
+                <expand macro="params_plots"/>
+                <expand macro="pl_stacked_violin"/>
+            </when>
         </conditional>
     </inputs>
     <outputs>
@@ -755,21 +712,21 @@
             <filter>format == 'png' and method['method'] != 'pl.rank_genes_groups_violin'</filter>
         </data>
         <collection name="collection_png" type="list" label="${tool.name} (${method.method}) on ${on_string}">
-            <discover_datasets pattern="rank_genes_groups_cell_type_(?P&lt;designation&gt;.*).png" format="png"/>
+            <discover_datasets pattern="rank_genes_groups_(?P&lt;designation&gt;.*).png" format="png"/>
             <filter>format == 'png' and method['method'] == 'pl.rank_genes_groups_violin'</filter>
         </collection>
         <data name="out_pdf" format="pdf" from_work_dir="*.pdf" label="${tool.name} (${method.method}) on ${on_string}">
             <filter>format == 'pdf' and method['method'] != pl.rank_genes_groups_violin</filter>
         </data>
         <collection name="collection_pdf" type="list" label="${tool.name} (${method.method}) on ${on_string}">
-            <discover_datasets pattern="rank_genes_groups_cell_type_(?P&lt;designation&gt;.*).pdf" format="pdf"/>
+            <discover_datasets pattern="rank_genes_groups_(?P&lt;designation&gt;.*).pdf" format="pdf"/>
             <filter>format == 'pdf' and method['method'] == 'pl.rank_genes_groups_violin'</filter>
         </collection>
         <data name="out_svg" format="svg" from_work_dir="*.svg" label="${tool.name} (${method.method}) on ${on_string}">
             <filter>format == 'svg' and method['method'] != pl.rank_genes_groups_violin</filter>
         </data>
         <collection name="collection_svg" type="list" label="${tool.name} (${method.method}) on ${on_string}">
-            <discover_datasets pattern="rank_genes_groups_cell_type_(?P&lt;designation&gt;.*).svg" format="svg"/>
+            <discover_datasets pattern="rank_genes_groups_(?P&lt;designation&gt;.*).svg" format="svg"/>
             <filter>format == 'svg' and method['method'] == 'pl.rank_genes_groups_violin'</filter>
         </collection>
     </outputs>
@@ -852,7 +809,6 @@
                 <has_text_matching expression="legend_loc='right margin'"/>
                 <has_text_matching expression="legend_fontsize=1"/>
                 <has_text_matching expression="legend_fontweight='normal'"/>
-                <has_text_matching expression="color_map='viridis'"/>
                 <has_text_matching expression="palette='bwr'"/>
                 <has_text_matching expression="frameon=False"/>
                 <has_text_matching expression="size=1.0"/>
@@ -870,9 +826,9 @@
                     <param name="type" value="all"/>
                 </conditional>
                 <param name="groupby" value="cell_type"/>
+                <param name="num_categories" value="7"/>
                 <param name="log" value="False"/>
                 <param name="use_raw" value="False"/>
-                <param name="num_categories" value="7"/>
                 <conditional name="figsize">
                     <param name="test" value="yes"/>
                     <param name="width" value="10" />
@@ -914,9 +870,9 @@
                     <param name="var_names" value="CD79A, MS4A1, CD8A, CD8B, LYZ, GNLY, NKG7, RP3-467N11.1, FCGR3A, FCER1A, CST3, POU2AF1, LINC00402"/>
                 </conditional>
                 <param name="groupby" value="louvain"/>
+                <param name="num_categories" value="7"/>
                 <param name="log" value="False"/>
                 <param name="use_raw" value="False"/>
-                <param name="num_categories" value="7"/>
                 <param name="dendrogram" value="True"/>
                 <repeat name="var_group_positions">
                     <param name="start" value="0"/>
@@ -1020,9 +976,9 @@
                     <param name="type" value="all"/>
                 </conditional>
                 <param name="groupby" value="cell_type"/>
+                <param name="num_categories" value="7"/>
                 <param name="log" value="False"/>
                 <param name="use_raw" value="False"/>
-                <param name="num_categories" value="7"/>
                 <param name="dendrogram" value="True"/>
                 <conditional name="figsize">
                     <param name="test" value="no"/>
@@ -1611,13 +1567,151 @@
                 <has_text_matching expression="scale='width'"/>
             </assert_stdout>
             <output_collection name="collection_png">
-                <element name="Ery" file="pl.rank_genes_groups_violin.Ery.png" ftype="png" compare="sim_size"/>
-                <element name="Mk" file="pl.rank_genes_groups_violin.Mk.png" ftype="png" compare="sim_size"/>
-                <element name="Mo" file="pl.rank_genes_groups_violin.Mo.png" ftype="png" compare="sim_size"/>
-                <element name="Neu" file="pl.rank_genes_groups_violin.Neu.png" ftype="png" compare="sim_size"/>
-                <element name="progenitor" file="pl.rank_genes_groups_violin.progenitor.png" ftype="png" compare="sim_size"/>
+                <element name="cell_type_Ery" file="pl.rank_genes_groups_violin.Ery.png" ftype="png" compare="sim_size"/>
+                <element name="cell_type_Mk" file="pl.rank_genes_groups_violin.Mk.png" ftype="png" compare="sim_size"/>
+                <element name="cell_type_Mo" file="pl.rank_genes_groups_violin.Mo.png" ftype="png" compare="sim_size"/>
+                <element name="cell_type_Neu" file="pl.rank_genes_groups_violin.Neu.png" ftype="png" compare="sim_size"/>
+                <element name="cell_type_progenitor" file="pl.rank_genes_groups_violin.progenitor.png" ftype="png" compare="sim_size"/>
             </output_collection>
         </test>
+        <test>
+            <!-- test 22: pl.rank_genes_groups_dotplot !-->
+            <param name="adata" value="tl.rank_genes_groups.krumsiek11.h5ad" />
+            <param name="format" value="png"/>
+            <conditional name="method">
+                <param name="method" value="pl.rank_genes_groups_dotplot"/>
+                <param name="n_genes" value="10"/>
+                <param name="log" value="False"/>
+                <param name="use_raw" value="False"/>
+                <param name="dendrogram" value="False"/>
+                <param name="color_map" value="viridis"/>
+                <section name="matplotlib_pyplot_scatter">
+                    <param name="linewidths" value="0" />
+                    <param name="edgecolors" value="face"/>
+                </section>
+            </conditional>
+            <assert_stdout>
+                <has_text_matching expression="sc.pl.rank_genes_groups_dotplot"/>
+                <has_text_matching expression="n_genes=10"/>
+                <has_text_matching expression="log=False"/>
+                <has_text_matching expression="use_raw=False"/>
+                <has_text_matching expression="dendrogram=False"/>
+                <has_text_matching expression="color_map='viridis'"/>
+                <has_text_matching expression="linewidths=0.0"/>
+                <has_text_matching expression="edgecolors='face'"/>
+            </assert_stdout>
+            <output name="out_png" file="pl.rank_genes_groups_dotplot.rank_genes_groups.krumsiek11.png" ftype="png" compare="sim_size"/>
+        </test>
+        <test>
+            <!-- test 23: pl.rank_genes_groups_heatmap !-->
+            <param name="adata" value="tl.rank_genes_groups.krumsiek11.h5ad" />
+            <param name="format" value="png"/>
+            <conditional name="method">
+                <param name="method" value="pl.rank_genes_groups_heatmap"/>
+                <param name="n_genes" value="10"/>
+                <param name="log" value="False"/>
+                <param name="use_raw" value="False"/>
+                <param name="dendrogram" value="False"/>
+                <param name="swap_axes" value="False"/>
+                <param name="show_gene_labels" value="False"/>
+                <section name="matplotlib_pyplot_imshow">
+                    <param name="cmap" value="viridis"/>
+                    <param name="interpolation" value="None"/>
+                    <param name="origin" value="upper"/>
+                </section>
+            </conditional>
+            <assert_stdout>
+                <has_text_matching expression="sc.pl.rank_genes_groups_heatmap"/>
+                <has_text_matching expression="n_genes=10"/>
+                <has_text_matching expression="log=False"/>
+                <has_text_matching expression="use_raw=False"/>
+                <has_text_matching expression="dendrogram=False"/>
+                <has_text_matching expression="swap_axes=False"/>
+                <has_text_matching expression="show_gene_labels=False"/>
+                <has_text_matching expression="cmap='viridis'"/>
+                <has_text_matching expression="origin='upper'"/>
+            </assert_stdout>
+            <output name="out_png" file="pl.rank_genes_groups_heatmap.rank_genes_groups.krumsiek11.png" ftype="png" compare="sim_size"/>
+        </test>
+        <test>
+            <!-- test 24: pl.rank_genes_groups_matrixplot !-->
+            <param name="adata" value="tl.rank_genes_groups.krumsiek11.h5ad" />
+            <param name="format" value="png"/>
+            <conditional name="method">
+                <param name="method" value="pl.rank_genes_groups_matrixplot"/>
+                <param name="n_genes" value="10"/>
+                <param name="log" value="False"/>
+                <param name="use_raw" value="False"/>
+                <param name="dendrogram" value="False"/>
+                <param name="swap_axes" value="False"/>
+                <section name="matplotlib_pyplot_pcolor">
+                    <param name="cmap" value="viridis"/>
+                    <param name="edgecolors" value="face"/>
+                    <param name="snap" value="False"/>
+                </section>
+            </conditional>
+            <assert_stdout>
+                <has_text_matching expression="sc.pl.rank_genes_groups_matrixplot"/>
+                <has_text_matching expression="n_genes=10"/>
+                <has_text_matching expression="log=False"/>
+                <has_text_matching expression="use_raw=False"/>
+                <has_text_matching expression="dendrogram=False"/>
+                <has_text_matching expression="swap_axes=False"/>
+                <has_text_matching expression="cmap='viridis'"/>
+                <has_text_matching expression="edgecolors='face'"/>
+                <has_text_matching expression="snap=False"/>
+            </assert_stdout>
+            <output name="out_png" file="pl.rank_genes_groups_matrixplot.rank_genes_groups.krumsiek11.png" ftype="png" compare="sim_size"/>
+        </test>
+        <test>
+            <!-- test 25: pl.rank_genes_groups_stacked_violin !-->
+            <param name="adata" value="tl.rank_genes_groups.krumsiek11.h5ad" />
+            <param name="format" value="png"/>
+            <conditional name="method">
+                <param name="method" value="pl.rank_genes_groups_stacked_violin"/>
+                <param name="n_genes" value="10"/>
+                <param name="log" value="False"/>
+                <param name="use_raw" value="False"/>
+                <param name="dendrogram" value="True"/>
+                <param name="swap_axes" value="True"/>
+                <section name="violin_plot">
+                    <conditional name="stripplot">
+                        <param name="stripplot" value="True"/>
+                        <param name="jitter" value="True"/>
+                        <param name="size" value="1"/>
+                    </conditional>
+                    <param name="scale" value="width"/>
+                </section>
+                <param name="row_palette" value="muted"/>
+                <param name="standard_scale" value="None"/>
+                <section name="seaborn_violinplot">
+                    <param name="bw" value="scott"/>
+                    <param name="linewidth" value="0"/>
+                    <param name="color" value="AliceBlue"/>
+                    <param name="palette" value="viridis"/>
+                    <param name="saturation" value="0.75"/>
+                </section>
+            </conditional>
+            <assert_stdout>
+                <has_text_matching expression="sc.pl.rank_genes_groups_stacked_violin"/>
+                <has_text_matching expression="n_genes=10"/>
+                <has_text_matching expression="log=False"/>
+                <has_text_matching expression="use_raw=False"/>
+                <has_text_matching expression="dendrogram=True"/>
+                <has_text_matching expression="swap_axes=True"/>
+                <has_text_matching expression="stripplot=True"/>
+                <has_text_matching expression="jitter=True"/>
+                <has_text_matching expression="size=1"/>
+                <has_text_matching expression="scale='width'"/>
+                <has_text_matching expression="bw='scott'"/>
+                <has_text_matching expression="scale='width'"/>
+                <has_text_matching expression="linewidth=0.0"/>
+                <has_text_matching expression="color='AliceBlue'"/>
+                <has_text_matching expression="palette='viridis'"/>
+                <has_text_matching expression="saturation=0.75"/>
+            </assert_stdout>
+            <output name="out_png" file="pl.rank_genes_groups_stacked_violin.rank_genes_groups.krumsiek11.png" ftype="png" compare="sim_size"/>
+        </test>
     </tests>
     <help><![CDATA[
 Generic: Scatter plot along observations or variables axes (`pl.scatter`)
@@ -1813,11 +1907,35 @@
 More details on the `scanpy documentation
 <https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.pl.rank_genes_groups.html>`__
 
-Marker genes: Plot ranking of genes for all tested comparisons (`pl.rank_genes_groups_violin`)
-==============================================================================================
+Marker genes: Plot ranking of genes as violin plot (`pl.rank_genes_groups_violin`)
+==================================================================================
 
 More details on the `scanpy documentation
 <https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.pl.rank_genes_groups_violin.html>`__
+
+Marker genes: Plot ranking of genes as dotplot plot (`pl.rank_genes_groups_dotplot`)
+====================================================================================
+
+More details on the `scanpy documentation
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.pl.rank_genes_groups_dotplot.html>`__
+
+Marker genes: Plot ranking of genes as heatmap plot (`pl.rank_genes_groups_heatmap`)
+====================================================================================
+
+More details on the `scanpy documentation
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.pl.rank_genes_groups_heatmap.html>`__
+
+Marker genes: Plot ranking of genes as matrixplot plot (`pl.rank_genes_groups_matrixplot`)
+==========================================================================================
+
+More details on the `scanpy documentation
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.pl.rank_genes_groups_matrixplot.html>`__
+
+Marker genes: Plot ranking of genes as stacked violin plot (`pl.rank_genes_groups_stacked_violin`)
+==================================================================================================
+
+More details on the `scanpy documentation
+<https://icb-scanpy.readthedocs-hosted.com/en/stable/api/scanpy.pl.rank_genes_groups_stacked_violin.html>`__
     ]]></help>
     <expand macro="citations"/>
 </tool>