changeset 3:ac8e59e87ce3 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:25:42 -0500
parents dc2de14881ba
children 766be978777a
files cluster_reduce_dimension.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, 237 insertions(+), 67 deletions(-) [+]
line wrap: on
line diff
--- a/cluster_reduce_dimension.xml	Thu Dec 05 07:11:19 2019 -0500
+++ b/cluster_reduce_dimension.xml	Thu Dec 12 09:25:42 2019 -0500
@@ -7,7 +7,7 @@
             <param argument="dtype" type="text" value="float32" label="Numpy data type string to which to convert the result" help=""/>
             <conditional name="pca">
                 <param argument="chunked" type="select" label="Type of PCA?">
-                    <option value="True">Incremental PCA on segments (incremental PCA automatically zero centers and ignores settings of `random_seed` and `svd_solver`)</option>
+                    <option value="True">Incremental PCA on segments (incremental PCA automatically zero centers and ignores settings of 'random_seed' and 'svd_solver')</option>
                     <option value="False" selected="true">Full PCA</option>
                 </param>
                 <when value="True">
@@ -74,7 +74,7 @@
 sc.tl.louvain(
     adata=adata,
     flavor = '$method.flavor.flavor',
-    #if $method.flavor.flavor == 'vtraag' and $method.flavor.resolution
+    #if $method.flavor.flavor == 'vtraag'
     resolution=$method.flavor.resolution,
     #end if
     random_state=$method.random_state,
@@ -185,16 +185,16 @@
         <expand macro="inputs_anndata"/>
         <conditional name="method">
             <param argument="method" type="select" label="Method used for plotting">
-                <option value="tl.louvain">Cluster cells into subgroups, using `tl.louvain`</option>
-                <option value="tl.leiden">Cluster cells into subgroups, using `tl.leiden`</option>
-                <option value="pp.pca">Computes PCA (principal component analysis) coordinates, loadings and variance decomposition, using `pp.pca`</option>
-                <option value="tl.pca">Computes PCA (principal component analysis) coordinates, loadings and variance decomposition, using `tl.pca`</option>
-                <option value="tl.diffmap">Diffusion Maps, using `tl.diffmap`</option>
-                <option value="tl.tsne">t-distributed stochastic neighborhood embedding (tSNE), using `tl.tsne`</option>
-                <option value="tl.umap">Embed the neighborhood graph using UMAP, using `tl.umap`</option>
-                <option value="tl.draw_graph">Force-directed graph drawing, using `tl.draw_graph`</option>
-                <option value="tl.dpt">Infer progression of cells through geodesic distance along the graph, using `tl.dpt`</option>
-                <option value="tl.paga">Generate cellular maps of differentiation manifolds with complex topologies, using `tl.paga`</option>
+                <option value="tl.louvain">Cluster cells into subgroups, using 'tl.louvain'</option>
+                <option value="tl.leiden">Cluster cells into subgroups, using 'tl.leiden'</option>
+                <option value="pp.pca">Computes PCA (principal component analysis) coordinates, loadings and variance decomposition, using 'pp.pca'</option>
+                <option value="tl.pca">Computes PCA (principal component analysis) coordinates, loadings and variance decomposition, using 'tl.pca'</option>
+                <option value="tl.diffmap">Diffusion Maps, using 'tl.diffmap'</option>
+                <option value="tl.tsne">t-distributed stochastic neighborhood embedding (tSNE), using 'tl.tsne'</option>
+                <option value="tl.umap">Embed the neighborhood graph using UMAP, using 'tl.umap'</option>
+                <option value="tl.draw_graph">Force-directed graph drawing, using 'tl.draw_graph'</option>
+                <option value="tl.dpt">Infer progression of cells through geodesic distance along the graph, using 'tl.dpt'</option>
+                <option value="tl.paga">Generate cellular maps of differentiation manifolds with complex topologies, using 'tl.paga'</option>
             </param>
             <when value="tl.louvain">
                 <conditional name="flavor">
@@ -203,7 +203,7 @@
                         <option value="igraph">igraph</option>
                     </param>
                     <when value="vtraag">
-                        <param argument="resolution" type="float" value="" optional="true"
+                        <param argument="resolution" type="float" value="1.0"
                             label="Resolution"
                             help="Higher resolution means finding more and smaller clusters, which defaults to 1.0. See “Time as a resolution parameter” in Lambiotte et al, 2009"/>
                     </when>
@@ -239,14 +239,14 @@
                 <param argument="use_fast_tsne" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Use the MulticoreTSNE package if possible?"/>
             </when>
             <when value="tl.umap">
-                <param argument="min_dist" type="float" value="0.5" label="Effective minimum distance between embedded points" help="Smaller values will result in a more clustered/clumped embedding where nearby points on the manifold are drawn closer together, while larger values will result on a more even dispersal of points. The value should be set relative to the `spread` value, which determines the scale at which embedded points will be spread out. The default of in the `umap-learn` package is 0.1."/>
-                <param argument="spread" type="float" value="1.0" label="Effective scale of embedded points" help="In combination with `min_dist` this determines how clustered/clumped the embedded points are."/>
+                <param argument="min_dist" type="float" value="0.5" label="Effective minimum distance between embedded points" help="Smaller values will result in a more clustered/clumped embedding where nearby points on the manifold are drawn closer together, while larger values will result on a more even dispersal of points. The value should be set relative to the 'spread' value, which determines the scale at which embedded points will be spread out. The default of in the 'umap-learn' package is 0.1."/>
+                <param argument="spread" type="float" value="1.0" label="Effective scale of embedded points" help="In combination with 'min_dist' this determines how clustered/clumped the embedded points are."/>
                 <param argument="n_components" type="integer" min="0" value="2" label="Number of dimensions of the embedding" help=""/>
-                <param argument="maxiter" type="integer" min="0" value="" optional="true" label="Number of iterations (epochs) of the optimization" help="Called `n_epochs` in the original UMAP."/>
+                <param argument="maxiter" type="integer" min="0" value="" optional="true" label="Number of iterations (epochs) of the optimization" help="Called 'n_epochs' in the original UMAP."/>
                 <param argument="alpha" type="float" value="1.0" label="Initial learning rate for the embedding optimization" help=""/>
                 <param argument="gamma" type="float" value="1.0" label="Weighting applied to negative samples in low dimensional embedding optimization" help="Values higher than one will result in greater weight being given to negative samples."/>
                 <param argument="negative_sample_rate" type="integer" min="0" value="5" label="The number of negative edge/1-simplex samples to use per positive edge/1-simplex sample in optimizing the low dimensional embedding" help=""/>
-                <param argument="init_pos" type="select" label="How to initialize the low dimensional embedding" help="Called `init` in the original UMAP">
+                <param argument="init_pos" type="select" label="How to initialize the low dimensional embedding" help="Called 'init' in the original UMAP">
                     <option value="paga">Position from paga</option>
                     <option value="spectral" selected="true">Spectral embedding of the graph</option>
                     <option value="random">Initial embedding positions at random</option>
@@ -259,17 +259,17 @@
                 <expand macro="param_random_state"/>
                 <param argument="init_pos" type="text" optional="true" value="" label="Precomputed coordinates for initialization" help="It should be a valid 2d observation (e.g. paga)"/>
                 <param argument="adjacency" type="data" format="mtx" optional="true" label="Sparse adjacency matrix of the graph" help="If not set, it uses the unstructured annotation (uns) / neighbors / connectivities"/>
-                <param argument="key_ext" type="text" optional="true" value="" label="External key" help="If not set, it appends `layout`"/>
+                <param argument="key_ext" type="text" optional="true" value="" label="External key" help="If not set, it appends 'layout'"/>
             </when>
             <when value="tl.dpt">
                 <param argument="n_dcs" type="integer" min="0" value="10" label="Number of diffusion components to use" help=""/>
                 <param argument="n_branchings" type="integer" min="0" value="0" label="Number of branchings to detect" help=""/>
-                <param argument="min_group_size" type="float" min="0" value="0.01" label="Min group size" help="During recursive splitting of branches ('dpt groups') for `n_branchings` &gt; 1, do not consider groups that contain less than `min_group_size` data points. If a float, `min_group_size` refers to a fraction of the total number of data points."/>
+                <param argument="min_group_size" type="float" min="0" value="0.01" label="Min group size" help="During recursive splitting of branches ('dpt groups') for 'n_branchings' &gt; 1, do not consider groups that contain less than 'min_group_size' data points. If a float, 'min_group_size' refers to a fraction of the total number of data points."/>
                 <param argument="allow_kendall_tau_shift" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Allow Kendal tau shift?" help="If a very small branch is detected upon splitting, shift away from maximum correlation in Kendall tau criterion of Haghverdi et al (2016) to stabilize the splitting."/>
             </when>
             <when value="tl.paga">
-                <param argument="groups" type="text" value="louvain" label="Key for categorical in the input" help="You can pass your predefined groups by choosing any categorical annotation of observations (`adata.obs`)."/>
-                <param argument="use_rna_velocity" type="boolean" truevalue="False" falsevalue="False" checked="false" label="Use RNA velocity to orient edges in the abstracted graph and estimate transitions?" help="Requires that `adata.uns` contains a directed single-cell graph with key `['velocyto_transitions']`. This feature might be subject to change in the future."/>
+                <param argument="groups" type="text" value="louvain" label="Key for categorical in the input" help="You can pass your predefined groups by choosing any categorical annotation of observations ('adata.obs')."/>
+                <param argument="use_rna_velocity" type="boolean" truevalue="False" falsevalue="False" checked="false" label="Use RNA velocity to orient edges in the abstracted graph and estimate transitions?" help="Requires that 'adata.uns' contains a directed single-cell graph with key '['velocyto_transitions']'. This feature might be subject to change in the future."/>
                 <param argument="model" type="select" label="PAGA connectivity model" help="">
                     <option value="v1.2">v1.2</option>
                     <option value="v1.0">v1.0</option>
--- a/macros.xml	Thu Dec 05 07:11:19 2019 -0500
+++ b/macros.xml	Thu Dec 12 09:25:42 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