Workflow Type: Galaxy
Frozen
Frozen
Frozen
Frozen
Frozen
Stable
A comprehensive Galaxy workflow for the end-to-end analysis of transcriptomics data, featuring automated QC, clustering, spatial statistics, cell type annotation, and cell-cell communication.
Inputs
| ID | Name | Description | Type |
|---|---|---|---|
| Fraction of cells to subsample | Fraction of cells to subsample | Fraction of cells to subsample. Default is 1.0 (no subsampling) |
|
| Maximum cell volume | Maximum cell volume | maximum volume of the cell |
|
| Minimum cell volume | Minimum cell volume | Minimum volume of a cell. |
|
| Perform scaling? | Perform scaling? | By default, no scaling will be done. |
|
| Proportion of top genes for QC | Proportion of top genes for QC | will be used for qc_vars param |
|
| Regress out volume and total_counts? | Regress out volume and total_counts? | By default no regression will be done. |
|
| Resolution | Resolution | Provide the list of resolutions to use for Leiden clustering. One resolution per line. For example: 1.0 1.2 1.4 |
|
| Subsample the AnnData? | Subsample the AnnData? | Subsample the AnnData? |
|
| Use seurat flavor for highly variable gene selection | Use seurat flavor for highly variable gene selection | By default, it uses the Cellranger flavor with top 4000 genes |
|
| maximum number of counts for a cell to pass 2 | maximum number of counts for a cell to pass 2 | How many counts should a cell have at least? |
|
| maximum number of counts for a cell to pass 3 | maximum number of counts for a cell to pass 3 | What is the maximum number of counts a cell should have? |
|
| minimum number of cells for a gene to pass | minimum number of cells for a gene to pass | How many cells should a gene be assigned to, at least |
|
| minimum number of counts for a cell to pass | minimum number of counts for a cell to pass | How many counts should a cell have, at least? |
|
| minimum number of counts for a gene to pass | minimum number of counts for a gene to pass | How many counts should a gene have, at least |
|
| minimum number of genes for a cell to pass | minimum number of genes for a cell to pass | How many genes should a cell have, at least? |
|
| number of expected clusters | number of expected clusters | How many clusters do you expect to see in your data? A resolution that has the closest number of clusters to this value, will be selected for downstream analysis. |
|
| select celltypist model | select celltypist model | select celltypist model |
|
| spatialdata | spatialdata | input spatial data object |
|
Steps
| ID | Name | Description |
|---|---|---|
| 18 | extract anndata | extract the AnnData from SpatialData toolshed.g2.bx.psu.edu/repos/iuc/spatialdata_operation/spatialdata_operation/0.7.2+galaxy0 |
| 19 | Split file | toolshed.g2.bx.psu.edu/repos/bgruening/split_file_to_collection/split_file_to_collection/0.5.2 |
| 20 | add "leiden_res" | toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_line/9.5+galaxy3 |
| 21 | Map parameter value | toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.2.0 |
| 22 | Map parameter value | toolshed.g2.bx.psu.edu/repos/iuc/map_param_value/map_param_value/0.2.0 |
| 23 | Calculate QC metrics | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.11.5+galaxy0 |
| 24 | Parse parameter value | param_value_from_file |
| 25 | Transpose | toolshed.g2.bx.psu.edu/repos/iuc/datamash_transpose/datamash_transpose/1.9+galaxy0 |
| 26 | scatter plot | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 27 | violin plot 1 | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 28 | violin plot 2 | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 29 | violin plot 3 | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 30 | filter cells - min_genes | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 31 | list of resolution keys | toolshed.g2.bx.psu.edu/repos/iuc/compose_text_param/compose_text_param/0.1.1 |
| 32 | replace tab with comma | toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_line/9.5+galaxy3 |
| 33 | filter cells - min_counts | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 34 | Parse parameter value | param_value_from_file |
| 35 | filter genes - min_cells | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 36 | filter genes - min_counts | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 37 | filter cells - max_counts | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 38 | filter cells - max_genes | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 39 | Calculate QC metrics - filtered | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.11.5+galaxy0 |
| 40 | scatter plot filtered | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 41 | violin plot filtered 1 | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 42 | violin plot filtered 2 | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 43 | violin plot filtered 3 | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 44 | filter min volume | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 45 | filter max volume | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 46 | Calculate QC metrics - filtered by volume | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.11.5+galaxy0 |
| 47 | scatter plot filtered volume | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 48 | violin plot filtered volume 1 | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 49 | violin plot filtered volume 2 | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 50 | violin plot filtered volume 3 | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 51 | Manipulate AnnData | toolshed.g2.bx.psu.edu/repos/iuc/anndata_manipulate/anndata_manipulate/0.11.4+galaxy3 |
| 52 | Scanpy normalize | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_normalize/scanpy_normalize/1.11.5+galaxy0 |
| 53 | log1p | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.11.5+galaxy0 |
| 54 | sc.pp.highly_variable cellranger | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 55 | sc.pp.highly_variable seurat | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 56 | HVG selected | toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0 |
| 57 | scanpy regress out | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_remove_confounders/scanpy_remove_confounders/1.11.5+galaxy0 |
| 58 | Scanpy plot | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 59 | Pick parameter value | toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0 |
| 60 | scanpy scale | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.11.5+galaxy0 |
| 61 | Pick parameter value | toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0 |
| 62 | scanpy PCA | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_cluster_reduce_dimension/scanpy_cluster_reduce_dimension/1.11.5+galaxy0 |
| 63 | scanpy pca plot | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 64 | scanpy neighbor | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.11.5+galaxy0 |
| 65 | scanpy umap | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_cluster_reduce_dimension/scanpy_cluster_reduce_dimension/1.11.5+galaxy0 |
| 66 | scanpy umap plot | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 67 | leiden per res | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_cluster_reduce_dimension/scanpy_cluster_reduce_dimension/1.11.5+galaxy0 |
| 68 | Get obs | toolshed.g2.bx.psu.edu/repos/iuc/anndata_inspect/anndata_inspect/0.11.4+galaxy3 |
| 69 | scanpy rank_genes_groups | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.11.5+galaxy0 |
| 70 | get cell_id and leiden key values | get cell_id and leiden key values toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_awk_tool/9.5+galaxy3 |
| 71 | scanpy plot rank_genes | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 72 | Column join | toolshed.g2.bx.psu.edu/repos/iuc/collection_column_join/collection_column_join/0.0.3 |
| 73 | remove cell_id | remove cell_id toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cut_tool/9.5+galaxy3 |
| 74 | remove file name from header | toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_find_and_replace/9.5+galaxy3 |
| 75 | add "c_" to clusters | When adding the table back to the Anndata, it is set as an integer. This step adds "c_" before those integers so it will be fixed. toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_find_and_replace/9.5+galaxy3 |
| 76 | calculate number of clusters | calculate the number of clusters per resolution toolshed.g2.bx.psu.edu/repos/iuc/table_compute/table_compute/1.2.4+galaxy2 |
| 77 | Manipulate AnnData | toolshed.g2.bx.psu.edu/repos/iuc/anndata_manipulate/anndata_manipulate/0.11.4+galaxy3 |
| 78 | Add column | addValue |
| 79 | transform string annotation to categories | transform string annotation to categories toolshed.g2.bx.psu.edu/repos/iuc/anndata_manipulate/anndata_manipulate/0.11.4+galaxy3 |
| 80 | Compute | substract expected # cluster from real # clusters toolshed.g2.bx.psu.edu/repos/devteam/column_maker/Add_a_column1/2.1+galaxy0 |
| 81 | Scanpy plot | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.11.5+galaxy0 |
| 82 | Sort | sort to get the closest resolution. In case of a tie, the highest resolution will be selected. toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sort_header_tool/9.5+galaxy3 |
| 83 | Scanpy filter | toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.11.5+galaxy0 |
| 84 | Table Compute | Select the line with the best resolution toolshed.g2.bx.psu.edu/repos/iuc/table_compute/table_compute/1.2.4+galaxy2 |
| 85 | Pick parameter value | toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0 |
| 86 | Cut | select the resolution Cut1 |
| 87 | squidpy spatial_neighbors | squidpy spatial_neighbors 2 toolshed.g2.bx.psu.edu/repos/goeckslab/squidpy/squidpy_spatial/1.5.0+galaxy0 |
| 88 | Parse parameter value | set the value to a text input param_value_from_file |
| 89 | squidpy centrality_scores | squidpy centrality_scores toolshed.g2.bx.psu.edu/repos/goeckslab/squidpy/squidpy_spatial/1.5.0+galaxy0 |
| 90 | squidpy nhood_enrichment | squidpy nhood_enrichment toolshed.g2.bx.psu.edu/repos/goeckslab/squidpy/squidpy_spatial/1.5.0+galaxy0 |
| 91 | squidpy spatial_autocorr | squidpy spatial_autocorr toolshed.g2.bx.psu.edu/repos/goeckslab/squidpy/squidpy_spatial/1.5.0+galaxy0 |
| 92 | CellTypist | toolshed.g2.bx.psu.edu/repos/iuc/celltypist/celltypist/1.7.1+galaxy0 |
| 93 | Liana methods | toolshed.g2.bx.psu.edu/repos/iuc/liana_methods/liana_methods/1.7.1+galaxy0 |
| 94 | final spatialdata object | toolshed.g2.bx.psu.edu/repos/iuc/spatialdata_operation/spatialdata_operation/0.7.2+galaxy0 |
Outputs
| ID | Name | Description | Type |
|---|---|---|---|
| ranked_gene | ranked_gene | n/a |
|
| spatialdata_output_processed | spatialdata_output_processed | n/a |
|
Version History
Version 5 (latest) Created 8th Jul 2026 at 08:17 by Amirhossein Naghsh Nilchi
This version includes an updated workflow in which the filtering and plotting based on the volume is optional, because some spatial data objects do not have that info.
Frozen
Version-5
d41c97b
Version 4 Created 29th Jun 2026 at 15:55 by Amirhossein Naghsh Nilchi
Updated squidpy, spatialdata and liana versions
Frozen
Version-4
f4f5e66
Version 3 Created 19th May 2026 at 10:51 by Amirhossein Naghsh Nilchi
No revision comments
Frozen
Version-3
6e657d6
Version 2 Created 19th May 2026 at 10:37 by Amirhossein Naghsh Nilchi
No revision comments
Frozen
Version-2
deee199
Version 1 (earliest) Created 18th May 2026 at 13:50 by Amirhossein Naghsh Nilchi
First version of the WF
Frozen
Version-1
b414b09
Creators and SubmitterCreators
Additional credit
Björn Grüning
Submitter
Citation
Naghsh Nilchi, A., & Videm, P. (2026). Spatial Transcriptomics Analysis in Galaxy. WorkflowHub. https://doi.org/10.48546/WORKFLOWHUB.WORKFLOW.2174.3
License
Activity
Views: 903 Downloads: 116 Runs: 34
Created: 18th May 2026 at 13:50
Last updated: 8th Jul 2026 at 08:28
Annotated Properties
Topic annotations
Operation annotations
Scientific disciplines
Computer Science, Medicine, Biochemistry, Genetics and Molecular Biology, Immunology and Microbiology, Neuroscience, Pharmacology, Toxicology and Pharmaceutics
Tags
Attributions
Run on Galaxy
https://orcid.org/0000-0003-1329-3044