Filter plot and explore single-cell RNA-seq data with Scanpy (imported from uploaded file)

single-cell-scrna-case_basic-pipeline/filter-plot-and-explore-single-cell-rna-seq-data-with-scanpy

Author(s)
Wendi Bacon
version Version
1
last_modification Last updated
Apr 23, 2025
license License
MIT
galaxy-tags Tags
name:training
name:single-cell

Features
Tutorial
hands_on Filter, plot and explore single-cell RNA-seq data with Scanpy
workflow Other workflows associated with this material
Workflow Testing
Tests: ✅
Results: Not yet automated
FAIRness purl PURL
https://gxy.io/GTN:W00331
RO-Crate logo with flask Download Workflow RO-Crate Workflowhub cloud with gears logo View on WorkflowHub
Launch in Tutorial Mode question
galaxy-download Download
flowchart TD
  0["ℹ️ Input Dataset\nBatched_AnnData"];
  style 0 stroke:#2c3143,stroke-width:4px;
  1["QC_AnnData"];
  0 -->|output| 1;
  3ff4e1be-b955-4f57-9eb3-ed50d6e198de["Output\nQC_Object"];
  1 --> 3ff4e1be-b955-4f57-9eb3-ed50d6e198de;
  style 3ff4e1be-b955-4f57-9eb3-ed50d6e198de stroke:#2c3143,stroke-width:4px;
  2["Inspect AnnData"];
  1 -->|anndata_out| 2;
  5b8e785a-78e2-45e7-b7de-23acc0966376["Output\ngeneral"];
  2 --> 5b8e785a-78e2-45e7-b7de-23acc0966376;
  style 5b8e785a-78e2-45e7-b7de-23acc0966376 stroke:#2c3143,stroke-width:4px;
  3["Inspect AnnData"];
  1 -->|anndata_out| 3;
  2c7d27f5-07f6-46e7-87a9-f0cd5975b0e4["Output\nobs"];
  3 --> 2c7d27f5-07f6-46e7-87a9-f0cd5975b0e4;
  style 2c7d27f5-07f6-46e7-87a9-f0cd5975b0e4 stroke:#2c3143,stroke-width:4px;
  4["Inspect AnnData"];
  1 -->|anndata_out| 4;
  149ab95b-588b-4710-b2c1-6dc49f922008["Output\nvar"];
  4 --> 149ab95b-588b-4710-b2c1-6dc49f922008;
  style 149ab95b-588b-4710-b2c1-6dc49f922008 stroke:#2c3143,stroke-width:4px;
  5["Scanpy filter"];
  1 -->|anndata_out| 5;
  bef9839b-580c-4ecb-81e4-b60a3e7a7b05["Output\nGenes_Part_Object"];
  5 --> bef9839b-580c-4ecb-81e4-b60a3e7a7b05;
  style bef9839b-580c-4ecb-81e4-b60a3e7a7b05 stroke:#2c3143,stroke-width:4px;
  6["Violin_log_genotype"];
  1 -->|anndata_out| 6;
  fef9d513-240d-4570-ae91-a6a7aa3c1cc8["Output\nViolin_log_genotype"];
  6 --> fef9d513-240d-4570-ae91-a6a7aa3c1cc8;
  style fef9d513-240d-4570-ae91-a6a7aa3c1cc8 stroke:#2c3143,stroke-width:4px;
  7["Violin_log_sex"];
  1 -->|anndata_out| 7;
  9b3298b7-6ba7-4fa6-a589-3a0748357315["Output\nViolin_log_sex"];
  7 --> 9b3298b7-6ba7-4fa6-a589-3a0748357315;
  style 9b3298b7-6ba7-4fa6-a589-3a0748357315 stroke:#2c3143,stroke-width:4px;
  8["Scatter_GenesxUMI"];
  1 -->|anndata_out| 8;
  dad9a687-c56e-457d-939f-00d4903b11fa["Output\nScatter_GenesxUMI"];
  8 --> dad9a687-c56e-457d-939f-00d4903b11fa;
  style dad9a687-c56e-457d-939f-00d4903b11fa stroke:#2c3143,stroke-width:4px;
  9["Violin_log_batch"];
  1 -->|anndata_out| 9;
  53a94463-291d-4c6c-a311-49d407741fab["Output\nViolin_log_batch"];
  9 --> 53a94463-291d-4c6c-a311-49d407741fab;
  style 53a94463-291d-4c6c-a311-49d407741fab stroke:#2c3143,stroke-width:4px;
  10["Scatter_GenesxMito"];
  1 -->|anndata_out| 10;
  a2055143-1023-4c9e-8311-00979667416d["Output\nScatter_GenesxMito"];
  10 --> a2055143-1023-4c9e-8311-00979667416d;
  style a2055143-1023-4c9e-8311-00979667416d stroke:#2c3143,stroke-width:4px;
  11["Scatter_UMIxMito"];
  1 -->|anndata_out| 11;
  608b45ff-34dd-47ac-b931-24fba3220077["Output\nScatter_UMIxMito"];
  11 --> 608b45ff-34dd-47ac-b931-24fba3220077;
  style 608b45ff-34dd-47ac-b931-24fba3220077 stroke:#2c3143,stroke-width:4px;
  12["Genes_Filtered_Object"];
  5 -->|anndata_out| 12;
  c01b954a-c215-4511-812b-1075a0238b2a["Output\nGenes_Filtered_Object"];
  12 --> c01b954a-c215-4511-812b-1075a0238b2a;
  style c01b954a-c215-4511-812b-1075a0238b2a stroke:#2c3143,stroke-width:4px;
  13["Violin_log_genotype-Genes"];
  12 -->|anndata_out| 13;
  c0bdba4a-d82c-4b8b-a697-f2faf03f5fd0["Output\nViolin_log_genotype-Genes"];
  13 --> c0bdba4a-d82c-4b8b-a697-f2faf03f5fd0;
  style c0bdba4a-d82c-4b8b-a697-f2faf03f5fd0 stroke:#2c3143,stroke-width:4px;
  14["Scanpy filter"];
  12 -->|anndata_out| 14;
  d0a022d5-fae7-4e4f-8747-bc2eebe47ec9["Output\nUMI_Part_Object"];
  14 --> d0a022d5-fae7-4e4f-8747-bc2eebe47ec9;
  style d0a022d5-fae7-4e4f-8747-bc2eebe47ec9 stroke:#2c3143,stroke-width:4px;
  15["UMI_Filtered_Object"];
  14 -->|anndata_out| 15;
  b937d38a-cbb6-4e6f-ae93-5afc178808a0["Output\nUMI_Filtered_Object"];
  15 --> b937d38a-cbb6-4e6f-ae93-5afc178808a0;
  style b937d38a-cbb6-4e6f-ae93-5afc178808a0 stroke:#2c3143,stroke-width:4px;
  16["Violin_log_genotype-UMIs"];
  15 -->|anndata_out| 16;
  44d3fc0c-4a9b-4bc3-845c-2123197e50c8["Output\nViolin_log_genotype-UMIs"];
  16 --> 44d3fc0c-4a9b-4bc3-845c-2123197e50c8;
  style 44d3fc0c-4a9b-4bc3-845c-2123197e50c8 stroke:#2c3143,stroke-width:4px;
  17["Mito_Filtered_Object"];
  15 -->|anndata_out| 17;
  f7b225f7-de7f-4105-845b-7819943ed49f["Output\nMito_Filtered_Object"];
  17 --> f7b225f7-de7f-4105-845b-7819943ed49f;
  style f7b225f7-de7f-4105-845b-7819943ed49f stroke:#2c3143,stroke-width:4px;
  18["Violin_log_genotype-Mito"];
  17 -->|anndata_out| 18;
  70420872-1653-48a8-a401-7cac48c5aa80["Output\nViolin_log_genotype-Mito"];
  18 --> 70420872-1653-48a8-a401-7cac48c5aa80;
  style 70420872-1653-48a8-a401-7cac48c5aa80 stroke:#2c3143,stroke-width:4px;
  19["Cells_Filtered_Object"];
  17 -->|anndata_out| 19;
  310e2395-f7b3-4387-8f62-3b6787a4d62b["Output\nCells_Filtered_Object"];
  19 --> 310e2395-f7b3-4387-8f62-3b6787a4d62b;
  style 310e2395-f7b3-4387-8f62-3b6787a4d62b stroke:#2c3143,stroke-width:4px;
  20["Normalised_Object"];
  19 -->|anndata_out| 20;
  876e2f98-4096-4645-ab28-3f40e181231f["Output\nNormalised_Object"];
  20 --> 876e2f98-4096-4645-ab28-3f40e181231f;
  style 876e2f98-4096-4645-ab28-3f40e181231f stroke:#2c3143,stroke-width:4px;
  21["Logarithmised_Object"];
  20 -->|anndata_out| 21;
  e65e8fc9-e1db-4024-b5b2-18958bd7ec79["Output\nLogarithmised_Object"];
  21 --> e65e8fc9-e1db-4024-b5b2-18958bd7ec79;
  style e65e8fc9-e1db-4024-b5b2-18958bd7ec79 stroke:#2c3143,stroke-width:4px;
  22["Frozen_Object"];
  21 -->|anndata_out| 22;
  34873f95-806d-46ba-a78e-1ad7df07e4ad["Output\nFrozen_Object"];
  22 --> 34873f95-806d-46ba-a78e-1ad7df07e4ad;
  style 34873f95-806d-46ba-a78e-1ad7df07e4ad stroke:#2c3143,stroke-width:4px;
  23["FVG_Object"];
  22 -->|anndata| 23;
  bbd40535-0cb6-41ee-8e7d-c5e20d424d98["Output\nFVG_Object"];
  23 --> bbd40535-0cb6-41ee-8e7d-c5e20d424d98;
  style bbd40535-0cb6-41ee-8e7d-c5e20d424d98 stroke:#2c3143,stroke-width:4px;
  24["Scaled_Object"];
  23 -->|anndata_out| 24;
  a3f0a5ee-7980-4929-906e-d2ac956c4ad0["Output\nScaled_Object"];
  24 --> a3f0a5ee-7980-4929-906e-d2ac956c4ad0;
  style a3f0a5ee-7980-4929-906e-d2ac956c4ad0 stroke:#2c3143,stroke-width:4px;
  25["PCA_Object"];
  24 -->|anndata_out| 25;
  d9b31fc9-1586-4073-8f85-198376be883e["Output\nPCA_Object"];
  25 --> d9b31fc9-1586-4073-8f85-198376be883e;
  style d9b31fc9-1586-4073-8f85-198376be883e stroke:#2c3143,stroke-width:4px;
  26["PCA_Variance_Plot"];
  25 -->|anndata_out| 26;
  132c826c-d8a8-43fb-b96e-7b2a7bb34115["Output\nPCA_Variance_Plot"];
  26 --> 132c826c-d8a8-43fb-b96e-7b2a7bb34115;
  style 132c826c-d8a8-43fb-b96e-7b2a7bb34115 stroke:#2c3143,stroke-width:4px;
  27["Neighbours_Object"];
  25 -->|anndata_out| 27;
  3a187b1a-54d7-41f4-8cfd-81689778228a["Output\nNeighbours_Object"];
  27 --> 3a187b1a-54d7-41f4-8cfd-81689778228a;
  style 3a187b1a-54d7-41f4-8cfd-81689778228a stroke:#2c3143,stroke-width:4px;
  28["tSNE_Object"];
  27 -->|anndata_out| 28;
  afb31ad6-8cdb-4ab5-87dd-1b853b706597["Output\ntSNE_Object"];
  28 --> afb31ad6-8cdb-4ab5-87dd-1b853b706597;
  style afb31ad6-8cdb-4ab5-87dd-1b853b706597 stroke:#2c3143,stroke-width:4px;
  29["UMAP_Object"];
  28 -->|anndata_out| 29;
  93ee06ee-7695-4501-b697-595a64b0d729["Output\nUMAP_Object"];
  29 --> 93ee06ee-7695-4501-b697-595a64b0d729;
  style 93ee06ee-7695-4501-b697-595a64b0d729 stroke:#2c3143,stroke-width:4px;
  30["Clustered_Object"];
  29 -->|anndata_out| 30;
  041a20e7-a420-48ef-ba7f-d0115995058a["Output\nClustered_Object"];
  30 --> 041a20e7-a420-48ef-ba7f-d0115995058a;
  style 041a20e7-a420-48ef-ba7f-d0115995058a stroke:#2c3143,stroke-width:4px;
  31["DEGs-Genotype"];
  30 -->|anndata_out| 31;
  3a6e8af1-1599-4a8f-a9fb-468510616773["Output\nRanked_Genes-by_Genotype"];
  31 --> 3a6e8af1-1599-4a8f-a9fb-468510616773;
  style 3a6e8af1-1599-4a8f-a9fb-468510616773 stroke:#2c3143,stroke-width:4px;
  32["DEGs-Louvain"];
  30 -->|anndata_out| 32;
  991651ef-a086-4bbd-a93b-3091ca145615["Output\nRanked_Genes-Cluster"];
  32 --> 991651ef-a086-4bbd-a93b-3091ca145615;
  style 991651ef-a086-4bbd-a93b-3091ca145615 stroke:#2c3143,stroke-width:4px;
  26a025c8-d494-47c7-961a-4197effa71d7["Output\nanndata_out"];
  32 --> 26a025c8-d494-47c7-961a-4197effa71d7;
  style 26a025c8-d494-47c7-961a-4197effa71d7 stroke:#2c3143,stroke-width:4px;
  33["tSNE_Plot"];
  32 -->|anndata_out| 33;
  961add4e-d033-4a58-ba59-fae876d1bf40["Output\ntSNE_Plot"];
  33 --> 961add4e-d033-4a58-ba59-fae876d1bf40;
  style 961add4e-d033-4a58-ba59-fae876d1bf40 stroke:#2c3143,stroke-width:4px;
  34["PCA_Plot"];
  32 -->|anndata_out| 34;
  fb459c83-eeaa-4443-a5ed-00bee36ba862["Output\nPCA_Plot"];
  34 --> fb459c83-eeaa-4443-a5ed-00bee36ba862;
  style fb459c83-eeaa-4443-a5ed-00bee36ba862 stroke:#2c3143,stroke-width:4px;
  35["UMAP_Plot"];
  32 -->|anndata_out| 35;
  3236394b-01ec-4e3b-858a-8612e89bdc7e["Output\nUMAP_Plot"];
  35 --> 3236394b-01ec-4e3b-858a-8612e89bdc7e;
  style 3236394b-01ec-4e3b-858a-8612e89bdc7e stroke:#2c3143,stroke-width:4px;
  36["Annotated_Object"];
  32 -->|anndata_out| 36;
  0b5b1a3e-f019-4040-8af3-5d2232605ea0["Output\nAnnotated_Object"];
  36 --> 0b5b1a3e-f019-4040-8af3-5d2232605ea0;
  style 0b5b1a3e-f019-4040-8af3-5d2232605ea0 stroke:#2c3143,stroke-width:4px;
  37["Annotated_Plots"];
  36 -->|anndata| 37;
  7ded61ce-8fd6-41c0-bdbe-da367c108694["Output\nAnnotated_Plots"];
  37 --> 7ded61ce-8fd6-41c0-bdbe-da367c108694;
  style 7ded61ce-8fd6-41c0-bdbe-da367c108694 stroke:#2c3143,stroke-width:4px;

Inputs

Input Label
Input dataset Batched_AnnData

Outputs

From Output Label
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.10.2+galaxy2 Scanpy Inspect and manipulate QC_AnnData
toolshed.g2.bx.psu.edu/repos/iuc/anndata_inspect/anndata_inspect/0.10.9+galaxy1 Inspect AnnData
toolshed.g2.bx.psu.edu/repos/iuc/anndata_inspect/anndata_inspect/0.10.9+galaxy1 Inspect AnnData
toolshed.g2.bx.psu.edu/repos/iuc/anndata_inspect/anndata_inspect/0.10.9+galaxy1 Inspect AnnData
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.10.2+galaxy3 Scanpy filter
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot Violin_log_genotype
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot Violin_log_sex
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot Scatter_GenesxUMI
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot Violin_log_batch
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot Scatter_GenesxMito
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot Scatter_UMIxMito
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.10.2+galaxy3 Scanpy filter Genes_Filtered_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot Violin_log_genotype-Genes
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.10.2+galaxy3 Scanpy filter
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.10.2+galaxy3 Scanpy filter UMI_Filtered_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot Violin_log_genotype-UMIs
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.10.2+galaxy3 Scanpy filter Mito_Filtered_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot Violin_log_genotype-Mito
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.10.2+galaxy3 Scanpy filter Cells_Filtered_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_normalize/scanpy_normalize/1.10.2+galaxy0 Scanpy normalize Normalised_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.10.2+galaxy1 Scanpy Inspect and manipulate Logarithmised_Object
toolshed.g2.bx.psu.edu/repos/iuc/anndata_manipulate/anndata_manipulate/0.10.9+galaxy1 Manipulate AnnData Frozen_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.10.2+galaxy3 Scanpy filter FVG_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.10.2+galaxy1 Scanpy Inspect and manipulate Scaled_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_cluster_reduce_dimension/scanpy_cluster_reduce_dimension/1.10.2+galaxy2 Scanpy cluster, embed PCA_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot PCA_Variance_Plot
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.10.2+galaxy1 Scanpy Inspect and manipulate Neighbours_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_cluster_reduce_dimension/scanpy_cluster_reduce_dimension/1.10.2+galaxy2 Scanpy cluster, embed tSNE_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_cluster_reduce_dimension/scanpy_cluster_reduce_dimension/1.10.2+galaxy2 Scanpy cluster, embed UMAP_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_cluster_reduce_dimension/scanpy_cluster_reduce_dimension/1.10.2+galaxy2 Scanpy cluster, embed Clustered_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.10.2+galaxy1 Scanpy Inspect and manipulate DEGs-Genotype
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.10.2+galaxy1 Scanpy Inspect and manipulate DEGs-Louvain
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot tSNE_Plot
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot PCA_Plot
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot UMAP_Plot
toolshed.g2.bx.psu.edu/repos/iuc/anndata_manipulate/anndata_manipulate/0.10.9+galaxy1 Manipulate AnnData Annotated_Object
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 Scanpy plot Annotated_Plots

Tools

Tool Links
toolshed.g2.bx.psu.edu/repos/iuc/anndata_inspect/anndata_inspect/0.10.9+galaxy1 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/anndata_manipulate/anndata_manipulate/0.10.9+galaxy1 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_cluster_reduce_dimension/scanpy_cluster_reduce_dimension/1.10.2+galaxy2 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_filter/scanpy_filter/1.10.2+galaxy3 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.10.2+galaxy1 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_inspect/scanpy_inspect/1.10.2+galaxy2 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_normalize/scanpy_normalize/1.10.2+galaxy0 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/scanpy_plot/scanpy_plot/1.10.2+galaxy2 View in ToolShed

To use these workflows in Galaxy you can either click the links to download the workflows, or you can right-click and copy the link to the workflow which can be used in the Galaxy form to import workflows.

Importing into Galaxy

Below are the instructions for importing these workflows directly into your Galaxy server of choice to start using them!
Hands On: Importing a workflow
  1. Click on galaxy-workflows-activity Workflows in the Galaxy activity bar (on the left side of the screen, or in the top menu bar of older Galaxy instances). You will see a list of all your workflows
  2. Click on galaxy-upload Import at the top-right of the screen
  3. Provide your workflow
    • Option 1: Paste the URL of the workflow into the box labelled “Archived Workflow URL”
    • Option 2: Upload the workflow file in the box labelled “Archived Workflow File”
  4. Click the Import workflow button

Below is a short video demonstrating how to import a workflow from GitHub using this procedure:

Video: Importing a workflow from URL

Version History

Version Commit Time Comments
1 8432f42fe 2025-04-15 09:46:46 Add workflow tests and remove the old workflow

For Admins

Installing the workflow tools

wget https://training.galaxyproject.org/training-material/topics/single-cell/tutorials/scrna-case_basic-pipeline/workflows/Filter-plot-and-explore-single-cell-RNA-seq-data-with-Scanpy.ga -O workflow.ga
workflow-to-tools -w workflow.ga -o tools.yaml
shed-tools install -g GALAXY -a API_KEY -t tools.yaml
workflow-install -g GALAXY -a API_KEY -w workflow.ga --publish-workflows