changeset 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 cb18f2388815
files macros.xml plot.xml test-data/pl.rank_genes_groups_dotplot.rank_genes_groups.krumsiek11.png test-data/pl.rank_genes_groups_heatmap.rank_genes_groups.krumsiek11.png test-data/pl.rank_genes_groups_matrixplot.rank_genes_groups.krumsiek11.png test-data/pl.rank_genes_groups_stacked_violin.rank_genes_groups.krumsiek11.png test-data/pp.highly_variable_genes.krumsiek11-cell_ranger.h5ad
diffstat 7 files changed, 539 insertions(+), 251 deletions(-) [+]
line wrap: on
line diff
--- a/macros.xml	Thu Dec 05 07:10:37 2019 -0500
+++ b/macros.xml	Thu Dec 12 09:24:59 2019 -0500
@@ -1,7 +1,7 @@
 <macros>
     <token name="@version@">1.4.4.post1</token>
     <token name="@profile@">19.01</token>
-    <token name="@galaxy_version@"><![CDATA[@version@+galaxy0]]></token>
+    <token name="@galaxy_version@"><![CDATA[@version@+galaxy1]]></token>
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@version@">scanpy</requirement>
@@ -351,10 +351,10 @@
         <option value="gist_ncar">gist_ncar (Miscellaneous)</option>
     </xml>
     <xml name="param_groupby">
-        <param argument="groupby" type="text" value="" optional="true" label="The key of the observation grouping to consider" help="If it is given, the heatmap is ordered by the respective group. It is expected that to be a categorical. If it is not a categorical observation, it would be subdivided into `num_categories`."/>
+        <param argument="groupby" type="text" value="" optional="true" label="The key of the observation grouping to consider" help="If it is given, the plot is ordered by the respective group. It is expected that to be a categorical. If it is not a categorical observation, it would be subdivided into 'num_categories'."/>
     </xml>
     <xml name="param_use_raw">
-        <param argument="use_raw" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use `raw` attribute of input if present" help=""/>
+        <param argument="use_raw" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use 'raw' attribute of input if present" help=""/>
     </xml>
     <xml name="param_log">
         <param argument="log" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use the log of the values?"/>
@@ -378,12 +378,12 @@
     <xml name="pl_var_names">
         <conditional name="var_names">
             <param name="type" type="select" label="Variables to plot (columns of the heatmaps)" >
-                <option value="all">All variables in `adata.var_names`</option>
-                <option value="custom">Subset of variables in `adata.var_names`</option>
+                <option value="all">All variables in 'adata.var_names'</option>
+                <option value="custom">Subset of variables in 'adata.var_names'</option>
             </param>
             <when value="all"/>
             <when value="custom">
-                <param argument="var_names" type="text" value="" label="List of variables to plot" help="They should be a valid subset of `adata.var_names`, and separated by comma"/>
+                <param argument="var_names" type="text" value="" label="List of variables to plot" help="They should be a valid subset of 'adata.var_names', and separated by comma"/>
             </when>
         </conditional>
     </xml>
@@ -404,27 +404,20 @@
         <param argument="var_group_rotation" type="float" value="" optional="true" label="Label rotation degrees" help="By default, labels larger than 4 characters are rotated 90 degrees"/>
     </xml>
     <xml name="param_layer">
-        <param argument="layer" type="text" value="" label="Name of the AnnData object layer that wants to be plotted" help="By default `adata.raw.X` is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If layer is set to a valid layer name, then the layer is plotted. layer takes precedence over `use_raw`."/>
+        <param argument="layer" type="text" value="" label="Name of the AnnData object layer that wants to be plotted" help="By default 'adata.raw.X' is plotted. If 'use_raw=False' is set, then 'adata.X' is plotted. If layer is set to a valid layer name, then the layer is plotted. layer takes precedence over 'use_raw'."/>
     </xml>
     <token name="@CMD_param_plot_inputs@"><![CDATA[
     adata,
     save='.$format',
     show=False,
     ]]></token>
-    <xml name="params_plots">
+    <xml name="params_inputs">
         <expand macro="pl_var_names"/>
         <expand macro="param_groupby"/>
-        <expand macro="param_log"/>
-        <expand macro="param_use_raw"/>
         <expand macro="param_num_categories"/>
-        <expand macro="param_dendrogram"/>
-        <expand macro="pl_var_group_positions"/>
-        <expand macro="param_var_group_rotation"/>
-        <expand macro="pl_figsize"/>
-        <expand macro="param_layer"/>
     </xml>
-    <token name="@CMD_params_plots@"><![CDATA[
-#if $method.var_names.type == 'all'
+    <token name="@CMD_params_inputs@"><![CDATA[
+    #if $method.var_names.type == 'all'
     var_names=adata.var_names,
 #else
     #set $var_names = ([x.strip() for x in str($method.var_names.var_names).split(',')])
@@ -433,9 +426,20 @@
 #if str($method.groupby) != ''
     groupby='$method.groupby',
 #end if
+    num_categories=$method.num_categories,
+    ]]></token>
+    <xml name="params_plots">
+        <expand macro="param_log"/>
+        <expand macro="param_use_raw"/>
+        <expand macro="param_dendrogram"/>
+        <expand macro="pl_var_group_positions"/>
+        <expand macro="param_var_group_rotation"/>
+        <expand macro="pl_figsize"/>
+        <expand macro="param_layer"/>
+    </xml>
+    <token name="@CMD_params_plots@"><![CDATA[
     log=$method.log,
     use_raw=$method.use_raw,
-    num_categories=$method.num_categories,
     dendrogram=$method.dendrogram,
     #if len($method.var_group_positions) > 0:
         #set $var_group_positions=[]
@@ -673,7 +677,7 @@
                         <option value="False">No</option>
                     </param>
                     <when value="True">
-                        <param argument="size" type="integer" min="0" value="1" label="Size of the jitter points" help=""/>
+                        <param argument="size" type="float" min="0" value="1" label="Size of the jitter points" help=""/>
                     </when>
                     <when value="False"/>
                 </conditional>
@@ -742,7 +746,7 @@
     saturation=$method.seaborn_violinplot.saturation,
     ]]></token>
     <xml name="param_color">
-        <param argument="color" type="text" value="" optional="true" label="Keys for annotations of observations/cells or variables/genes" help="One or a list of comma-separated index or key from either `.obs` or `.var`"/>
+        <param argument="color" type="text" value="" optional="true" label="Keys for annotations of observations/cells or variables/genes" help="One or a list of comma-separated index or key from either '.obs' or '.var'"/>
     </xml>
     <token name="@CMD_param_color@"><![CDATA[
 #if str($method.color) != ''
@@ -750,10 +754,10 @@
     color=$color,
 #end if
     ]]></token>
-    <xml name="pl_groups">
-        <param argument="groups" type="text" value="" optional="true" label="Categorical observation annotations, comma-separated" help=""/>
+    <xml name="param_groups">
+        <param argument="groups" type="text" value="" optional="true" label="Categorical observation annotations to plot" help="Comma-separated"/>
     </xml>
-    <token name="@CMD_params_pl_groups@"><![CDATA[
+    <token name="@CMD_params_groups@"><![CDATA[
 #if str($method.groups) != ''
     #set $groups=([x.strip() for x in str($method.groups).split(',')])
     groups=$groups,
@@ -761,8 +765,8 @@
     ]]></token>
     <xml name="pl_components">
         <repeat name="components" title="Component">
-            <param argument="axis1" type="text" value="1" label="Axis 1" help=""/>
-            <param argument="axis2" type="text" value="2" label="Axis 2" help=""/>
+            <param argument="axis1" type="text" value="1" label="X-Axis" help=""/>
+            <param argument="axis2" type="text" value="2" label="Y-Axis" help=""/>
         </repeat>
     </xml>
     <token name="@CMD_params_pl_components@"><![CDATA[
@@ -802,6 +806,12 @@
     <xml name="param_legend_fontsize">
         <param argument="legend_fontsize" type="integer" optional="true" value="" label="Legend font size" help=""/>
     </xml>
+    <token name="@CMD_param_legend_fontsize@"><![CDATA[
+    #if str($method.plot.legend_fontsize) != ''
+    legend_fontsize=$method.plot.legend_fontsize,
+    #end if
+    ]]>
+    </token>
     <xml name="param_legend_fontweight">
         <param argument="legend_fontweight" type="select" label="Legend font weight" help="">
             <option value="light">light</option>
@@ -814,12 +824,14 @@
         </param>
     </xml>
     <xml name="param_palette">
-        <param argument="palette" type="select" label="Colors to use for plotting g categorical annotation groups" help="">
+        <param argument="palette" type="select" label="Colors to use for plotting categorical annotation groups" help="">
+            <option value="">Default</option>
             <expand macro="matplotlib_pyplot_colormap"/>
         </param>
     </xml>
     <xml name="param_color_map">
-        <param argument="color_map" type="select" label="Colors to use for plotting categorical annotation groups" help="">
+        <param argument="color_map" type="select" label="Color map to use for continous variables" help="">
+            <option value="">Default</option>
             <expand macro="matplotlib_pyplot_colormap"/>
         </param>
     </xml>
@@ -835,9 +847,21 @@
     <xml name="param_size">
         <param argument="size" type="float" optional="true" value="" label="Point size" help=""/>
     </xml>
+    <token name="@CMD_param_size@"><![CDATA[
+    #if str($method.plot.size) != ''
+    size=$method.plot.size,
+    #end if
+    ]]>
+    </token>
     <xml name="param_title">
         <param argument="title" type="text" value="" optional="true" label="Title for panels" help="Titles must be separated by a comma"/>
     </xml>
+    <token name="@CMD_param_title@"><![CDATA[
+    #if $method.plot.title
+    title='$method.plot.title',
+    #end if
+    ]]>
+    </token>
     <xml name="param_sort_order">
         <param argument="sort_order" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Sort order?" help="For continuous annotations used as color parameter, plot data points with higher values on top of others."/>
     </xml>
@@ -879,7 +903,7 @@
     ]]>
     </token>
     <xml name="param_arrows">
-        <param argument="arrows" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Show arrows?" help="It requires to run `tl.rna_velocity` before."/>
+        <param argument="arrows" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Show arrows?" help="It requires to run 'tl.rna_velocity' before."/>
     </xml>
     <xml name="param_cmap">
         <param argument="cmap" type="select" label="Colors to use for plotting categorical annotation groups" help="">
@@ -894,6 +918,7 @@
             <expand macro="param_legend_fontsize"/>
             <expand macro="param_legend_fontweight"/>
             <expand macro="param_size"/>
+            <expand macro="param_color_map"/>
             <expand macro="param_palette"/>
             <expand macro="param_frameon"/>
             <expand macro="param_ncols"/>
@@ -905,21 +930,20 @@
     <token name="@CMD_pl_attribute_section@"><![CDATA[
     projection='$method.plot.projection',
     legend_loc='$method.plot.legend_loc',
-    #if str($method.plot.legend_fontsize) != ''
-    legend_fontsize=$method.plot.legend_fontsize,
-    #end if
+    @CMD_param_legend_fontsize@
     legend_fontweight='$method.plot.legend_fontweight',
-    #if str($method.plot.size) != ''
-    size=$method.plot.size,
+    @CMD_param_size@
+    #if str($method.plot.color_map) != ''
+    color_map='$method.plot.color_map',
     #end if
+    #if str($method.plot.palette) != ''
     palette='$method.plot.palette',
+    #end if
     frameon=$method.plot.frameon,
     ncols=$method.plot.ncols,
     wspace=$method.plot.wspace,
     hspace=$method.plot.hspace,
-    #if $method.plot.title
-    title='$method.plot.title',
-    #end if
+    @CMD_param_title@
     ]]>
     </token>
     <xml name="options_layout">
@@ -937,22 +961,22 @@
         </param>
     </xml>
     <xml name="param_root">
-        <param argument="root" type="text" value="" label="Comma-separated roots" help="If choosing a tree layout, this is the index of the root node or a list of root node indices. If this is a non-empty vector then the supplied node IDs are used as the roots of the trees (or a single tree if the graph is connected). If this is `None` or an empty list, the root vertices are automatically calculated based on topological sorting."/>
+        <param argument="root" type="text" value="" label="Comma-separated roots" help="If choosing a tree layout, this is the index of the root node or a list of root node indices. If this is a non-empty vector then the supplied node IDs are used as the roots of the trees (or a single tree if the graph is connected). If this is 'None' or an empty list, the root vertices are automatically calculated based on topological sorting."/>
     </xml>
     <xml name="param_random_state">
-        <param argument="random_state" type="integer" value="0" label="Random state" help="For layouts with random initialization like 'fr', change this to use different intial states for the optimization. If `None`, the initial state is not reproducible."/>
+        <param argument="random_state" type="integer" value="0" label="Random state" help="For layouts with random initialization like 'fr', change this to use different intial states for the optimization. If 'None', the initial state is not reproducible."/>
     </xml>
     <xml name="inputs_paga">
         <param argument="threshold" type="float" min="0" value="0.01" label="Threshold to draw edges" help="Do not draw edges for weights below this threshold. Set to 0 if you want all edges. Discarding low-connectivity edges helps in getting a much clearer picture of the graph."/>
-        <expand macro="pl_groups"/>
+        <expand macro="param_groups"/>
         <param argument="color" type="text" value="" label="The node colors" help="Gene name or obs. annotation, and also plots the degree of the abstracted graph when passing 'degree_dashed', 'degree_solid'."/>
         <param argument="pos" type="data" format="tabular,csv,tsv" optional="true" label="Two-column tabular file storing the x and y coordinates for drawing" help=""/>
-        <param argument="labels" type="text" value="" label="Comma-separated node labels" help="If none is provided, this defaults to the group labels stored in the categorical for which `tl.paga` has been computed."/>
+        <param argument="labels" type="text" value="" label="Comma-separated node labels" help="If none is provided, this defaults to the group labels stored in the categorical for which 'tl.paga' has been computed."/>
         <expand macro="param_layout"/>
         <param argument="init_pos" type="data" format="tabular,csv,tsv" optional="true" label="Two-column tabular file storing the x and y coordinates for initializing the layout" help=""/>
         <expand macro="param_random_state"/>
         <expand macro="param_root"/>
-        <param argument="transitions" type="text" value="" label="Key corresponding to the matrix storing the arrows" help="Key for `.uns['paga']`, e.g. 'transistions_confidence'"/>
+        <param argument="transitions" type="text" value="" label="Key corresponding to the matrix storing the arrows" help="Key for '.uns['paga']', e.g. 'transistions_confidence'"/>
         <param argument="solid_edges" type="text" value="connectivities" label="Key corresponding to the matrix storing the edges to be drawn solid black" help="Key for uns/paga"/>
         <param argument="dashed_edges" type="text" value="" optional="true" label="Key corresponding to the matrix storing the edges to be drawn dashed grey" help="Key for uns/paga. If not set, no dashed edges are drawn."/>
         <param argument="single_component" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Restrict to largest connected component?" help=""/>
@@ -1022,12 +1046,158 @@
     ]]>
     </token>
     <xml name="param_swap_axes">
-        <param argument="swap_axes" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Swap axes?" help="By default, the x axis contains `var_names` (e.g. genes) and the y axis the `groupby` categories (if any). By setting `swap_axes` then x are the `groupby` categories and y the `var_names`."/>
+        <param argument="swap_axes" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Swap axes?" help="By default, the x axis contains 'var_names' (e.g. genes) and the y axis the 'groupby' categories (if any). By setting 'swap_axes' then x are the 'groupby' categories and y the 'var_names'."/>
     </xml>
     <xml name="gene_symbols">
-        <param argument="gene_symbols" type="text" value="" optional="true" label="Key for field in `.var` that stores gene symbols"/>
+        <param argument="gene_symbols" type="text" value="" optional="true" label="Key for field in '.var' that stores gene symbols"/>
+    </xml>
+    <xml name="param_n_genes">
+        <param argument="n_genes" type="integer" min="0" value="10" label="Number of genes to show" help=""/>
+    </xml>
+    <xml name="pl_dotplot">
+        <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"/>
+    </xml>
+    <token name="@CMD_pl_dotplot@"><![CDATA[
+    color_map='$method.color_map',
+    #if str($method.dot_max) != ''
+    dot_max=$method.dot_max,
+    #end if
+    #if str($method.dot_min) != ''
+    dot_min=$method.dot_min,
+    #end if
+    @CMD_params_matplotlib_pyplot_scatter@
+    ]]>
+    </token>
+    <xml name="param_key">
+        <param argument="key" type="text" value="" label="Key used to store the ranking results in 'uns'"/>
+    </xml>
+    <xml name="pl_heatmap">
+        <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>
     </xml>
-    <xml name="n_genes">
-        <param argument="n_genes" type="integer" min="0" value="20" label="Number of genes to show" help=""/>
-    </xml>               
+    <token name="@CMD_pl_heatmap@"><![CDATA[
+    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'
+    ]]>
+    </token>
+    <xml name="pl_rank_genes_groups_ext">
+        <expand macro="param_groups"/>
+        <expand macro="param_n_genes"/>
+        <expand macro="param_key"/>
+    </xml>
+    <token name="@CMD_pl_rank_genes_groups_ext@"><![CDATA[
+    @CMD_params_groups@
+    #if str($method.n_genes) != ''
+    n_genes=$method.n_genes,
+    #end if
+    #if str($method.key) != ''
+    key='$method.key',
+    #end if
+    ]]>
+    </token>
+    <xml name="pl_matrixplot">
+        <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>
+    </xml>
+    <token name="@CMD_pl_matrixplot@"><![CDATA[
+    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
+    ]]>
+    </token>
+    <xml name="pl_stacked_violin">
+        <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"/>
+    </xml>
+    <token name="@CMD_pl_stacked_violin@"><![CDATA[
+    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@
+    ]]>
+    </token>
 </macros>
--- 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>
Binary file test-data/pl.rank_genes_groups_dotplot.rank_genes_groups.krumsiek11.png has changed
Binary file test-data/pl.rank_genes_groups_heatmap.rank_genes_groups.krumsiek11.png has changed
Binary file test-data/pl.rank_genes_groups_matrixplot.rank_genes_groups.krumsiek11.png has changed
Binary file test-data/pl.rank_genes_groups_stacked_violin.rank_genes_groups.krumsiek11.png has changed
Binary file test-data/pp.highly_variable_genes.krumsiek11-cell_ranger.h5ad has changed