Mercurial > repos > iuc > scanpy_plot
changeset 20:387671174a49 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/scanpy commit 732303de9670376c88e7afb2f23336ee1433e97d
| author | iuc |
|---|---|
| date | Thu, 26 Mar 2026 12:48:53 +0000 |
| parents | fc222791d03c |
| children | |
| files | macros.xml plot.xml test-data/pl.heatmap.krumsiek11.png test-data/pl.rank_genes_groups_heatmap.rank_genes_groups.krumsiek11.png test-data/pl.rank_genes_groups_stacked_violin.rank_genes_groups.krumsiek11.png test-data/pl.scatter.krumsiek11.png test-data/pl.scatter.pbmc68k_reduced.png test-data/pl.scatter.pbmc68k_reduced_n_genes_n_counts.png test-data/pl.scatter.umap.pbmc68k_reduced.png test-data/pl.stacked_violin.krumsiek11.png test-data/pl.stacked_violin_pp.filter_genes_dispersion.krumsiek11-seurat.png |
| diffstat | 11 files changed, 230 insertions(+), 74 deletions(-) [+] |
line wrap: on
line diff
--- a/macros.xml Wed Dec 03 10:01:11 2025 +0000 +++ b/macros.xml Thu Mar 26 12:48:53 2026 +0000 @@ -1,16 +1,12 @@ <macros> - <token name="@TOOL_VERSION@">1.10.2</token> - <token name="@VERSION_SUFFIX@">3</token> + <token name="@TOOL_VERSION@">1.11.5</token> + <token name="@VERSION_SUFFIX@">0</token> <token name="@PROFILE@">21.09</token> <xml name="requirements"> <requirements> <requirement type="package" version="@TOOL_VERSION@">scanpy</requirement> - <requirement type="package" version="0.10.3">anndata</requirement> - <requirement type="package" version="1.26.4">numpy</requirement> - <requirement type="package" version="2.2.2">pandas</requirement> - <requirement type="package" version="1.14.1">scipy</requirement> - <requirement type="package" version="0.14.2">statsmodels</requirement> - <requirement type="package" version="0.3.5">fa2</requirement> + <requirement type="package" version="0.11.4">anndata</requirement> + <requirement type="package" version="0.4">fa2_modified</requirement> <yield /> </requirements> </xml> @@ -27,11 +23,11 @@ <xml name="citations"> <citations> <citation type="doi">10.1186/s13059-017-1382-0</citation> + <citation type="doi">10.1016/j.xgen.2025.101005</citation> <citation type="doi">10.1093/gigascience/giaa102</citation> </citations> </xml> - <!-- param macros --> <xml name="sanitize_query" token_validinitial="string.printable"> <sanitizer> @@ -566,7 +562,6 @@ cp '$adata' 'anndata.h5ad' && cat '$script_file' > '$hidden_output' && python '$script_file' >> '$hidden_output' && -ls . >> '$hidden_output' && touch 'anndata_info.txt' && cat 'anndata_info.txt' @CMD_PRETTIFY_STDOUT@ ]]> @@ -1451,7 +1446,46 @@ ]]> </token> + <xml name="param_interactive_plot"> + <param name="interactive_plot" type="boolean" checked="false" label="Make an interactive plot?" help="Creates a vitessce configuration file using easy_vitessce for interactive visualization"/> + </xml> + <token name="@VITESSCE_ACTIVATE@"><![CDATA[ +import easy_vitessce as ev +ev.configure_plots(enable_plots=["pca", "umap", "tsne", "diffmap", "violin", "embedding", "dotplot", "heatmap"]) +ev.config.update({"data": {"anndata_format": "h5ad"}}) +ev.config.update({"data": {"out_dir": "."}}) +ev.register_data_path(adata, 'anndata.h5ad') + ]]> + </token> + <token name="@VITESSCE_CONFIG@"><![CDATA[ +import json +## while testing locally check galaxy_infrastructure_url is whether http://localhost:8080 or http://127.0.0.1:8080 +## use the correct URL to access datasets via Galaxy API +galaxy_url = "${__app__.config.galaxy_infrastructure_url}" +anndata_out_id = "${__app__.security.encode_id($anndata_out.id)}" +anndata_config_id = "${__app__.security.encode_id($anndata_config.id)}" + +## vitessce_widget is returned from sc.pl when the interactive_plot parameter is set to True +config_dict = vitessce_widget.config.to_dict(base_url="") +for dataset in config_dict.get('datasets', []): + for file in dataset.get('files', []): + if 'url' in file: + file['url'] = f"{galaxy_url}/api/datasets/{anndata_out_id}/display" + if 'options' in file and 'refSpecUrl' in file['options']: + file['options']['refSpecUrl'] = f"{galaxy_url}/api/datasets/{anndata_config_id}/display" + +config_js_content = f""" +export const config = {json.dumps(config_dict, indent=2)}; +""" + +with open("config.js", "w") as f: + f.write(config_js_content) + +with open("config.json", "w") as f: + json.dump(config_dict, f, indent=2) +]]> + </token> <!-- unused macros --> <!-- <xml name="param_right_margin"> <param argument="right_margin" type="float" value="1" label="Width of the space right of each plotting panel"/> @@ -1459,4 +1493,4 @@ <xml name="param_left_margin"> <param argument="left_margin" type="float" value="1" label="Width of the space left of each plotting panel"/> </xml> --> -</macros> +</macros> \ No newline at end of file
--- a/plot.xml Wed Dec 03 10:01:11 2025 +0000 +++ b/plot.xml Thu Mar 26 12:48:53 2026 +0000 @@ -4,9 +4,13 @@ </macros> <expand macro="bio_tools"/> <expand macro="requirements"> - <requirement type="package" version="3.9.1">matplotlib</requirement> - <requirement type="package" version="0.13.2">seaborn</requirement> + <requirement type="package" version="2.3.3">pandas</requirement> <requirement type="package" version="0.11.6">python-igraph</requirement> + <requirement type="package" version="0.0.9">easy_vitessce</requirement> + <requirement type="package" version="0.51.0">starlette</requirement> + <requirement type="package" version="0.2.7">kerchunk</requirement> + <requirement type="package" version="0.9.21">anywidget</requirement> + <requirement type="package" version="0.40.0">uvicorn</requirement> </expand> <stdio> <regex match="... storing" source="stderr" level="warning"/> @@ -22,6 +26,10 @@ sc.settings.figdir = '.' +#if str($method.method) in ['pl.pca', 'pl.umap', 'pl.tsne', 'pl.diffmap', 'pl.violin', 'pl.dotplot', 'pl.heatmap'] and $method.interactive_plot: +@VITESSCE_ACTIVATE@ +#end if + #if str($method.method) == 'pl.scatter': #if str($method.type.type) == 'xy': @@ -86,7 +94,11 @@ #else if str($method.method) == 'pl.heatmap': @CMD_VAR_NAMES_HEADER_CHECK@ + #if $method.interactive_plot: +vitessce_widget = sc.pl.heatmap( + #else: sc.pl.heatmap( + #end if @CMD_PARAM_PLOT_INPUTS@ @CMD_PARAMS_INPUTS@ @CMD_PARAM_GENE_SYMBOLS@ @@ -96,7 +108,11 @@ #else if str($method.method) == 'pl.dotplot': @CMD_VAR_NAMES_HEADER_CHECK@ + #if $method.interactive_plot: +vitessce_widget = sc.pl.dotplot( + #else: sc.pl.dotplot( + #end if @CMD_PARAM_PLOT_INPUTS@ @CMD_PARAMS_INPUTS@ @CMD_PARAM_GENE_SYMBOLS@ @@ -114,7 +130,11 @@ @CMD_SHOW_NONE@) #else if str($method.method) == 'pl.violin': + #if $method.interactive_plot: +vitessce_widget = sc.pl.violin( + #else: sc.pl.violin( + #end if @CMD_PARAM_PLOT_INPUTS@ #if str($method.key_variables.type) == 'var_names': #set $key_list = adata.var_names @@ -220,7 +240,11 @@ @CMD_SHOW_NONE@) #else if str($method.method) == 'pl.pca': + #if $method.interactive_plot: +vitessce_widget = sc.pl.pca( + #else: sc.pl.pca( + #end if @CMD_PARAM_PLOT_INPUTS@ @CMD_PARAM_COLOR@ @CMD_PARAM_GENE_SYMBOLS@ @@ -264,7 +288,11 @@ @CMD_SHOW_NONE@) #else if str($method.method) == 'pl.tsne': + #if $method.interactive_plot: +vitessce_widget = sc.pl.tsne( + #else: sc.pl.tsne( + #end if @CMD_PARAM_PLOT_INPUTS@ @CMD_PARAM_COLOR@ @CMD_PARAM_GENE_SYMBOLS@ @@ -278,9 +306,12 @@ @CMD_SECTION_MATPLOTLIB_PYPLOT_SCATTER@ @CMD_PARAM_LAYER@ @CMD_SHOW_NONE@) - #else if str($method.method) == 'pl.umap': + #if $method.interactive_plot: +vitessce_widget = sc.pl.umap( + #else: sc.pl.umap( + #end if @CMD_PARAM_PLOT_INPUTS@ @CMD_PARAM_COLOR@ @CMD_PARAM_GENE_SYMBOLS@ @@ -296,7 +327,11 @@ @CMD_SHOW_NONE@) #else if str($method.method) == 'pl.diffmap': + #if $method.interactive_plot: +vitessce_widget = sc.pl.diffmap( + #else: sc.pl.diffmap( + #end if @CMD_PARAM_PLOT_INPUTS@ @CMD_PARAM_COLOR@ @CMD_PARAM_GENE_SYMBOLS@ @@ -350,8 +385,6 @@ hspace=$method.hspace, @CMD_SHOW_NONE@) - - #else if str($method.method) == 'pl.dpt_timeseries': sc.pl.dpt_timeseries( @CMD_PARAM_PLOT_INPUTS@ @@ -504,10 +537,14 @@ #end if -#if $advanced_common.output_anndata: +#if $advanced_common.output_anndata or (str($method.method) in ['pl.umap', 'pl.tsne', 'pl.diffmap', 'pl.violin', 'pl.dotplot', 'pl.heatmap'] and $method.interactive_plot): @CMD_ANNDATA_WRITE_OUTPUTS@ #end if +#if str($method.method) in ['pl.pca', 'pl.umap', 'pl.tsne', 'pl.diffmap', 'pl.violin', 'pl.dotplot', 'pl.heatmap'] and $method.interactive_plot: +@VITESSCE_CONFIG@ +#end if + ]]></configfile> </configfiles> <inputs> @@ -535,8 +572,6 @@ <option value="pl.diffmap">Embeddings: Scatter plot in Diffusion Map basis, using 'pl.diffmap'</option> <option value="pl.draw_graph">Embeddings: Scatter plot in graph-drawing basis, using 'pl.draw_graph'</option> <option value="pl.embedding_density">Embeddings: Plot the density of cells in an embedding (per condition), using 'pl.embedding_density'</option> - <!-- This function is commented out because it is not compatible with pandas version. If the issue is not resolved in the next update, this should be removed. --> - <!-- <option value="pl.dpt_groups_pseudotime">Branching trajectories and pseudotime, clustering: Plot groups and pseudotime, using 'pl.dpt_groups_pseudotime'</option> --> <option value="pl.dpt_timeseries">Branching trajectories and pseudotime, clustering: Heatmap of pseudotime series, using 'pl.dpt_timeseries'</option> <option value="pl.paga">Branching trajectories and pseudotime, clustering: Plot the abstracted graph through thresholding low-connectivity edges, using 'pl.paga'</option> <option value="pl.paga_compare">Branching trajectories and pseudotime, clustering: Scatter and PAGA graph side-by-side, using 'pl.paga_compare'</option> @@ -614,12 +649,14 @@ </when> <when value="pl.heatmap"> <expand macro="params_inputs"/> + <expand macro="param_interactive_plot"/> <expand macro="param_gene_symbols"/> <expand macro="params_plots"/> <expand macro="params_pl_heatmap"/> </when> <when value="pl.dotplot"> <expand macro="params_inputs"/> + <expand macro="param_interactive_plot"/> <expand macro="param_gene_symbols"/> <expand macro="params_plots"/> <expand macro="params_pl_dotplot"/> @@ -630,6 +667,7 @@ <expand macro="params_plots"/> </when> <when value="pl.violin"> + <expand macro="param_interactive_plot"/> <conditional name="key_variables"> <param name="type" type="select" label="Keys for accessing variables"> <option value="var_names" selected="true">All variables in '.var_names'</option> @@ -746,6 +784,7 @@ <expand macro="pl_figsize"/> </when> <when value="pl.pca"> + <expand macro="param_interactive_plot"/> <expand macro="param_color"/> <expand macro="param_gene_symbols"/> <expand macro="param_use_raw"/> @@ -777,6 +816,7 @@ <expand macro="section_matplotlib_pyplot_scatter"/> </when> <when value="pl.tsne"> + <expand macro="param_interactive_plot"/> <expand macro="param_color"/> <expand macro="param_gene_symbols"/> <expand macro="param_use_raw"/> @@ -790,6 +830,7 @@ <expand macro="param_layer"/> </when> <when value="pl.umap"> + <expand macro="param_interactive_plot"/> <expand macro="param_color"/> <expand macro="param_gene_symbols"/> <expand macro="param_use_raw"/> @@ -803,6 +844,7 @@ <expand macro="param_layer"/> </when> <when value="pl.diffmap"> + <expand macro="param_interactive_plot"/> <expand macro="param_color"/> <expand macro="param_gene_symbols"/> <expand macro="param_use_raw"/> @@ -850,10 +892,6 @@ <expand macro="param_wspace"/> <expand macro="param_hspace"/> </when> - <!-- This function is commented out because it is not compatible with pandas version. If the issue is not resolved in the next update, this should be removed. --> - <!-- <when value="pl.dpt_groups_pseudotime"> - <expand macro="param_color_map"/> - </when> --> <when value="pl.dpt_timeseries"> <conditional name="heatmap"> <param argument="as_heatmap" type="select" label="Plot the timeseries as heatmap?"> @@ -984,21 +1022,21 @@ </inputs> <outputs> <data name="out_png" format="png" from_work_dir="*.png" label="PNG plot from ${tool.name} (${method.method}) on ${on_string}"> - <filter>format == 'png' and method['method'] != 'pl.rank_genes_groups_violin'</filter> + <filter>format == 'png' and method['method'] != 'pl.rank_genes_groups_violin' and not (method['method'] in ['pl.pca', 'pl.umap', 'pl.tsne', 'pl.diffmap', 'pl.violin', 'pl.dotplot', 'pl.heatmap'] and method['interactive_plot'])</filter> </data> <collection name="collection_png" type="list" label="PNG plots from ${tool.name} (${method.method}) on ${on_string}"> <discover_datasets pattern="rank_genes_groups_(?P<designation>.*).png" format="png"/> <filter>format == 'png' and method['method'] == 'pl.rank_genes_groups_violin'</filter> </collection> <data name="out_pdf" format="pdf" from_work_dir="*.pdf" label="PDF plot from ${tool.name} (${method.method}) on ${on_string}"> - <filter>format == 'pdf' and method['method'] != 'pl.rank_genes_groups_violin'</filter> + <filter>format == 'pdf' and method['method'] != 'pl.rank_genes_groups_violin' and not (method['method'] in ['pl.pca', 'pl.umap', 'pl.tsne', 'pl.diffmap', 'pl.violin', 'pl.dotplot', 'pl.heatmap'] and method['interactive_plot'])</filter> </data> <collection name="collection_pdf" type="list" label="PDF plots from ${tool.name} (${method.method}) on ${on_string}"> <discover_datasets pattern="rank_genes_groups_(?P<designation>.*).pdf" format="pdf"/> <filter>format == 'pdf' and method['method'] == 'pl.rank_genes_groups_violin'</filter> </collection> <data name="out_svg" format="svg" from_work_dir="*.svg" label="SVG plot from ${tool.name} (${method.method}) on ${on_string}"> - <filter>format == 'svg' and method['method'] != pl.rank_genes_groups_violin</filter> + <filter>format == 'svg' and method['method'] != 'pl.rank_genes_groups_violin' and not (method['method'] in ['pl.pca', 'pl.umap', 'pl.tsne', 'pl.diffmap', 'pl.violin', 'pl.dotplot', 'pl.heatmap'] and method['interactive_plot'])</filter> </data> <collection name="collection_svg" type="list" label="SVG plots from ${tool.name} (${method.method}) on ${on_string}"> <discover_datasets pattern="rank_genes_groups_(?P<designation>.*).svg" format="svg"/> @@ -1008,7 +1046,13 @@ <filter>advanced_common['show_log']</filter> </data> <data name="anndata_out" format="h5ad" from_work_dir="anndata.h5ad" label="${tool.name} (${method.method}) on ${on_string}: Annotated data matrix"> - <filter>advanced_common['output_anndata']</filter> + <filter>advanced_common['output_anndata'] or (method['method'] in ['pl.pca', 'pl.umap', 'pl.tsne', 'pl.diffmap', 'pl.violin', 'pl.dotplot', 'pl.heatmap'] and method['interactive_plot'])</filter> + </data> + <data name="vitessce_config" format="vitessce.json" from_work_dir="config.json" label="${tool.name} (${method.method}) on ${on_string}: Vitessce interactive visualization"> + <filter>method['method'] in ['pl.pca', 'pl.umap', 'pl.tsne', 'pl.diffmap', 'pl.violin', 'pl.dotplot', 'pl.heatmap'] and method['interactive_plot']</filter> + </data> + <data name="anndata_config" format="json" from_work_dir="anndata.ref.json" label="${tool.name} (${method.method}) on ${on_string}: Anndata configuration"> + <filter>method['method'] in ['pl.pca', 'pl.umap', 'pl.tsne', 'pl.diffmap', 'pl.violin', 'pl.dotplot', 'pl.heatmap'] and method['interactive_plot']</filter> </data> </outputs> <tests> @@ -1055,14 +1099,14 @@ <!-- test 2 --> <test expect_num_outputs="2"> - <param name="adata" value="krumsiek11.h5ad"/> + <param name="adata" value="pbmc68k_reduced.h5ad"/> <param name="format" value="png"/> <conditional name="method"> <param name="method" value="pl.scatter"/> <conditional name="type"> <param name="type" value="xy"/> - <param name="x" value="EKLF"/> - <param name="y" value="Cebpa"/> + <param name="x" value="FCGRT"/> + <param name="y" value="SAT1"/> </conditional> <section name="plot"> <param name="legend_fontsize" value="1"/> @@ -1078,8 +1122,8 @@ <output name="hidden_output"> <assert_contents> <has_text_matching expression="sc.pl.scatter"/> - <has_text_matching expression="x_field='EKLF'"/> - <has_text_matching expression="y_field='Cebpa'"/> + <has_text_matching expression="x_field='FCGRT'"/> + <has_text_matching expression="y_field='SAT1'"/> <has_text_matching expression="use_raw=None"/> <has_text_matching expression="sort_order=True"/> <has_text_matching expression="projection='2d'"/> @@ -1090,7 +1134,7 @@ <has_text_matching expression="title='A title'"/> </assert_contents> </output> - <output name="out_png" file="pl.scatter.krumsiek11.png" ftype="png" compare="image_diff"/> + <output name="out_png" file="pl.scatter.pbmc68k_reduced.png" ftype="png" compare="image_diff"/> </test> <!-- test 3 --> @@ -1128,7 +1172,7 @@ <has_text_matching expression="title='A title'"/> </assert_contents> </output> - <output name="out_png" file="pl.scatter.pbmc68k_reduced.png" ftype="png" compare="image_diff"/> + <output name="out_png" file="pl.scatter.pbmc68k_reduced_n_genes_n_counts.png" ftype="png" compare="image_diff"/> </test> <!-- test 4 --> @@ -1908,28 +1952,7 @@ <output name="out_png" file="pl.embedding_density.pbmc68k_reduced.png" ftype="png" compare="image_diff"/> </test> - <!-- This function is commented out because it is not compatible with pandas version. If the issue is not resolved in the next update, this should be removed. --> <!-- test 27 --> - <!-- <test expect_num_outputs="2"> - <param name="adata" value="tl.dpt.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad"/> - <param name="format" value="png"/> - <conditional name="method"> - <param name="method" value="pl.dpt_groups_pseudotime"/> - - </conditional> - <section name="advanced_common"> - <param name="show_log" value="true"/> - </section> - <output name="hidden_output"> - <assert_contents> - <has_text_matching expression="sc.pl.dpt_groups_pseudotime"/> - <has_text_matching expression="color_map='viridis'"/> - </assert_contents> - </output> - <output name="out_png" file="pl.dpt_groups_pseudotime.dpt.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.png" ftype="png" compare="image_diff"/> - </test> --> - - <!-- test 28 --> <test expect_num_outputs="2"> <param name="adata" value="tl.dpt.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.h5ad"/> <param name="format" value="png"/> @@ -1948,7 +1971,7 @@ <output name="out_png" file="pl.dpt_timeseries.dpt.diffmap.neighbors_gauss_braycurtis.recipe_weinreb17.paul15_subsample.png" ftype="png" compare="image_diff"/> </test> - <!-- test 29 --> + <!-- test 28 --> <test expect_num_outputs="2"> <param name="adata" value="tl.paga.neighbors.paul15_gauss_braycurtis.h5ad"/> <param name="format" value="png"/> @@ -1971,7 +1994,7 @@ </output> </test> - <!-- test 30 --> + <!-- test 29 --> <test expect_num_outputs="1"> <param name="adata" value="tl.paga.neighbors.paul15_gauss_braycurtis.h5ad"/> <param name="format" value="png"/> @@ -1986,12 +2009,12 @@ <output name="out_png" file="pl.paga_compare.paul15_gauss_braycurtis.png" ftype="png" compare="image_diff"/> </test> - <!-- test 31 --> + <!-- test 30 --> <!-- <test expect_num_outputs="2"> test pl.paga_path </test> --> - <!-- test 32 --> + <!-- test 30 --> <test expect_num_outputs="2"> <param name="adata" value="tl.rank_genes_groups.krumsiek11.h5ad"/> <param name="format" value="png"/> @@ -2013,7 +2036,7 @@ <output name="out_png" file="pl.rank_genes_groups.rank_genes_groups.krumsiek11.png" ftype="png" compare="image_diff"/> </test> - <!-- test 33 --> + <!-- test 31 --> <test expect_num_outputs="2"> <param name="adata" value="tl.rank_genes_groups.krumsiek11.h5ad"/> <param name="format" value="png"/> @@ -2048,7 +2071,7 @@ </output_collection> </test> - <!-- test 34 --> + <!-- test 32 --> <test expect_num_outputs="2"> <param name="adata" value="tl.rank_genes_groups.krumsiek11.h5ad"/> <param name="format" value="png"/> @@ -2090,7 +2113,7 @@ <output name="out_png" file="pl.rank_genes_groups_stacked_violin.rank_genes_groups.krumsiek11.png" ftype="png" compare="image_diff" eps="1.5"/> </test> - <!-- test 35 --> + <!-- test 33 --> <test expect_num_outputs="2"> <param name="adata" value="tl.rank_genes_groups.krumsiek11.h5ad"/> <param name="format" value="png"/> @@ -2116,7 +2139,7 @@ <output name="out_png" file="pl.rank_genes_groups_heatmap.rank_genes_groups.krumsiek11.png" ftype="png" compare="image_diff"/> </test> - <!-- test 36 --> + <!-- test 34 --> <test expect_num_outputs="2"> <param name="adata" value="tl.rank_genes_groups.krumsiek11.h5ad"/> <param name="format" value="png"/> @@ -2139,7 +2162,7 @@ <output name="out_png" file="pl.rank_genes_groups_dotplot.rank_genes_groups.krumsiek11.png" ftype="png" compare="image_diff"/> </test> - <!-- test 37 --> + <!-- test 35 --> <test expect_num_outputs="2"> <param name="adata" value="tl.rank_genes_groups.krumsiek11.h5ad"/> <param name="format" value="png"/> @@ -2164,7 +2187,7 @@ <output name="out_png" file="pl.rank_genes_groups_matrixplot.rank_genes_groups.krumsiek11.png" ftype="png" compare="image_diff"/> </test> - <!-- test 38 pl.rank_genes_groups_dotplot with marker list--> + <!-- test 36 pl.rank_genes_groups_dotplot with marker list--> <test expect_num_outputs="2"> <param name="adata" value="cosg.rank_genes_groups.newton-cg.pbmc68k_highly_reduced_1.h5ad" /> <param name="format" value="png"/> @@ -2189,7 +2212,7 @@ <output name="out_png" file="pl.rank_genes_groups.newton-cg.pbmc68k_highly_reduced_marker_1.png" ftype="png" compare="image_diff"/> </test> - <!-- test 39: pl.rank_genes_groups_dotplot with marker list --> + <!-- test 37: pl.rank_genes_groups_dotplot with marker list --> <test expect_num_outputs="2"> <param name="adata" value="cosg.rank_genes_groups.newton-cg.pbmc68k_highly_reduced_1.h5ad" /> <param name="format" value="png"/> @@ -2214,7 +2237,7 @@ <output name="out_png" file="pl.rank_genes_groups.newton-cg.pbmc68k_highly_reduced_marker_filtered_1.png" ftype="png" compare="image_diff"/> </test> - <!-- test 40 --> + <!-- test 38 --> <test expect_num_outputs="2"> <param name="adata" value="cosg.rank_genes_groups.newton-cg.pbmc68k_highly_reduced_1.h5ad" /> <param name="format" value="png"/> @@ -2231,6 +2254,112 @@ </output> <output name="out_png" file="pl.rank_genes_groups_tracksplot.newton-cg.pbmc68k_highly_reduced_marker_filtered_1.png" ftype="png" compare="image_diff"/> </test> + + <!-- test 39 --> + <test expect_num_outputs="4"> + <param name="adata" value="tl.umap.neighbors_umap_euclidean.recipe_weinreb17.paul15_subsample.h5ad"/> + <param name="format" value="png"/> + <conditional name="method"> + <param name="method" value="pl.umap"/> + <param name="interactive_plot" value="true"/> + <param name="color" value="paul15_clusters"/> + <param name="gene_symbols" value="symbol"/> + <conditional name="edges"> + <param name="edges" value="True"/> + </conditional> + <section name="plot"> + <param name="legend_fontsize" value="1"/> + <param name="legend_fontweight" value="normal"/> + <param name="size" value="1"/> + </section> + </conditional> + <section name="advanced_common"> + <param name="show_log" value="true"/> + </section> + <output name="hidden_output"> + <assert_contents> + <has_text_matching expression="sc.pl.umap"/> + <has_text_matching expression="color=\['paul15_clusters'\]"/> + <has_text_matching expression="use_raw=False"/> + <has_text_matching expression="edges=True"/> + <has_text_matching expression="edges_width=0.1"/> + <has_text_matching expression="arrows=False"/> + <has_text_matching expression="sort_order=True"/> + <has_text_matching expression="projection='2d'"/> + <has_text_matching expression="legend_loc='right margin'"/> + <has_text_matching expression="legend_fontsize=1"/> + <has_text_matching expression="legend_fontweight='normal'"/> + <has_text_matching expression="size=1.0"/> + <has_text_matching expression="frameon=True"/> + <has_text_matching expression="ncols=4"/> + <has_text_matching expression="wspace=0.1"/> + <has_text_matching expression="hspace=0.25"/> + <has_text_matching expression="gene_symbols='symbol'"/> + </assert_contents> + </output> + <output name="vitessce_config"> + <assert_contents> + <has_n_lines n="93" /> + <has_text_matching expression="sc.pl.embedding for UMAP"/> + <has_text_matching expression="anndata.h5ad"/> + <has_text_matching expression="scatterplot"/> + </assert_contents> + </output> + <output name="anndata_config"> + <assert_contents> + <has_n_lines n="1" /> + <has_size value="29779" delta="100" /> + <has_text_matching expression="\\"zarr_format\\":2"/> + </assert_contents> + </output> + </test> + + <!-- test 40 --> + <test expect_num_outputs="4"> + <param name="adata" value="pp.filter_genes_dispersion.krumsiek11-seurat.h5ad"/> + <param name="format" value="png"/> + <conditional name="method"> + <param name="method" value="pl.dotplot"/> + <param name="interactive_plot" value="true"/> + <conditional name="var_names"> + <param name="type" value="custom"/> + <param name="var_names" value="Fog1,EKLF,SCL"/> + </conditional> + <param name="gene_symbols" value="symbol"/> + <param name="groupby" value="cell_type"/> + <param name="dendrogram" value="True"/> + <param name="color_map" value="YlGnBu"/> + </conditional> + <section name="advanced_common"> + <param name="show_log" value="true"/> + </section> + <output name="hidden_output"> + <assert_contents> + <has_text_matching expression="sc.pl.dotplot"/> + <has_text_matching expression="gene_symbols='symbol'"/> + <has_text_matching expression="var_names=\['Fog1', 'EKLF', 'SCL'\]"/> + <has_text_matching expression="groupby='cell_type'"/> + <has_text_matching expression="log=False"/> + <has_text_matching expression="use_raw=None"/> + <has_text_matching expression="num_categories=7"/> + <has_text_matching expression="dendrogram=True"/> + </assert_contents> + </output> + <output name="vitessce_config"> + <assert_contents> + <has_n_lines n="98" /> + <has_text_matching expression="sc.pl.dotplot"/> + <has_text_matching expression="anndata.h5ad"/> + </assert_contents> + </output> + <output name="anndata_config"> + <assert_contents> + <has_n_lines n="1" /> + <has_size value="12217" delta="100" /> + <has_text_matching expression="\\"zarr_format\\":2"/> + </assert_contents> + </output> + </test> </tests> <help><