changeset 3:cc0deb593fc8 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:27:38 -0500
parents 7d22964a8639
children 9d1997b08ed6
files inspect.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, 238 insertions(+), 77 deletions(-) [+]
line wrap: on
line diff
--- a/inspect.xml	Thu Dec 05 07:13:18 2019 -0500
+++ b/inspect.xml	Thu Dec 12 09:27:38 2019 -0500
@@ -135,7 +135,6 @@
 sc.tl.rank_genes_groups(
     adata=adata,
     groupby='$method.groupby',
-    use_raw=$method.use_raw,
     #if str($method.groups) != ''
     #set $group=[x.strip() for x in str($method.groups).split(',')]
     groups=$group,
@@ -199,7 +198,7 @@
     tol=$method.tl_rank_genes_groups_method.tol,
     C=$method.tl_rank_genes_groups_method.c,
     #end if
-    only_positive=$method.only_positive)
+    use_raw=$method.use_raw)
 
 #else if $method.method == "tl.marker_gene_overlap"
 reference_markers = {}
@@ -256,30 +255,30 @@
         <expand macro="inputs_anndata"/>
         <conditional name="method">
             <param argument="method" type="select" label="Method used for inspecting">
-                <option value="pp.calculate_qc_metrics">Calculate quality control metrics, using `pp.calculate_qc_metrics`</option>
-                <option value="pp.neighbors">Compute a neighborhood graph of observations, using `pp.neighbors`</option>
-                <option value="tl.score_genes">Score a set of genes, using `tl.score_genes`</option>
-                <option value="tl.score_genes_cell_cycle">Score cell cycle genes, using `tl.score_genes_cell_cycle`</option>
-                <option value="tl.rank_genes_groups">Rank genes for characterizing groups, using `tl.rank_genes_groups`</option>
-                <!--<option value="tl.marker_gene_overlap">Calculate an overlap score between data-deriven marker genes and provided markers, using `tl.marker_gene_overlap`</option>-->
-                <option value="pp.log1p">Logarithmize the data matrix, using `pp.log1p`</option>
-                <option value="pp.scale">Scale data to unit variance and zero mean, using `pp.scale`</option>
-                <option value="pp.sqrt">Square root the data matrix, using `pp.sqrt`</option>
+                <option value="pp.calculate_qc_metrics">Calculate quality control metrics, using 'pp.calculate_qc_metrics'</option>
+                <option value="pp.neighbors">Compute a neighborhood graph of observations, using 'pp.neighbors'</option>
+                <option value="tl.score_genes">Score a set of genes, using 'tl.score_genes'</option>
+                <option value="tl.score_genes_cell_cycle">Score cell cycle genes, using 'tl.score_genes_cell_cycle'</option>
+                <option value="tl.rank_genes_groups">Rank genes for characterizing groups, using 'tl.rank_genes_groups'</option>
+                <!--<option value="tl.marker_gene_overlap">Calculate an overlap score between data-deriven marker genes and provided markers, using 'tl.marker_gene_overlap'</option>-->
+                <option value="pp.log1p">Logarithmize the data matrix, using 'pp.log1p'</option>
+                <option value="pp.scale">Scale data to unit variance and zero mean, using 'pp.scale'</option>
+                <option value="pp.sqrt">Square root the data matrix, using 'pp.sqrt'</option>
             </param>
             <when value="pp.calculate_qc_metrics">
                 <param argument="expr_type" type="text" value="counts" label="Name of kind of values in X"/>
                 <param argument="var_type" type="text" value="genes" label="The kind of thing the variables are"/>
-                <param argument="qc_vars" type="text" value="" label="Keys for boolean columns of `.var` which identify variables you could want to control for" 
+                <param argument="qc_vars" type="text" value="" label="Keys for boolean columns of '.var' which identify variables you could want to control for" 
                     help="Keys separated by a comma"/>
                 <param argument="percent_top" type="text" value="" label="Proportions of top genes to cover" 
-                    help=" Values (integers) are considered 1-indexed, `50` finds cumulative proportion to the 50th most expressed genes. Values separated by a comma. 
+                    help=" Values (integers) are considered 1-indexed, '50' finds cumulative proportion to the 50th most expressed genes. Values separated by a comma. 
                     If empty don't calculate"/>
             </when>
             <when value="pp.neighbors">
-                <param argument="n_neighbors" type="integer" min="0" value="15" label="The size of local neighborhood (in terms of number of neighboring data points) used for manifold approximation" help="Larger values result in more global views of the manifold, while smaller values result in more local data being preserved. In general values should be in the range 2 to 100. If `knn` is `True`, number of nearest neighbors to be searched. If `knn` is `False`, a Gaussian kernel width is set to the distance of the `n_neighbors` neighbor."/>
+                <param argument="n_neighbors" type="integer" min="0" value="15" label="The size of local neighborhood (in terms of number of neighboring data points) used for manifold approximation" help="Larger values result in more global views of the manifold, while smaller values result in more local data being preserved. In general values should be in the range 2 to 100. If 'knn' is 'True', number of nearest neighbors to be searched. If 'knn' is 'False', a Gaussian kernel width is set to the distance of the 'n_neighbors' neighbor."/>
                 <param argument="n_pcs" type="integer" min="0" value="" optional="true" label="Number of PCs to use" help=""/>
                 <param argument="use_rep" type="text" value="" optional="true" label="Indicated representation to use" help="If not set, the representation is chosen automatically: for n_vars below 50, X is used, otherwise X_pca (uns) is used. If X_pca is not present, it's computed with default parameter"/>
-                <param argument="knn" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Use a hard threshold to restrict the number of neighbors to n_neighbors?" help="If true, it considers a knn graph. Otherwise, it uses a Gaussian Kernel to assign low weights to neighbors more distant than the `n_neighbors` nearest neighbor."/>
+                <param argument="knn" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Use a hard threshold to restrict the number of neighbors to n_neighbors?" help="If true, it considers a knn graph. Otherwise, it uses a Gaussian Kernel to assign low weights to neighbors more distant than the 'n_neighbors' nearest neighbor."/>
                 <param argument="random_state" type="integer" value="0" label="Numpy random seed" help=""/>
                 <param name="pp_neighbors_method" argument="method" type="select" label="Method for computing connectivities" help="">
                     <option value="umap">umap (McInnes et al, 2018)</option>
@@ -292,11 +291,11 @@
             <when value="tl.score_genes">
                 <param argument="gene_list" type="text" value="" label="The list of gene names used for score calculation" help="Genes separated by a comma"/>
                 <param argument="ctrl_size" type="integer" value="50" label="Number of reference genes to be sampled"
-                    help="If `len(gene_list)` is not too low, you can set `ctrl_size=len(gene_list)`."/>
+                    help="If 'len(gene_list)' is not too low, you can set 'ctrl_size=len(gene_list)'."/>
                 <param argument="gene_pool" type="text" value="" optional="true" label="Genes for sampling the reference set"
                     help="Default is all genes. Genes separated by a comma"/>
                 <expand macro="score_genes_params"/>
-                <param argument="score_name" type="text" value="score" label="Name of the field to be added in `.obs`" help=""/>
+                <param argument="score_name" type="text" value="score" label="Name of the field to be added in '.obs'" help=""/>
             </when>
             <when value="tl.score_genes_cell_cycle">
                 <conditional name='s_genes'>
@@ -426,13 +425,11 @@
                             help="It must be a positive float. Like in support vector machines, smaller values specify stronger regularization."/>
                     </when>
                 </conditional>
-                <param argument="only_positive" type="boolean" truevalue="True" falsevalue="False" checked="true"
-                    label="Only consider positive differences?" help=""/>
             </when>
             <!--<when value="tl.marker_gene_overlap">
                 <repeat name="reference_markers" title="Marker genes">
                     <param name="key" type="text" value="" label="Cell identity name" help=""/>
-                    <param name="values" type="text" value="" label="List of genes" help="Comma-separated names from `var`"/>
+                    <param name="values" type="text" value="" label="List of genes" help="Comma-separated names from 'var'"/>
                 </repeat>
                 <param argument="key" type="text" value="rank_genes_groups" label="Key in adata.uns where the rank_genes_groups output is stored"/>
                 <conditional name="overlap">
@@ -598,7 +595,6 @@
                     <param name="method" value="t-test_overestim_var"/>
                     <param name="corr_method" value="benjamini-hochberg"/>
                 </conditional>
-                <param name="only_positive" value="true"/>
             </conditional>
             <assert_stdout>
                 <has_text_matching expression="sc.tl.rank_genes_groups"/>
@@ -608,7 +604,6 @@
                 <has_text_matching expression="n_genes=100"/>
                 <has_text_matching expression="method='t-test_overestim_var'"/>
                 <has_text_matching expression="corr_method='benjamini-hochberg'"/>
-                <has_text_matching expression="only_positive=True"/>
             </assert_stdout>
             <output name="anndata_out" file="tl.rank_genes_groups.krumsiek11.h5ad" ftype="h5ad" compare="sim_size"/>
         </test>
@@ -634,7 +629,6 @@
                     <param name="tol" value="1e-4"/>
                     <param name="c" value="1.0"/>
                 </conditional>
-                <param name="only_positive" value="true"/>
             </conditional>
             <assert_stdout>
                 <has_text_matching expression="sc.tl.rank_genes_groups"/>
@@ -650,7 +644,6 @@
                 <has_text_matching expression="multi_class='auto'"/>
                 <has_text_matching expression="tol=0.0001"/>
                 <has_text_matching expression="C=1.0"/>
-                <has_text_matching expression="only_positive=True"/>
             </assert_stdout>
             <output name="anndata_out" file="tl.rank_genes_groups.newton-cg.pbmc68k_reduced.h5ad" ftype="h5ad" compare="sim_size">
                 <assert_contents>
@@ -686,7 +679,6 @@
                     <param name="tol" value="1e-4"/>
                     <param name="c" value="1.0"/>
                 </conditional>
-                <param name="only_positive" value="true"/>
             </conditional>
             <assert_stdout>
                 <has_text_matching expression="sc.tl.rank_genes_groups"/>
@@ -702,7 +694,6 @@
                 <has_text_matching expression="intercept_scaling=1.0"/>
                 <has_text_matching expression="tol=0.0001"/>
                 <has_text_matching expression="C=1.0"/>
-                <has_text_matching expression="only_positive=True"/>
             </assert_stdout>
             <output name="anndata_out" file="tl.rank_genes_groups.liblinear.krumsiek11.h5ad" ftype="h5ad" compare="sim_size">
                 <assert_contents>
@@ -797,18 +788,18 @@
 Calculates a number of qc metrics for an AnnData object, largely based on calculateQCMetrics from scater. 
 Currently is most efficient on a sparse CSR or dense matrix.
 
-It updates the observation level metrics:
+It updates the observation level metrics with
 
 - total_{var_type}_by_{expr_type} (e.g. "total_genes_by_counts", number of genes with positive counts in a cell)
 - total_{expr_type} (e.g. "total_counts", total number of counts for a cell)
-- pct_{expr_type}_in_top_{n}_{var_type} (e.g. "pct_counts_in_top_50_genes", cumulative percentage of counts for 50 most expressed genes in a cell)
-- total_{expr_type}_{qc_var} (e.g. "total_counts_mito", total number of counts for variabes in qc_vars )
-- pct_{expr_type}_{qc_var} (e.g. "pct_counts_mito", proportion of total counts for a cell which are mitochondrial)
+- pct_{expr_type}_in_top_{n}_{var_type} - for n in percent_top (e.g. "pct_counts_in_top_50_genes", cumulative percentage of counts for 50 most expressed genes in a cell)
+- total_{expr_type}_{qc_var} - for qc_var in qc_vars (e.g. "total_counts_mito", total number of counts for variabes in qc_vars)
+- pct_{expr_type}_{qc_var} - for qc_var in qc_vars (e.g. "pct_counts_mito", proportion of total counts for a cell which are mitochondrial)
 
 And also the variable level metrics:
 
 - total_{expr_type} (e.g. "total_counts", sum of counts for a gene)
-- mean_{expr_type} (e.g. "mean counts", mean expression over all cells.
+- mean_{expr_type} (e.g. "mean counts", mean expression over all cells)
 - n_cells_by_{expr_type} (e.g. "n_cells_by_counts", number of cells this expression is measured in)
 - pct_dropout_by_{expr_type} (e.g. "pct_dropout_by_counts", percentage of cells this feature does not appear in)
 
--- a/macros.xml	Thu Dec 05 07:13:18 2019 -0500
+++ b/macros.xml	Thu Dec 12 09:27:38 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