Mercurial > repos > iuc > scanpy_normalize
changeset 3:d7ea9b5e6df1 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:00 -0500 |
parents | 8e0f141c8c66 |
children | 55f2212bb675 |
files | macros.xml normalize.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(+), 54 deletions(-) [+] |
line wrap: on
line diff
--- a/macros.xml Thu Dec 05 07:12:40 2019 -0500 +++ b/macros.xml Thu Dec 12 09:27:00 2019 -0500 @@ -1,7 +1,7 @@ <macros> <token name="@version@">1.4.4.post1</token> <token name="@profile@">19.01</token> - <token name="@galaxy_version@"><![CDATA[@version@+galaxy0]]></token> + <token name="@galaxy_version@"><![CDATA[@version@+galaxy1]]></token> <xml name="requirements"> <requirements> <requirement type="package" version="@version@">scanpy</requirement> @@ -351,10 +351,10 @@ <option value="gist_ncar">gist_ncar (Miscellaneous)</option> </xml> <xml name="param_groupby"> - <param argument="groupby" type="text" value="" optional="true" label="The key of the observation grouping to consider" help="If it is given, the heatmap is ordered by the respective group. It is expected that to be a categorical. If it is not a categorical observation, it would be subdivided into `num_categories`."/> + <param argument="groupby" type="text" value="" optional="true" label="The key of the observation grouping to consider" help="If it is given, the plot is ordered by the respective group. It is expected that to be a categorical. If it is not a categorical observation, it would be subdivided into 'num_categories'."/> </xml> <xml name="param_use_raw"> - <param argument="use_raw" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use `raw` attribute of input if present" help=""/> + <param argument="use_raw" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use 'raw' attribute of input if present" help=""/> </xml> <xml name="param_log"> <param argument="log" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Use the log of the values?"/> @@ -378,12 +378,12 @@ <xml name="pl_var_names"> <conditional name="var_names"> <param name="type" type="select" label="Variables to plot (columns of the heatmaps)" > - <option value="all">All variables in `adata.var_names`</option> - <option value="custom">Subset of variables in `adata.var_names`</option> + <option value="all">All variables in 'adata.var_names'</option> + <option value="custom">Subset of variables in 'adata.var_names'</option> </param> <when value="all"/> <when value="custom"> - <param argument="var_names" type="text" value="" label="List of variables to plot" help="They should be a valid subset of `adata.var_names`, and separated by comma"/> + <param argument="var_names" type="text" value="" label="List of variables to plot" help="They should be a valid subset of 'adata.var_names', and separated by comma"/> </when> </conditional> </xml> @@ -404,27 +404,20 @@ <param argument="var_group_rotation" type="float" value="" optional="true" label="Label rotation degrees" help="By default, labels larger than 4 characters are rotated 90 degrees"/> </xml> <xml name="param_layer"> - <param argument="layer" type="text" value="" label="Name of the AnnData object layer that wants to be plotted" help="By default `adata.raw.X` is plotted. If `use_raw=False` is set, then `adata.X` is plotted. If layer is set to a valid layer name, then the layer is plotted. layer takes precedence over `use_raw`."/> + <param argument="layer" type="text" value="" label="Name of the AnnData object layer that wants to be plotted" help="By default 'adata.raw.X' is plotted. If 'use_raw=False' is set, then 'adata.X' is plotted. If layer is set to a valid layer name, then the layer is plotted. layer takes precedence over 'use_raw'."/> </xml> <token name="@CMD_param_plot_inputs@"><![CDATA[ adata, save='.$format', show=False, ]]></token> - <xml name="params_plots"> + <xml name="params_inputs"> <expand macro="pl_var_names"/> <expand macro="param_groupby"/> - <expand macro="param_log"/> - <expand macro="param_use_raw"/> <expand macro="param_num_categories"/> - <expand macro="param_dendrogram"/> - <expand macro="pl_var_group_positions"/> - <expand macro="param_var_group_rotation"/> - <expand macro="pl_figsize"/> - <expand macro="param_layer"/> </xml> - <token name="@CMD_params_plots@"><![CDATA[ -#if $method.var_names.type == 'all' + <token name="@CMD_params_inputs@"><![CDATA[ + #if $method.var_names.type == 'all' var_names=adata.var_names, #else #set $var_names = ([x.strip() for x in str($method.var_names.var_names).split(',')]) @@ -433,9 +426,20 @@ #if str($method.groupby) != '' groupby='$method.groupby', #end if + num_categories=$method.num_categories, + ]]></token> + <xml name="params_plots"> + <expand macro="param_log"/> + <expand macro="param_use_raw"/> + <expand macro="param_dendrogram"/> + <expand macro="pl_var_group_positions"/> + <expand macro="param_var_group_rotation"/> + <expand macro="pl_figsize"/> + <expand macro="param_layer"/> + </xml> + <token name="@CMD_params_plots@"><![CDATA[ log=$method.log, use_raw=$method.use_raw, - num_categories=$method.num_categories, dendrogram=$method.dendrogram, #if len($method.var_group_positions) > 0: #set $var_group_positions=[] @@ -673,7 +677,7 @@ <option value="False">No</option> </param> <when value="True"> - <param argument="size" type="integer" min="0" value="1" label="Size of the jitter points" help=""/> + <param argument="size" type="float" min="0" value="1" label="Size of the jitter points" help=""/> </when> <when value="False"/> </conditional> @@ -742,7 +746,7 @@ saturation=$method.seaborn_violinplot.saturation, ]]></token> <xml name="param_color"> - <param argument="color" type="text" value="" optional="true" label="Keys for annotations of observations/cells or variables/genes" help="One or a list of comma-separated index or key from either `.obs` or `.var`"/> + <param argument="color" type="text" value="" optional="true" label="Keys for annotations of observations/cells or variables/genes" help="One or a list of comma-separated index or key from either '.obs' or '.var'"/> </xml> <token name="@CMD_param_color@"><![CDATA[ #if str($method.color) != '' @@ -750,10 +754,10 @@ color=$color, #end if ]]></token> - <xml name="pl_groups"> - <param argument="groups" type="text" value="" optional="true" label="Categorical observation annotations, comma-separated" help=""/> + <xml name="param_groups"> + <param argument="groups" type="text" value="" optional="true" label="Categorical observation annotations to plot" help="Comma-separated"/> </xml> - <token name="@CMD_params_pl_groups@"><![CDATA[ + <token name="@CMD_params_groups@"><![CDATA[ #if str($method.groups) != '' #set $groups=([x.strip() for x in str($method.groups).split(',')]) groups=$groups, @@ -761,8 +765,8 @@ ]]></token> <xml name="pl_components"> <repeat name="components" title="Component"> - <param argument="axis1" type="text" value="1" label="Axis 1" help=""/> - <param argument="axis2" type="text" value="2" label="Axis 2" help=""/> + <param argument="axis1" type="text" value="1" label="X-Axis" help=""/> + <param argument="axis2" type="text" value="2" label="Y-Axis" help=""/> </repeat> </xml> <token name="@CMD_params_pl_components@"><![CDATA[ @@ -802,6 +806,12 @@ <xml name="param_legend_fontsize"> <param argument="legend_fontsize" type="integer" optional="true" value="" label="Legend font size" help=""/> </xml> + <token name="@CMD_param_legend_fontsize@"><![CDATA[ + #if str($method.plot.legend_fontsize) != '' + legend_fontsize=$method.plot.legend_fontsize, + #end if + ]]> + </token> <xml name="param_legend_fontweight"> <param argument="legend_fontweight" type="select" label="Legend font weight" help=""> <option value="light">light</option> @@ -814,12 +824,14 @@ </param> </xml> <xml name="param_palette"> - <param argument="palette" type="select" label="Colors to use for plotting g categorical annotation groups" help=""> + <param argument="palette" type="select" label="Colors to use for plotting categorical annotation groups" help=""> + <option value="">Default</option> <expand macro="matplotlib_pyplot_colormap"/> </param> </xml> <xml name="param_color_map"> - <param argument="color_map" type="select" label="Colors to use for plotting categorical annotation groups" help=""> + <param argument="color_map" type="select" label="Color map to use for continous variables" help=""> + <option value="">Default</option> <expand macro="matplotlib_pyplot_colormap"/> </param> </xml> @@ -835,9 +847,21 @@ <xml name="param_size"> <param argument="size" type="float" optional="true" value="" label="Point size" help=""/> </xml> + <token name="@CMD_param_size@"><![CDATA[ + #if str($method.plot.size) != '' + size=$method.plot.size, + #end if + ]]> + </token> <xml name="param_title"> <param argument="title" type="text" value="" optional="true" label="Title for panels" help="Titles must be separated by a comma"/> </xml> + <token name="@CMD_param_title@"><![CDATA[ + #if $method.plot.title + title='$method.plot.title', + #end if + ]]> + </token> <xml name="param_sort_order"> <param argument="sort_order" type="boolean" truevalue="True" falsevalue="False" checked="true" label="Sort order?" help="For continuous annotations used as color parameter, plot data points with higher values on top of others."/> </xml> @@ -879,7 +903,7 @@ ]]> </token> <xml name="param_arrows"> - <param argument="arrows" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Show arrows?" help="It requires to run `tl.rna_velocity` before."/> + <param argument="arrows" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Show arrows?" help="It requires to run 'tl.rna_velocity' before."/> </xml> <xml name="param_cmap"> <param argument="cmap" type="select" label="Colors to use for plotting categorical annotation groups" help=""> @@ -894,6 +918,7 @@ <expand macro="param_legend_fontsize"/> <expand macro="param_legend_fontweight"/> <expand macro="param_size"/> + <expand macro="param_color_map"/> <expand macro="param_palette"/> <expand macro="param_frameon"/> <expand macro="param_ncols"/> @@ -905,21 +930,20 @@ <token name="@CMD_pl_attribute_section@"><![CDATA[ projection='$method.plot.projection', legend_loc='$method.plot.legend_loc', - #if str($method.plot.legend_fontsize) != '' - legend_fontsize=$method.plot.legend_fontsize, - #end if + @CMD_param_legend_fontsize@ legend_fontweight='$method.plot.legend_fontweight', - #if str($method.plot.size) != '' - size=$method.plot.size, + @CMD_param_size@ + #if str($method.plot.color_map) != '' + color_map='$method.plot.color_map', #end if + #if str($method.plot.palette) != '' palette='$method.plot.palette', + #end if frameon=$method.plot.frameon, ncols=$method.plot.ncols, wspace=$method.plot.wspace, hspace=$method.plot.hspace, - #if $method.plot.title - title='$method.plot.title', - #end if + @CMD_param_title@ ]]> </token> <xml name="options_layout"> @@ -937,22 +961,22 @@ </param> </xml> <xml name="param_root"> - <param argument="root" type="text" value="" label="Comma-separated roots" help="If choosing a tree layout, this is the index of the root node or a list of root node indices. If this is a non-empty vector then the supplied node IDs are used as the roots of the trees (or a single tree if the graph is connected). If this is `None` or an empty list, the root vertices are automatically calculated based on topological sorting."/> + <param argument="root" type="text" value="" label="Comma-separated roots" help="If choosing a tree layout, this is the index of the root node or a list of root node indices. If this is a non-empty vector then the supplied node IDs are used as the roots of the trees (or a single tree if the graph is connected). If this is 'None' or an empty list, the root vertices are automatically calculated based on topological sorting."/> </xml> <xml name="param_random_state"> - <param argument="random_state" type="integer" value="0" label="Random state" help="For layouts with random initialization like 'fr', change this to use different intial states for the optimization. If `None`, the initial state is not reproducible."/> + <param argument="random_state" type="integer" value="0" label="Random state" help="For layouts with random initialization like 'fr', change this to use different intial states for the optimization. If 'None', the initial state is not reproducible."/> </xml> <xml name="inputs_paga"> <param argument="threshold" type="float" min="0" value="0.01" label="Threshold to draw edges" help="Do not draw edges for weights below this threshold. Set to 0 if you want all edges. Discarding low-connectivity edges helps in getting a much clearer picture of the graph."/> - <expand macro="pl_groups"/> + <expand macro="param_groups"/> <param argument="color" type="text" value="" label="The node colors" help="Gene name or obs. annotation, and also plots the degree of the abstracted graph when passing 'degree_dashed', 'degree_solid'."/> <param argument="pos" type="data" format="tabular,csv,tsv" optional="true" label="Two-column tabular file storing the x and y coordinates for drawing" help=""/> - <param argument="labels" type="text" value="" label="Comma-separated node labels" help="If none is provided, this defaults to the group labels stored in the categorical for which `tl.paga` has been computed."/> + <param argument="labels" type="text" value="" label="Comma-separated node labels" help="If none is provided, this defaults to the group labels stored in the categorical for which 'tl.paga' has been computed."/> <expand macro="param_layout"/> <param argument="init_pos" type="data" format="tabular,csv,tsv" optional="true" label="Two-column tabular file storing the x and y coordinates for initializing the layout" help=""/> <expand macro="param_random_state"/> <expand macro="param_root"/> - <param argument="transitions" type="text" value="" label="Key corresponding to the matrix storing the arrows" help="Key for `.uns['paga']`, e.g. 'transistions_confidence'"/> + <param argument="transitions" type="text" value="" label="Key corresponding to the matrix storing the arrows" help="Key for '.uns['paga']', e.g. 'transistions_confidence'"/> <param argument="solid_edges" type="text" value="connectivities" label="Key corresponding to the matrix storing the edges to be drawn solid black" help="Key for uns/paga"/> <param argument="dashed_edges" type="text" value="" optional="true" label="Key corresponding to the matrix storing the edges to be drawn dashed grey" help="Key for uns/paga. If not set, no dashed edges are drawn."/> <param argument="single_component" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Restrict to largest connected component?" help=""/> @@ -1022,12 +1046,158 @@ ]]> </token> <xml name="param_swap_axes"> - <param argument="swap_axes" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Swap axes?" help="By default, the x axis contains `var_names` (e.g. genes) and the y axis the `groupby` categories (if any). By setting `swap_axes` then x are the `groupby` categories and y the `var_names`."/> + <param argument="swap_axes" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Swap axes?" help="By default, the x axis contains 'var_names' (e.g. genes) and the y axis the 'groupby' categories (if any). By setting 'swap_axes' then x are the 'groupby' categories and y the 'var_names'."/> </xml> <xml name="gene_symbols"> - <param argument="gene_symbols" type="text" value="" optional="true" label="Key for field in `.var` that stores gene symbols"/> + <param argument="gene_symbols" type="text" value="" optional="true" label="Key for field in '.var' that stores gene symbols"/> + </xml> + <xml name="param_n_genes"> + <param argument="n_genes" type="integer" min="0" value="10" label="Number of genes to show" help=""/> + </xml> + <xml name="pl_dotplot"> + <param argument="color_map" type="select" label="Color palette"> + <expand macro="matplotlib_pyplot_colormap"/> + </param> + <param argument="dot_max" type="float" value="" min="0" max="1" optional="true" label="Maximum dot size" help="If none, the maximum dot size is set to the maximum fraction value found (e.g. 0.6). If given, the value should be a number between 0 and 1. All fractions larger than dot_max are clipped to this value."/> + <param argument="dot_min" type="float" value="" min="0" max="1" optional="true" label="Minimum dot size" help="If none, the minimum dot size is set to 0. If given, the value should be a number between 0 and 1. All fractions smaller than dot_min are clipped to this value."/> + <expand macro="section_matplotlib_pyplot_scatter"/> + </xml> + <token name="@CMD_pl_dotplot@"><![CDATA[ + color_map='$method.color_map', + #if str($method.dot_max) != '' + dot_max=$method.dot_max, + #end if + #if str($method.dot_min) != '' + dot_min=$method.dot_min, + #end if + @CMD_params_matplotlib_pyplot_scatter@ + ]]> + </token> + <xml name="param_key"> + <param argument="key" type="text" value="" label="Key used to store the ranking results in 'uns'"/> + </xml> + <xml name="pl_heatmap"> + <expand macro="param_swap_axes"/> + <param argument="show_gene_labels" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Show gene labels?" help="By default gene labels are shown when there are 50 or less genes. Otherwise the labels are removed."/> + <section name="matplotlib_pyplot_imshow" title="Parameters for matplotlib.pyplot.imshow"> + <expand macro="param_cmap"/> + <param name="interpolation" type="select" label="Interpolation method" help=""> + <option value="None">none</option> + <option value="nearest">nearest</option> + <option value="bilinear">bilinear</option> + <option value="bicubic">bicubic</option> + <option value="spline16">spline16</option> + <option value="spline36">spline36</option> + <option value="hanning">hanning</option> + <option value="hamming">hamming</option> + <option value="hermite">hermite</option> + <option value="kaiser">kaiser</option> + <option value="quadric">quadric</option> + <option value="catrom">catrom</option> + <option value="gaussian">gaussian</option> + <option value="bessel">bessel</option> + <option value="sinc">sinc</option> + <option value="mitchell">mitchell</option> + <option value="lanczos">lanczos</option> + </param> + <expand macro="param_alpha"/> + <expand macro="param_vmin"/> + <expand macro="param_vmax"/> + <param name="origin" type="select" label="Place the [0,0] index of the array in the upper left or lower left corner of the axes" help=" The convention 'upper' is typically used for matrices and images."> + <option value="upper">Upper</option> + <option value="lower">Lower</option> + </param> + </section> </xml> - <xml name="n_genes"> - <param argument="n_genes" type="integer" min="0" value="20" label="Number of genes to show" help=""/> - </xml> + <token name="@CMD_pl_heatmap@"><![CDATA[ + swap_axes=$method.swap_axes, + show_gene_labels=$method.show_gene_labels, + cmap='$method.matplotlib_pyplot_imshow.cmap', + #if str($method.matplotlib_pyplot_imshow.interpolation) != 'None' + interpolation='$method.matplotlib_pyplot_imshow.interpolation', + #end if + #if $method.matplotlib_pyplot_imshow.alpha + alpha=$method.matplotlib_pyplot_imshow.alpha, + #end if + #if $method.matplotlib_pyplot_imshow.vmin + vmin=$method.matplotlib_pyplot_imshow.vmin, + #end if + #if $method.matplotlib_pyplot_imshow.vmax + vmax=$method.matplotlib_pyplot_imshow.vmax, + #end if + origin='$method.matplotlib_pyplot_imshow.origin' + ]]> + </token> + <xml name="pl_rank_genes_groups_ext"> + <expand macro="param_groups"/> + <expand macro="param_n_genes"/> + <expand macro="param_key"/> + </xml> + <token name="@CMD_pl_rank_genes_groups_ext@"><![CDATA[ + @CMD_params_groups@ + #if str($method.n_genes) != '' + n_genes=$method.n_genes, + #end if + #if str($method.key) != '' + key='$method.key', + #end if + ]]> + </token> + <xml name="pl_matrixplot"> + <expand macro="param_swap_axes"/> + <section name="matplotlib_pyplot_pcolor" title="Parameters for matplotlib.pyplot.pcolor"> + <param argument="cmap" type="select" label="Color palette"> + <expand macro="seaborn_color_palette_options"/> + </param> + <param argument="vmin" type="float" value="" optional="true" label="Minimum value to anchor the colormap" help=""/> + <param argument="vmax" type="float" value="" optional="true" label="Maximum value to anchor the colormap" help=""/> + <expand macro="param_matplotlib_pyplot_edgecolors"/> + <expand macro="param_alpha"/> + <param argument="snap" type="boolean" truevalue="True" falsevalue="False" checked="false" label="Snap the mesh to pixel boundaries?" help=""/> + </section> + </xml> + <token name="@CMD_pl_matrixplot@"><![CDATA[ + swap_axes=$method.swap_axes, + cmap='$method.matplotlib_pyplot_pcolor.cmap', + #if $method.matplotlib_pyplot_pcolor.vmin + vmin=$method.matplotlib_pyplot_pcolor.vmin, + #end if + #if $method.matplotlib_pyplot_pcolor.vmax + vmax=$method.matplotlib_pyplot_pcolor.vmax, + #end if + edgecolors='$method.matplotlib_pyplot_pcolor.edgecolors', + #if $method.matplotlib_pyplot_pcolor.alpha + alpha=$method.matplotlib_pyplot_pcolor.alpha, + #end if + snap=$method.matplotlib_pyplot_pcolor.snap + ]]> + </token> + <xml name="pl_stacked_violin"> + <expand macro="param_swap_axes"/> + <section name="violin_plot" title="Violin plot attributes"> + <expand macro="conditional_stripplot"/> + <expand macro="param_scale"/> + </section> + <param argument="row_palette" type="select" label="Colors to use in each of the stacked violin plots"> + <option value="muted">muted</option> + <expand macro="seaborn_color_palette_options"/> + </param> + <param argument="standard_scale" type="select" label="Standardize a dimension between 0 and 1" help="Each variable or observation is subtracted by the minimum and divided each by its maximum."> + <option value="None">No standardization</option> + <option value="var">Standardization on variable</option> + <option value="obs">Standardization on observation</option> + </param> + <expand macro="seaborn_violinplot"/> + </xml> + <token name="@CMD_pl_stacked_violin@"><![CDATA[ + swap_axes=$method.swap_axes, + @CMD_conditional_stripplot@ + scale='$method.violin_plot.scale', + row_palette='$method.row_palette', + #if str($method.standard_scale) != 'None' + standard_scale='$method.standard_scale', + #end if + @CMD_params_seaborn_violinplot@ + ]]> + </token> </macros>
--- a/normalize.xml Thu Dec 05 07:12:40 2019 -0500 +++ b/normalize.xml Thu Dec 12 09:27:00 2019 -0500 @@ -23,11 +23,15 @@ #if $method.exclude_highly_expressed.exclude_highly_expressed == "True" max_fraction=$method.exclude_highly_expressed.max_fraction, #end if + #if str($method.key_added) != '' key_added='$method.key_added', - #if str($method.layers) != 'all' + #end if + #if str($method.layers) != '' + #if str($method.layers) != 'all' layers[str(x.strip()) for x in str($method.layers).split(',')], - #else + #else layers='$method.layers', + #end if #end if #if str($method.layer_norm) != "None" layer_norm='$method.layer_norm', @@ -70,10 +74,10 @@ <expand macro="inputs_anndata"/> <conditional name="method"> <param argument="method" type="select" label="Method used for normalization"> - <option value="pp.normalize_total">Normalize counts per cell, using `pp.normalize_total`</option> - <option value="pp.recipe_zheng17">Normalization and filtering as of Zheng et al. (2017), using `pp.recipe_zheng17`</option> - <option value="pp.recipe_weinreb17">Normalization and filtering as of Weinreb et al (2017), using `pp.recipe_weinreb17`</option> - <option value="pp.recipe_seurat">Normalization and filtering as of Seurat et al (2015), using `pp.recipe_seurat`</option> + <option value="pp.normalize_total">Normalize counts per cell, using 'pp.normalize_total'</option> + <option value="pp.recipe_zheng17">Normalization and filtering as of Zheng et al. (2017), using 'pp.recipe_zheng17'</option> + <option value="pp.recipe_weinreb17">Normalization and filtering as of Weinreb et al (2017), using 'pp.recipe_weinreb17'</option> + <option value="pp.recipe_seurat">Normalization and filtering as of Seurat et al (2015), using 'pp.recipe_seurat'</option> </param> <when value="pp.normalize_total"> <param argument="target_sum" type="float" value="" optional="true" label="Target sum" help="If not provided, after normalization, each observation (cell) has a total count equal to the median of the total counts (cells) before normalization."/> @@ -87,8 +91,8 @@ </when> <when value="False"/> </conditional> - <param argument="key_added" type="text" value="n_counts" label="Name of the field in `adata.obs` where the normalization factor is stored" help=""/> - <param argument="layers" type="text" value="all" label="List of layers to normalize" help="'All' will normalize all layers. The list should be comma-separated."/> + <param argument="key_added" type="text" value="" optional="true" label="Name of the field in 'adata.obs' where the normalization factor is stored" help=""/> + <param argument="layers" type="text" value="" optional="true" label="List of layers to normalize" help="'All' will normalize all layers. The list should be comma-separated."/> <param argument="layer_norm" type="select" label="How to normalize layers?"> <option value="None">None: after normalization, for each layer in layers each cell has a total count equal to the median of the median of the total counts (cells) before normalization of the layer.</option> <option value="after">After: for each layer in layers each cell has a total count equal to target_sum.</option>