changeset 3:0a6de5e65992 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:28:18 -0500
parents e62673c32a5d
children a72e9faea895
files filter.xml macros.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, 228 insertions(+), 56 deletions(-) [+]
line wrap: on
line diff
--- a/filter.xml	Thu Dec 05 07:14:15 2019 -0500
+++ b/filter.xml	Thu Dec 12 09:28:18 2019 -0500
@@ -113,12 +113,12 @@
         <expand macro="inputs_anndata"/>
         <conditional name="method">
             <param argument="method" type="select" label="Method used for filtering">
-                <option value="pp.filter_cells">Filter cell outliers based on counts and numbers of genes expressed, using `pp.filter_cells`</option>
-                <option value="pp.filter_genes">Filter genes based on number of cells or counts, using `pp.filter_genes`</option>
-                <option value="tl.filter_rank_genes_groups">Filters out genes based on fold change and fraction of genes expressing the gene within and outside the groupby categories, using `tl.filter_rank_genes_groups`</option>
-                <option value="pp.highly_variable_genes">, using `tl.highly_variable_genes`</option>
-                <option value="pp.subsample">Subsample to a fraction of the number of observations, using `pp.subsample`</option>
-                <option value="pp.downsample_counts">Downsample counts from count matrix, using `pp.downsample_counts`</option>
+                <option value="pp.filter_cells">Filter cell outliers based on counts and numbers of genes expressed, using 'pp.filter_cells'</option>
+                <option value="pp.filter_genes">Filter genes based on number of cells or counts, using 'pp.filter_genes'</option>
+                <option value="tl.filter_rank_genes_groups">Filters out genes based on fold change and fraction of genes expressing the gene within and outside the groupby categories, using 'tl.filter_rank_genes_groups'</option>
+                <option value="pp.highly_variable_genes">Annotate (and filter) highly variable genes, using 'pp.highly_variable_genes'</option>
+                <option value="pp.subsample">Subsample to a fraction of the number of observations, using 'pp.subsample'</option>
+                <option value="pp.downsample_counts">Downsample counts from count matrix, using 'pp.downsample_counts'</option>
             </param>
             <when value="pp.filter_cells">
                 <conditional name="filter">
@@ -177,8 +177,8 @@
             <when value="pp.highly_variable_genes">
                 <conditional name='flavor'>
                     <param argument="flavor" type="select" label="Flavor for computing normalized dispersion">
-                        <option value="seurat">seurat: expects non-logarithmized data</option>
-                        <option value="cell_ranger">cell_ranger: usually called for logarithmized data</option>
+                        <option value="seurat">Seurat</option>
+                        <option value="cell_ranger">Cell Ranger</option>
                     </param>
                     <when value="seurat">
                         <param argument="min_mean" type="float" value="0.0125" label="Minimal mean cutoff"/>
@@ -191,7 +191,7 @@
                     </when>
                 </conditional>
                 <param argument="n_bins" type="integer" value="20" label="Number of bins for binning the mean gene expression" help="Normalization is done with respect to each bin. If just a single gene falls into a bin, the normalized dispersion is artificially set to 1"/>
-                <param argument="subset" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Inplace subset to highly-variable genes?" help="Otherwise it merely indicates highly variable genes."/>
+                <param argument="subset" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Inplace subset to highly-variable genes?" help="Otherwise it merely indicates highly variable genes."/>
             </when>
             <when value="pp.subsample">
                 <conditional name="type">
@@ -200,7 +200,7 @@
                         <option value="n_obs">By number of observation</option>
                     </param>
                     <when value="fraction">
-                        <param argument="fraction" type="float" value="" label="Subsample to this `fraction` of the number of observations"/>
+                        <param argument="fraction" type="float" value="" label="Subsample to this 'fraction' of the number of observations"/>
                     </when>
                     <when value="n_obs">
                         <param argument="n_obs" type="integer" min="0" value="" label="Subsample to this number of observations"/>
@@ -329,12 +329,14 @@
                     <param name="n_top_genes" value="2"/>
                 </conditional>
                 <param name="n_bins" value="20"/>
+                <param name="subset" value="true"/>
             </conditional>
             <assert_stdout>
                 <has_text_matching expression="sc.pp.highly_variable_genes"/>
                 <has_text_matching expression="flavor='cell_ranger'"/>
                 <has_text_matching expression="n_top_genes=2"/>
                 <has_text_matching expression="n_bins=20"/>
+                <has_text_matching expression="subset=True"/>
             </assert_stdout>
             <output name="anndata_out" file="pp.highly_variable_genes.krumsiek11-cell_ranger.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
--- a/macros.xml	Thu Dec 05 07:14:15 2019 -0500
+++ b/macros.xml	Thu Dec 12 09:28:18 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>
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