Mercurial > repos > iuc > seurat_plot
changeset 2:c520f64ffd57 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/seurat commit 0c7884b059c6a12ecf22a025317f04c160962be7
| author | iuc |
|---|---|
| date | Thu, 26 Mar 2026 11:15:58 +0000 |
| parents | fee4b4eb0ef5 |
| children | |
| files | New folder/test-data/imagedimplot.png New folder/test-data/imagefeatureplot.png New folder/test-data/test_seurat_spatial.rds macros.xml plot.xml test-data/imagedimplot.png test-data/imagefeatureplot.png test-data/test_seurat_spatial.rds |
| diffstat | 8 files changed, 337 insertions(+), 49 deletions(-) [+] |
line wrap: on
line diff
--- a/macros.xml Tue Nov 05 11:55:07 2024 +0000 +++ b/macros.xml Thu Mar 26 11:15:58 2026 +0000 @@ -1,28 +1,46 @@ <macros> - <token name="@TOOL_VERSION@">5.0</token> + <token name="@TOOL_VERSION@">5.4.0</token> <token name="@VERSION_SUFFIX@">0</token> <token name="@PROFILE@">23.0</token> <xml name="bio_tools"> <xrefs> <xref type="bio.tools">seurat</xref> </xrefs> - </xml> + </xml> + <xml name="creators"> + <creator> + <person givenName="Marisa" familyName="Loach" url="https://github.com/MarisaJL" /> + <person givenName="Maria" familyName="Doyle" url="https://github.com/mblue9" /> + <person givenName="Marius" familyName="van den Beek" url="https://github.com/mvdbeek" /> + <person givenName="Björn" familyName="Grüning" url="https://github.com/bgruening" /> + <person givenName="Alex" familyName="Ostrovsky" url="https://github.com/astrovsky01" /> + <person givenName="Nicola" familyName="Soranzo" url="https://github.com/nsoranzo" /> + <person givenName="Lance" familyName="Parsons" url="https://github.com/lparsons" /> + <person givenName="mtekman" url="https://github.com/mtekman" /> + <person givenName="Pavankumar" familyName="Videm" url="https://github.com/pavanvidem" /> + <person givenName="bernt" familyName="matthias" url="https://github.com/bernt-matthias" /> + <person givenName="Khaled" familyName="Jum'ah" url="https://github.com/khaled196" /> + <person givenName="Krzysztof" familyName="Poterlowicz" url="https://github.com/kpoterlowicz" /> + <organization name="poterlowicz-lab" url="https://github.com/poterlowicz-lab" /> + </creator> + </xml> <xml name="requirements"> <requirements> <requirement type="package" version="@TOOL_VERSION@">r-seurat</requirement> <requirement type="package" version="1.2.1">fit-sne</requirement> - <requirement type="package" version="3.58.1">bioconductor-limma</requirement> - <requirement type="package" version="1.28.0">bioconductor-mast</requirement> - <requirement type="package" version="1.42.0">bioconductor-deseq2</requirement> - <requirement type="package" version="2.1.3">r-svglite</requirement> + <requirement type="package" version="3.62.1">bioconductor-limma</requirement> + <requirement type="package" version="1.32.0">bioconductor-mast</requirement> + <requirement type="package" version="1.46.0">bioconductor-deseq2</requirement> + <requirement type="package" version="1.18.0">bioconductor-glmgampoi</requirement> + <requirement type="package" version="1.22.0">bioconductor-batchelor</requirement> + <requirement type="package" version="2.2.2">r-svglite</requirement> <requirement type="package" version="1.1">r-metap</requirement> - <requirement type="package" version="1.14.0">bioconductor-glmGamPoi</requirement> - <requirement type="package" version="0.5.3">umap-learn</requirement> <!-- https://github.com/satijalab/seurat/issues/8283 --> - <requirement type="package" version="0.10.2">leidenalg</requirement> - <requirement type="package" version="1.2.0">r-harmony</requirement> - <requirement type="package" version="1.18.0">bioconductor-batchelor</requirement> - <requirement type="package" version="2.0.0">numpy</requirement> - <requirement type="package" version="2.2.2">pandas</requirement> + <requirement type="package" version="23.0.1" >r-arrow</requirement> + <requirement type="package" version="1.2.4">r-harmony</requirement> + <requirement type="package" version="0.5.8">umap-learn</requirement> + <requirement type="package" version="0.11.0">leidenalg</requirement> + <requirement type="package" version="2.3.5">numpy</requirement> + <requirement type="package" version="2.3.3">pandas</requirement> </requirements> </xml> <xml name="citations"> @@ -56,24 +74,30 @@ </token> <token name="@reticulate_hack@"><![CDATA[ library(reticulate) -## HACK: CI biocontainers do not contain a useable conda binary, just the env. -## see: https://github.com/galaxyproject/tools-iuc/issues/5585#issuecomment-1803773923 -is_biocontainer = grepl("^# cmd: /opt/conda/bin/", - paste0(reticulate:::python_info_condaenv_find("/usr/local/"), - "-none")) + +## Detect biocontainer environment +is_biocontainer <- FALSE + +if (file.exists("/usr/local/bin/python") && !file.exists("/opt/conda/bin/conda")) { + is_biocontainer <- TRUE +} + if (is_biocontainer) { - ## conda detection false positive - assignInNamespace("is_conda_python", function(x) FALSE, ns="reticulate") - use_python("/usr/local/bin/python") + ## Inside a biocontainer: prevent reticulate from assuming conda exists + assignInNamespace("is_conda_python", function(x) FALSE, ns = "reticulate") + use_python("/usr/local/bin/python", required = TRUE) + } else { - conda_path = Sys.getenv("CONDA_PREFIX") - if (conda_path != "") { - ## Active conda env found - use_python(file.path(conda_path, "bin", "python3")) - } else { - ## Not biocontainer or conda, assume system python - use_python("/usr/bin/python3") - } + + ## Conda or system Python + conda_path <- Sys.getenv("CONDA_PREFIX") + + if (nzchar(conda_path)) { + use_python(file.path(conda_path, "bin", "python3"), required = TRUE) + } else { + use_python("/usr/bin/python3", required = TRUE) + } + }]]> </token> <xml name="input_rds"> @@ -406,11 +430,17 @@ <xml name="plot_group_by"> <param name="group_by" type="text" optional="true" value="" label="Factor to group cells by" help="(group.by)"/> </xml> + <xml name="plot_fov"> + <param name="fov" type="text" optional="true" value="" label="Name of FOV to plot" help=""/> + </xml> <xml name="plot_split_by"> <param name="split_by" type="text" optional="true" value="" label="Factor or identity to split the plot by" help="(split.by)"/> </xml> <xml name="plot_alpha"> - <param argument="alpha" type="integer" value="1" label="Alpha value for points"/> + <param argument="alpha" type="integer" optional="true" value="1" label="Alpha value for points"/> + </xml> + <xml name="plot_shuffle_cols"> + <param argument="shuffle_cols" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Randomly choose colors when a palette or vector of colors is provided to cols"/> </xml> <xml name="plot_pt_size"> <param name="pt_size" type="float" optional="true" value="" label="Point size for plot" help="(pt.size)"/> @@ -418,9 +448,58 @@ <xml name="plot_smooth"> <param argument="smooth" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Smooth the graph"/> </xml> + <xml name="plot_boundaries"> + <param argument="boundaries" type="text" optional="true" value="" label="Boundaries" help="A vector of segmentation boundaries per image to plot e.g boundaries ('slideA_fov1' = 'segmentation', 'slideB_fov2' = 'centroids')"/> + </xml> + <xml name="plot_molecules"> + <param argument="molecules" type="text" optional="true" value="" label="Molecules" help="A vector of molecules to plot"/> + <param argument="mols_size" type="float" value="0.1" label="Point size for molecules" help="(mols.size)"/> + <param argument="mols_cols" type="text" optional="true" value="" label="Molecules Colors" help="A vector of color for molecules. The 'Set1' palette from RColorBrewer is used by default (make sure the vector has the same length as the molecules)"/> + </xml> + <xml name="plot_mol_alpha"> + <param name="mols_alpha" type="float" optional="true" value="1.0" min="0.0" max="1.0" label="Alpha value for molecules" help="Controls the transparency of individual molecules when plotted; 0 is fully transparent and 1 is fully opaque."/> + </xml> + <xml name="plot_nmols"> + <param name="nmols" type="integer" optional="true" value="1000" label="Max number of each molecule specified in `molecules` to plot" help=""/> + </xml> <xml name="plot_ncol"> <param argument="ncol" type="integer" optional="true" value="" label="Number of columns to display"/> </xml> + <xml name="plot_border"> + <param argument="border_color" type="text" value="white" label="Color of cell segmentation border" help="Default color is set to white"/> + <param argument="border_size" type="integer" optional="true" value="" label="Thickness of cell segmentation borders" help=""/> + </xml> + <xml name="plot_na_value"> + <param name="na_value" type="select" label="Colour for NA points when using custom scale" help="(na.value)"> + <option value="lightgrey" selected="true">lightgrey</option> + <option value="grey">grey</option> + <option value="black">black</option> + </param> + </xml> + <xml name="plot_dark_background"> + <param argument="dark_background" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Set plot background to black"/> + </xml> + <xml name="plot_crop"> + <param argument="crop" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Crop the plots to area with cells only"/> + </xml> + <xml name="plot_overlap"> + <param argument="overlap" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Overlay boundaries from a single image to create a single plot"/> + </xml> + <xml name="plot_axes"> + <param argument="axes" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Keep axes and panel background"/> + </xml> + <xml name="plot_combine"> + <param argument="combine" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Combine plots into a single patchwork"/> + </xml> + <xml name="plot_coord_fixed"> + <param argument="coord_fixed" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Plot cartesian coordinates with fixed aspect ratio"/> + </xml> + <xml name="plot_flip_xy"> + <param argument="flip_xy" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Flag to flip X and Y axes"/> + </xml> + <xml name="plot_cells"> + <param argument="cells" type="data" format="txt,tabular" optional="true" label="List of cells to include on plot" help="text file with one cell on each line"/> + </xml> <xml name="raster_select"> <conditional name="raster"> <param argument="raster" type="select" label="Convert points to raster format" help="NULL will automatically use raster if more than 100,000 points plotted">
--- a/plot.xml Tue Nov 05 11:55:07 2024 +0000 +++ b/plot.xml Thu Mar 26 11:15:58 2026 +0000 @@ -6,6 +6,7 @@ <expand macro="bio_tools"/> <expand macro="requirements"/> <expand macro="version_command"/> + <expand macro="creators"/> <command detect_errors="exit_code"><![CDATA[ @CMD@ ]]></command> @@ -246,6 +247,115 @@ combine = TRUE ) +#else if $method.method == 'ImageDimPlot' + +#if $method.adv.cells + cells_list<-paste(readLines('$method.adv.cells'), collapse=",") + #end if + +plot<-ImageDimPlot( + seurat_obj, + #if $method.plot.fov != '' + fov = c(unlist(strsplit(gsub(" ", "", '$method.plot.fov'), ","))), + #end if + #if $method.plot.boundaries != '' + boundaries = c(unlist(strsplit(gsub(" ", "", '$method.plot.boundaries'), ","))), + #end if + #if $method.adv.group_by != '' + group.by = '$method.adv.group_by', + #end if + #if $method.adv.split_by != '' + split.by = '$method.adv.split_by', + #end if + #if $method.plot.cols != '' + cols = c(unlist(strsplit(gsub(" ", "", '$method.plot.cols'), ","))), + shuffle.cols = $method.plot.shuffle_cols, + #end if + size = $method.plot.size, + #if $method.plot.molecules != '' + molecules = c(unlist(strsplit(gsub(" ", "", '$method.plot.molecules'), ","))), + mols.size = $method.plot.mols_size, + mols.cols = c(unlist(strsplit(gsub(" ", "", '$method.plot.mols_cols'), ","))), + mols.alpha = $method.plot.mols_alpha, + nmols = $method.plot.nmols, + #end if + alpha = $method.plot.alpha, + #if $method.adv.border_color != '' + border.color = '$method.adv.border_color', + #end if + #if $method.adv.border_size != '' + border.size = $method.adv.border_size, + #end if + na.value = '$method.plot.na_value', + dark.background = $method.adv.dark_background, + crop = $method.adv.crop, + #if $method.adv.cells + cells = c(unlist(strsplit(cells_list, ","))), + #end if + overlap = $method.adv.overlap, + axes = $method.adv.axes, + combine = TRUE, + coord.fixed = $method.adv.coord_fixed, + flip_xy = $method.adv.flip_xy +) + +#else if $method.method == 'ImageFeaturePlot' + +#if $method.adv.cells + cells_list<-paste(readLines('$method.adv.cells'), collapse=",") + #end if + +plot<-ImageFeaturePlot( + seurat_obj, + features = '$method.features', + #if $method.plot.fov != '' + fov = c(unlist(strsplit(gsub(" ", "", '$method.plot.fov'), ","))), + #end if + #if $method.plot.boundaries != '' + boundaries = c(unlist(strsplit(gsub(" ", "", '$method.plot.boundaries'), ","))), + #end if + size = $method.plot.size, + #if $method.adv.min_cutoff != '' + min.cutoff = '$method.adv.min_cutoff', + #end if + #if $method.adv.max_cutoff != '' + max.cutoff = '$method.adv.max_cutoff', + #end if + #if $method.adv.split_by != '' + split.by = '$method.adv.split_by', + #end if + #if $method.plot.molecules != '' + molecules = c(unlist(strsplit(gsub(" ", "", '$method.plot.molecules'), ","))), + mols.size = $method.plot.mols_size, + mols.cols = c(unlist(strsplit(gsub(" ", "", '$method.plot.mols_cols'), ","))), + nmols = $method.plot.nmols, + #end if + alpha = $method.plot.alpha, + #if $method.adv.border_color != '' + border.color = '$method.adv.border_color', + #end if + #if $method.adv.border_size != '' + border.size = $method.adv.border_size, + #end if + dark.background = $method.adv.dark_background, + blend = $method.plot.blend, + #if $method.plot.blend == 'TRUE' + cols = c("#ff0000", "#00ff00"), + blend.threshold = $method.plot.blend_threshold, + #else + cols = c("lightgrey", "firebrick1"), + scale = '$method.plot.scale', + #end if + crop = $method.adv.crop, + #if $method.adv.cells + cells = c(unlist(strsplit(cells_list, ","))), + #end if + overlap = $method.adv.overlap, + axes = $method.adv.axes, + combine = TRUE, + coord.fixed = $method.adv.coord_fixed +) + #else if $method.method == 'DimHeatmap' plot<-DimHeatmap( seurat_obj, @@ -310,8 +420,12 @@ #end if alpha = $method.plot.alpha, order = $method.plot.order, + #if $method.adv.min_cutoff != '' min.cutoff = 'q$method.adv.min_cutoff', + #end if + #if $method.adv.max_cutoff != '' max.cutoff = 'q$method.adv.max_cutoff', + #end if #if $method.adv.split_by != '' split.by = '$method.adv.split_by', by.col = $method.plot.blend.by_col, @@ -501,6 +615,8 @@ <option value="VariableFeaturePlot">Plot Variable Genes with 'VariableFeaturePlot'</option> <option value="VizDimLoadings">Visualize Reduction Results with 'VizDimLoadings'</option> <option value="DimPlot">Visualize Dimensional Reduction with 'DimPlot'</option> + <option value="ImageDimPlot">Visualize spatial clusters or other categorical groupings with 'ImageDimPlot'</option> + <option value="ImageFeaturePlot">Visualize expression in a spatial context with 'ImageFeaturePlot'</option> <option value="DimHeatmap">Visualize Reduction Results with 'DimHeatmap'</option> <option value="ElbowPlot">Determine dimensionality with 'ElbowPlot'</option> <option value="FeaturePlot">Visualize expression with 'FeaturePlot'</option> @@ -687,19 +803,75 @@ <when value="false"> </when> </conditional> - <param name="na_value" type="select" label="Colour for NA points when using custom scale" help="(na.value)"> - <option value="lightgrey" selected="true">lightgrey</option> - <option value="grey">grey</option> - <option value="black">black</option> - </param> + <expand macro="plot_na_value"/> </section> <section name="adv" title="Advanced Options"> - <param argument="cells" type="data" format="txt,tabular" optional="true" label="List of cells to include on plot" help="text file with one cell on each line"/> + <expand macro="plot_cells"/> <expand macro="plot_group_by"/> <expand macro="plot_split_by"/> <param name="shape_by" type="text" optional="true" value="" label="Shape points by a group or identity" help="only when not saving as raster (shape.by)"/> </section> </when> + <when value="ImageDimPlot"> + <section name="plot" title="Plot Formatting Options"> + <expand macro="plot_fov"/> + <expand macro="plot_boundaries"/> + <expand macro="plot_cols"/> + <expand macro="plot_shuffle_cols"/> + <param name="size" type="float" value="1.0" label="Point size for cells" help="(size)"/> + <expand macro="plot_alpha"/> + <expand macro="plot_molecules"/> + <expand macro="plot_mol_alpha"/> + <expand macro="plot_nmols"/> + <expand macro="plot_na_value"/> + </section> + <section name="adv" title="Advanced Options"> + <expand macro="plot_group_by"/> + <expand macro="plot_split_by"/> + <expand macro="plot_border"/> + <expand macro="plot_dark_background"/> + <expand macro="plot_crop"/> + <expand macro="plot_cells"/> + <expand macro="plot_overlap"/> + <expand macro="plot_axes"/> + <expand macro="plot_combine"/> + <expand macro="plot_coord_fixed"/> + <expand macro="plot_flip_xy"/> + </section> + </when> + <when value="ImageFeaturePlot"> + <param argument="features" type="text" value="nFeature_RNA" label="Features to plot" help="comma-separated list e.g. MS4A1, percent.mito, PC_1"/> + <section name="plot" title="Plot Formatting Options"> + <expand macro="plot_fov"/> + <expand macro="plot_boundaries"/> + <param name="size" type="float" value="1.0" label="Point size for cells" help="(size)"/> + <expand macro="plot_alpha"/> + <expand macro="plot_molecules"/> + <expand macro="plot_nmols"/> + <param argument="blend" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Scale and blend expression values to visualize coexpression"/> + <param name="blend_threshold" type="float" value="0.5" min="0" max="1" label="Colour cutoff from weak signal to strong signal" help="(blend.threshold)"/> + <param name="scale" type="select" label="How to handle colour scale across multiple plots" help="(scale)"> + <option value="feature" selected="true">Scale each feature separately</option> + <option value="all">Scale all to same maximum</option> + <option value="none">Plots are not scaled</option> + </param> + <expand macro="raster_select"/> + </section> + <section name="adv" title="Advanced Options"> + <expand macro="plot_group_by"/> + <expand macro="plot_split_by"/> + <expand macro="plot_border"/> + <expand macro="plot_dark_background"/> + <expand macro="plot_crop"/> + <expand macro="plot_cells"/> + <expand macro="plot_coord_fixed"/> + <expand macro="plot_overlap"/> + <expand macro="plot_axes"/> + <expand macro="plot_combine"/> + <param name="min_cutoff" type="text" optional="true" value="" label="Minimum cutoff for features - as quantile" help="Minimum values for each feature eg, 'q1'or 'q10')"/> + <param name="max_cutoff" type="text" optional="true" value="" label="Maximum cutoff for features - as quantile" help="Maximum values for each feature (eg, 'q1'or 'q10')"/> + </section> + </when> <when value="DimHeatmap"> <param argument="dims" type="text" value="1:10" label="Dimensions from reduction to plot" help="enter one or a range of dimensions e.g. 3 to plot dim 3, 1:10 to plot dims 1 to 10"> <validator type="regex" message="Please only use numbers or colon">^[\d:]+$</validator> @@ -927,11 +1099,11 @@ <has_text_matching expression="VlnPlot"/> </assert_contents> </output> - <output name="plot_out_png" location="https://zenodo.org/records/13732784/files/VlnPlot.png" ftype="png" compare="image_diff"/> + <output name="plot_out_png" location="https://zenodo.org/records/17817806/files/VlnPlot.png" ftype="png" compare="image_diff"/> </test> <test expect_num_outputs="2"> <!-- test2: FeatureScatter PDF --> - <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/filtered.rds"/> + <param name="seurat_rds" location="https://zenodo.org/records/17817806/files/filtered.rds"/> <param name="plot_format" value="png"/> <conditional name="method"> <param name="method" value="FeatureScatter"/> @@ -946,11 +1118,11 @@ <has_text_matching expression="FeatureScatter"/> </assert_contents> </output> - <output name="plot_out_png" location="https://zenodo.org/records/13732784/files/FeatureScatter.png" ftype="png" compare="image_diff"/> + <output name="plot_out_png" location="https://zenodo.org/records/17817806/files/FeatureScatter.png" ftype="png" compare="image_diff"/> </test> <test expect_num_outputs="2"> <!-- test3: CellScatter PDF --> - <param name="seurat_rds" location="https://zenodo.org/records/13732784/files/variablefeatures.rds"/> + <param name="seurat_rds" location="https://zenodo.org/records/17817806/files/variablefeatures.rds"/> <param name="plot_format" value="pdf"/> <conditional name="method"> <param name="method" value="CellScatter"/> @@ -967,7 +1139,7 @@ <has_text_matching expression="CellScatter"/> </assert_contents> </output> - <output name="plot_out_pdf" location="https://zenodo.org/records/13732784/files/CellScatter.pdf" ftype="pdf" compare="diff" lines_diff="50"/> + <output name="plot_out_pdf" location="https://zenodo.org/records/17817806/files/CellScatter.pdf" ftype="pdf" compare="diff" lines_diff="50"/> </test> <test expect_num_outputs="2"> <!-- test4: VariableFeaturePlot SVG --> @@ -988,7 +1160,7 @@ <has_text_matching expression="VariableFeaturePlot"/> </assert_contents> </output> - <output name="plot_out_svg" location="https://zenodo.org/records/13732784/files/VariableFeaturePlot.svg" ftype="svg" compare="diff" lines_diff="50"/> + <output name="plot_out_svg" location="https://zenodo.org/records/17817806/files/VariableFeaturePlot.svg" ftype="svg" compare="diff" lines_diff="50"/> </test> <test expect_num_outputs="2"> <!-- test5: VizDimLoadings JPEG --> @@ -1013,7 +1185,7 @@ <has_text_matching expression="VizDimLoadings"/> </assert_contents> </output> - <output name="plot_out_jpeg" location="https://zenodo.org/records/13732784/files/VizDimLoadings.jpeg" ftype="jpeg" compare="image_diff"/> + <output name="plot_out_jpeg" location="https://zenodo.org/records/17817806/files/VizDimLoadings.jpeg" ftype="jpeg" compare="image_diff"/> </test> <test expect_num_outputs="2"> <!-- test6: DimPlot TEX --> @@ -1032,7 +1204,7 @@ <has_text_matching expression="DimPlot"/> </assert_contents> </output> - <output name="plot_out_tex" location="https://zenodo.org/records/13732784/files/DimPlot.tex" ftype="tex"> + <output name="plot_out_tex" location="https://zenodo.org/records/17817806/files/DimPlot.tex" ftype="tex"> <assert_contents> <has_text_matching expression="beginpicture"/> </assert_contents> @@ -1065,7 +1237,7 @@ <has_text_matching expression="DimHeatmap"/> </assert_contents> </output> - <output name="plot_out_tiff" location="https://zenodo.org/records/13732784/files/DimHeatmap.tiff" ftype="tiff" compare="image_diff"/> + <output name="plot_out_tiff" location="https://zenodo.org/records/17817806/files/DimHeatmap.tiff" ftype="tiff" compare="image_diff"/> </test> <test expect_num_outputs="2"> <!-- test8: ElbowPlot EPS --> @@ -1084,7 +1256,7 @@ <has_text_matching expression="ElbowPlot"/> </assert_contents> </output> - <output name="plot_out_eps" location="https://zenodo.org/records/13732784/files/ElbowPlot.eps" ftype="eps"/> + <output name="plot_out_eps" location="https://zenodo.org/records/17817806/files/ElbowPlot.eps" ftype="eps"/> </test> <test expect_num_outputs="2"> <!-- test9: FeaturePlot PNG --> @@ -1108,7 +1280,7 @@ <has_text_matching expression="FeaturePlot"/> </assert_contents> </output> - <output name="plot_out_png" location="https://zenodo.org/records/13732784/files/FeaturePlot.png" ftype="png" compare="image_diff"/> + <output name="plot_out_png" location="https://zenodo.org/records/17817806/files/FeaturePlot.png" ftype="png" compare="image_diff"/> </test> <test expect_num_outputs="2"> <!-- test10: DoHeatmap PNG --> @@ -1136,7 +1308,7 @@ <has_text_matching expression="DoHeatmap"/> </assert_contents> </output> - <output name="plot_out_png" location="https://zenodo.org/records/13732784/files/DoHeatmap.png" ftype="png" compare="image_diff"/> + <output name="plot_out_png" location="https://zenodo.org/records/17817806/files/DoHeatmap.png" ftype="png" compare="image_diff"/> </test> <test expect_num_outputs="2"> <!-- test11: DotPlot PNG --> @@ -1154,7 +1326,44 @@ <has_text_matching expression="DotPlot"/> </assert_contents> </output> - <output name="plot_out_png" location="https://zenodo.org/records/13732784/files/DotPlot.png" ftype="png" compare="image_diff"/> + <output name="plot_out_png" location="https://zenodo.org/records/17817806/files/DotPlot.png" ftype="png" compare="image_diff"/> + </test> + <test expect_num_outputs="2"> + <!-- test12: ImageDimPlot PNG --> + <param name="seurat_rds" location="https://zenodo.org/records/17807529/files/test_seurat_spatial.rds"/> + <param name="plot_format" value="png"/> + <conditional name="method"> + <param name="fov" value="anterior1"/> + <param name="method" value="ImageDimPlot"/> + </conditional> + <section name="advanced_common"> + <param name="show_log" value="true"/> + </section> + <output name="hidden_output"> + <assert_contents> + <has_text_matching expression="ImageDimPlot"/> + </assert_contents> + </output> + <output name="plot_out_png" location="https://zenodo.org/records/17817806/files/ImageDimPlot.png" ftype="png" compare="image_diff"/> + </test> + <test expect_num_outputs="2"> + <!-- test13: ImageFeaturePlot PNG --> + <param name="seurat_rds" location="https://zenodo.org/records/17807529/files/test_seurat_spatial.rds"/> + <param name="plot_format" value="png"/> + <conditional name="method"> + <param name="method" value="ImageFeaturePlot"/> + <param name="fov" value="anterior1"/> + <param name="features" value="Xkr4"/> + </conditional> + <section name="advanced_common"> + <param name="show_log" value="true"/> + </section> + <output name="hidden_output"> + <assert_contents> + <has_text_matching expression="ImageFeaturePlot"/> + </assert_contents> + </output> + <output name="plot_out_png" location="https://zenodo.org/records/17817806/files/ImageFeaturePlot.png" ftype="png" compare="image_diff"/> </test> </tests> <help><