diff --git a/topics/single-cell/images/scrna_batch_correction/CellType_Seurat.png b/topics/single-cell/images/scrna_batch_correction/CellType_Seurat.png
new file mode 100644
index 00000000000000..6cd549360ad75e
Binary files /dev/null and b/topics/single-cell/images/scrna_batch_correction/CellType_Seurat.png differ
diff --git a/topics/single-cell/images/scrna_batch_correction/UMAP_After_Seurat.png b/topics/single-cell/images/scrna_batch_correction/UMAP_After_Seurat.png
new file mode 100644
index 00000000000000..4faf06449ef80f
Binary files /dev/null and b/topics/single-cell/images/scrna_batch_correction/UMAP_After_Seurat.png differ
diff --git a/topics/single-cell/images/scrna_batch_correction/UMAP_Before_Seurat.png b/topics/single-cell/images/scrna_batch_correction/UMAP_Before_Seurat.png
new file mode 100644
index 00000000000000..7149c83ca9390e
Binary files /dev/null and b/topics/single-cell/images/scrna_batch_correction/UMAP_Before_Seurat.png differ
diff --git a/topics/single-cell/tutorials/scrna_batch_correction/data-library.yaml b/topics/single-cell/tutorials/scrna_batch_correction/data-library.yaml
new file mode 100644
index 00000000000000..8860e421a0061d
--- /dev/null
+++ b/topics/single-cell/tutorials/scrna_batch_correction/data-library.yaml
@@ -0,0 +1,21 @@
+---
+destination:
+ type: library
+ name: GTN - Material
+ description: Galaxy Training Network Material
+ synopsis: Galaxy Training Network Material. See https://training.galaxyproject.org
+items:
+- name: Single Cell
+ description: Training material and practicals for all kinds of single cell analysis
+ (particularly scRNA-seq!). When you generate your lovely gene lists for your cells,
+ consider checking out our Transcriptomics tutorials for further network analysis!
+ items:
+ - name: Batch Correction and Integration with Seurat or Scanpy
+ items:
+ - name: 'DOI: 10.5281/zenodo.7311628'
+ description: latest
+ items:
+ - url: https://zenodo.org/records/14734574/files/Input_SeuratObject.rds
+ src: url
+ ext: rds
+ info: https://doi.org/10.5281/zenodo.14734574
\ No newline at end of file
diff --git a/topics/single-cell/tutorials/scrna_batch_correction/tutorial.bib b/topics/single-cell/tutorials/scrna_batch_correction/tutorial.bib
new file mode 100644
index 00000000000000..06d5218896fd09
--- /dev/null
+++ b/topics/single-cell/tutorials/scrna_batch_correction/tutorial.bib
@@ -0,0 +1,30 @@
+
+# This is the bibliography file for your tutorial.
+#
+# To add bibliography (bibtex) entries here, follow these steps:
+# 1) Find the DOI for the article you want to cite
+# 2) Go to https://doi2bib.org and fill in the DOI
+# 3) Copy the resulting bibtex entry into this file
+#
+# To cite the example below, in your tutorial.md file
+# use {% cite Batut2018 %}
+#
+# If you want to cite an online resourse (website etc)
+# you can use the 'online' format (see below)
+#
+# You can remove the examples below
+
+@article{Ding2020,
+ title = {Systematic comparison of single-cell and single-nucleus RNA-sequencing methods},
+ volume = {38},
+ ISSN = {1546-1696},
+ url = {http://dx.doi.org/10.1038/s41587-020-0465-8},
+ DOI = {10.1038/s41587-020-0465-8},
+ number = {6},
+ journal = {Nature Biotechnology},
+ publisher = {Springer Science and Business Media LLC},
+ author = {Ding, Jiarui and Adiconis, Xian and Simmons, Sean K. and Kowalczyk, Monika S. and Hession, Cynthia C. and Marjanovic, Nemanja D. and Hughes, Travis K. and Wadsworth, Marc H. and Burks, Tyler and Nguyen, Lan T. and Kwon, John Y. H. and Barak, Boaz and Ge, William and Kedaigle, Amanda J. and Carroll, Shaina and Li, Shuqiang and Hacohen, Nir and Rozenblatt-Rosen, Orit and Shalek, Alex K. and Villani, Alexandra-Chloé and Regev, Aviv and Levin, Joshua Z.},
+ year = {2020},
+ month = apr,
+ pages = {737–746}
+}
diff --git a/topics/single-cell/tutorials/scrna_batch_correction/tutorial.md b/topics/single-cell/tutorials/scrna_batch_correction/tutorial.md
new file mode 100644
index 00000000000000..9138c8b29c0bdd
--- /dev/null
+++ b/topics/single-cell/tutorials/scrna_batch_correction/tutorial.md
@@ -0,0 +1,529 @@
+---
+layout: tutorial_hands_on
+
+title: "Batch Correction and Integration with Seurat or Scanpy"
+subtopic: tricks
+priority: 4
+zenodo_link: https://zenodo.org/records/14734574
+answer_histories:
+ - label: "Using Seurat"
+ history: https://singlecell.usegalaxy.eu/u/marisa_jl/h/batch-correction--integration-with-seurat---answer-key
+ date: 2025-01-21
+questions:
+- What is the difference between batch correction and integration?
+- How can we perform batch correction or integration using the Scanpy and Seurat pipelines?
+objectives:
+- Understand what batch correction and integration are and how they are different
+- Know when to perform batch correction or integration on single cell data
+- Perform batch correction or integration using either the Scanpy or Seurat pipelines
+time_estimation: 2H
+key_points:
+- Batch correction can remove some of the technical differences between experimental groups
+- Integration enables us to combine different datasets
+- Both the Scanpy and Seurat pipelines include tools that can be used for batch correction or integration
+requirements:
+-
+ type: "internal"
+ topic_name: single-cell
+ tutorials:
+ - scrna-scanpy-pbmc3k
+ - scrna-seurat-pbmc3k
+tags:
+- singlecell
+contributors:
+- MarisaJL
+- dianichj
+
+---
+
+
+# Introduction
+
+Single cell analyses can be complex. We might have data from different experimental batches, perhaps because we ran our experiments at different times, in different labs, or using different sequencing platforms. Sometimes we might want to combine multiple datasets, for example if we want to compare our own experimental data to a similar public dataset.
+
+If we simply run these different batches or combined datasets through a clustering pipeline such as Scanpy or Seurat, we might not get useful results. Clustering prioritises the genes that show the biggest differences in expression and uses these to identify groups of cells that share similar expression patterns. When we have different experimental batches or have combined multiple studies, these big differences might relate more to the differences between batches or datasets than to the biological differences we're interested in, such as cell type. Our clusters could therefore end up representing different batches or datasets, rather than anything more useful.
+
+In order to look beyond these technical differences, we can perform batch correction or integration. Both the Scanpy and Seurat pipelines include tools that can be used to correct for differences between experimental batches or to integrate datasets - we actually use the same tools to do both. In this tutorial, we will learn how to use these tools in either the Scanpy or Seurat pipeline - you can choose which one you would like to use.
+
+>
+>
+> This tutorial is based on the [Introduction to scRNE-seq integration](https://satijalab.org/seurat/articles/integration_introduction) and [Integrative analysis in Seurat v5](https://satijalab.org/seurat/articles/seurat5_integration) tutorials.
+>
+{: .comment}
+
+
+>
+>
+> In this tutorial, we will cover:
+>
+> 1. TOC
+> {:toc}
+>
+{: .agenda}
+
+# Important tips for easier analysis
+
+{% snippet topics/single-cell/faqs/single_cell_omics.md %}
+
+{% snippet faqs/galaxy/tutorial_mode.md %}
+
+{% snippet faqs/galaxy/analysis_troubleshooting.md sc=true %}
+
+# Scanpy or Seurat?
+
+Scanpy and Seurat are two of the most commonly used pipelines (sets of tools) for analysing single cell data. Both pipelines have all the tools required to perform clustering, which identifies groups of cells that share similar expression profiles. Clustering is often the first step in single cell analysis because it makes our data easier to interpret. Clusters represent groups of cells that are expressing the same genes, which often correspond to specific cell types or states. Our goal is to identify biologically relevant clusters that will help us to better understand our data.
+
+The Scanpy and Seurat pipelines include tools for preprocessing single cell data, performing dimensional reductions such as PCA, constructing a neighbourhood graph and finding clusters in it. Although both pipelines perform the same basic steps, there are some differences in how these steps are performed that mean you can end up with slightly different results depending on which pipeline you choose. However, your results should be broadly the same, no matter which pipeline you use.
+
+The main difference between these two pipelines is that Scanpy is written for Python while Seurat is written for R. If we were working in a Python or R environment, then we would need to choose the appropriate pipeline. However, since we're working on Galaxy, we're free to choose either set of tools.
+
+## Get data
+
+{% include _includes/cyoa-choices.html option1="Scanpy" option2="Seurat" default="Scanpy" text="Choose the single cell pipeline you want to use." %}
+
+
+
+SCANPY GET DATA
+
+
+
+
+
+> Data Upload
+>
+> 1. Create a new history for this tutorial
+>
+> 2. Import the files from [Zenodo]({{ page.zenodo_link }})
+>
+> ```
+> https://zenodo.org/records/14734574/files/Input_SeuratObject.rds
+> ```
+>
+> {% snippet faqs/galaxy/datasets_import_via_link.md %}
+>
+> {% snippet faqs/galaxy/datasets_import_from_data_library.md %}
+>
+> 3. Check that the datatype is `rds`
+>
+> {% snippet faqs/galaxy/datasets_change_datatype.md datatype="datatypes" %}
+>
+{: .hands_on}
+
+
+
+You should now have either an AnnData or SeuratObject dataset in your history. Both datasets contain the same information, but in the different formats required by the Scanpy and Seurat pipelines.
+
+We are using a single cell dataset of human Peripheral Blood Mononuclear Cells (PBMCs) that was also used in Seurat's [Integrative analysis in Seurat v5](https://satijalab.org/seurat/articles/seurat5_integration) tutorial. The original study compared the results from seven different single cell and single nuclear techniques {% cite Ding2020 %}.
+
+Let's take a look at our data before we begin the analysis to see whether we might need to perform batch correction or integration.
+
+
+
+SCANPY INSPECT
+
+
+
+
+
+> Task description
+>
+> 1. {% tool [Seurat Data Management](toolshed.g2.bx.psu.edu/repos/iuc/seurat_data/seurat_data/5.0+galaxy0) %} with the following parameters:
+> - *"Method used"*: `Inspect Seurat Object`
+> - *"Display information about"*: `General`
+>
+{: .hands_on}
+
+>
+>
+> 1. How many cells and genes are in this dataset?
+> 2. How many layers are in this dataset?
+>
+> >
+> >
+> > 1. If we click on the {% icon galaxy-eye %} of the new output in our history, we can see that this dataset contains information about the expression of 33,694 features (genes) in 10,434 samples (cells).
+> > 2. Data in SeuratObjects are stored in layers. In this case, we only have one layer called `counts`. The `counts` layer is the raw data that we'll be using in this tutorial.
+> >
+> {: .solution}
+>
+{: .question}
+
+> Task description
+>
+> 1. {% tool [Seurat Data Management](toolshed.g2.bx.psu.edu/repos/iuc/seurat_data/seurat_data/5.0+galaxy0) %} with the following parameters:
+> - *"Method used"*: `Inspect Seurat Object`
+> - *"Display information about"*: `Cell Metadata`
+>
+{: .hands_on}
+
+
+
+>
+>
+> 1. What does the `Method` column represent in the cell metadata?
+> 2. Do you think batch correction or integration is needed for this analysis?
+>
+> >
+> >
+> > 1. The dataset that we're using comes from a study that compared different single cell techniques. The `Method` column tells us which technique was used on each cell.
+> > 2. Each experimental technique can be considered as its own experimental batch. Each of these batches was processed independently, which by itself can be enough to require batch correction, even if the same experimental protocol is used - batches can vary simply because they were processed at different times or by different people in the same lab! In this case, we have an even stronger reason to believe that these batches will differ - we know that each batch was produced using a different technique, so it seems likely that we'll need to perform batch correction. We would consider this to be batch correction rather than integration because these data all came from the same original study.
+> >
+> {: .solution}
+>
+{: .question}
+
+>
+>
+> The cell metadata is any information about the cells that the original authors have included in the SeuratObject. As well as the cell barcode or identifier for each individual cell, the metadata will usually include information such as which donor or sample the cell came from or which experimental group it was in. Sometimes, this metadata will include lots of useful details such as demographic information about human donors that can help us to better understand our results.
+{: .comment}
+
+# Batch Correction and Integration
+
+We will often need to perform batch correction or integration during single cell analyses. If we are working with different experimental batches, donors, conditions, or datasets, then we need to look beyond the technical differences between them. Batch correction or integration can do this by matching cells of similar types of states across batches or datasets. Effectively, we are looking for cell subpopulations that are shared across the groups.
+
+Scanpy and Seurat's integration tools will create a dimensional reduction that captures the shared sources of variation across the batches or datasets. The dimensional reduction can be used to find clusters or produce visualisations such as UMAP.
+
+The terms batch correction and integration can be used somewhat interchangably, because they both refer to the same process of looking for shared cell subpopulations across groups. The same tools are used in the same way for both procedures, so you could use the workflow described in this tutorial to perform integration as well as batch correction.
+
+The only difference is that we tend to talk about batch correction when we are working with groups produced in a single study (e.g. different experimental batches), while we would say integration when we're combining separate datasets from multiple studies.
+
+# Clustering without Batch Correction
+
+We suspect that batch correction will be needed because of the different technologies used to construct this dataset, but we'll try clustering without any correction first. This will confirm whether batch correction is truly needed on the basis of `Method`. Comparing the results we get now with those we'll get after batch correction should also help us to understand what batch correction is doing to our single cell data.
+
+Since our focus is batch correction/integration, we won't go into too much detail on the clustering process. We just want to see how the integration steps fit into the main clustering pipeline and understand the impact it has on our data. If you aren't already familiar with this process, then you can learn more about clustering using the [Scanpy]({% link topics/single-cell/tutorials/scrna-scanpy-pbmc3k/tutorial.html %}) or [Seurat]({% link topics/single-cell/tutorials/scrna-seurat-pbmc3k/tutorial.html %}) pipelines from the other single cell tutorials available on the GTN.
+
+
+
+SCANPY CLUSTERING
+
+
+
+
+
+In the Seurat pipeline, we can use the ability of the SeuratObject to store multiple layers to split our data up before we begin the analysis. We might do this when we have different batches or if we've combined datasets.
+
+Splitting our data into layers means that the Seurat preprocessing tools can work on each layer separately. Each layer (in this case, each of our batches) will be normalised independently. We'll also identify the highly variable genes within each batch, rather than across the whole dataset. Seurat will then create a single consensus list of highly variable genes to use for the whole dataset.
+
+The other tools in the Seurat pipeline, such as `RunPCA` and `FindClusters` will still work on the entire dataset.
+
+Splitting the batches into separate layers could help to address some of the technical differences between them because of the separate preprocessing, but we'll have to wait for the results to see if this has been enough to eliminate these differences.
+
+If you want to understand the impact of splitting and preprocessing the batches separately, then you could skip ahead to the next section, **Clustering with Seurat** and compare your results to those shown in this tutorial.
+
+> Task description
+>
+> 1. {% tool [Seurat Integrate](toolshed.g2.bx.psu.edu/repos/iuc/seurat_integrate/seurat_integrate/5.0+galaxy0) %} with the following parameters:
+> - *"Method used"*: `Split data into layers using 'split'`
+> - *"Factor or group to use to split data"*: `Method`
+>
+> >
+> >
+> > We are splitting our data on `Method` as this is the column in our metadata that represents our batches. Each of the methods listed in this column will be split into its own layer.
+> {: .comment}
+>
+{: .hands_on}
+
+Let's take a look to see what we've done to our data.
+
+> Task description
+>
+> 2. {% tool [Seurat Data Management](toolshed.g2.bx.psu.edu/repos/iuc/seurat_data/seurat_data/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Integrate** {% icon tool %})
+> - *"Method used"*: `Inspect Seurat Object`
+> - *"Display information about"*: `General`
+>
+{: .hands_on}
+
+>
+>
+> 1. How many layers do we now have in our dataset?
+> 2. What do these layers represent?
+>
+> >
+> >
+> > 1. We can see that there are now 9 layers in our SeuratObject.
+> > 2. We started out with one layer of raw data, called `counts`. That layer has now been split up according to `Method`. We now have nine `counts` layers. Each layer represents one of the batches named in the `Method` column of the cell metadata. We can see the names of the methods in the layer names. For example, the counts.Drop-seq layer contains the raw counts produced using the Drop-seq technique. Seven different methods were used in this study, but one of them was applied to three different batches - you should be able to see three layers with `Chromium_v2` in thier names.
+> >
+> {: .solution}
+>
+{: .question}
+
+Now that we have split our data so that each batch is in its own layer, we will cluster it. We won't perform any batch correction, so we'll see if the differences in `Method` are causing any problems that might require correction.
+
+We'll follow the default Seurat pipeline here, except that we'll use `30` PCs to build the neighborhood graph and cluster with a resolution of `2` as these were the parameters used in [the original Seurat version of this tutorial](https://satijalab.org/seurat/articles/seurat5_integration). We'll also give our clusters and UMAP more recognisable names as we'll be running these tools again later, after batch correction.
+
+>
+> Seurat has another option for preprocessing - rather than use the three separate functions presented below, you can use a single function called `SCTransform` to preform normalisation, identification of variable genes, and scaling all in one go. You will find this option on Galaxy's {% tool Seurat Preprocessing} tool.
+>
+> If you use `SCTransform` for preprocessing then you'll need to click the button to choose `Yes` for `Use SCT as Normalization Method` when you run `IntegrateLayers`. The `SCTransform` normalises the data in its own way, so we just need to let the tool know what to expect!
+>
+> The next step after identifying clusters would usually be to look for marker genes that are differentially expressed between clusters. If you perform integration/batch correction after using `SCTransform` then you will need to run the `PrepSCTFindMarkers` function before using tools such as `FindMarkers`. You'll find this in the {% tool Seurat Integrate %} tool.
+>
+> The rest of the workflow will be the same as shown in this tutorial, but you will end up with different results because `SCTransform` handles preprocessing in a slightly different way than the three separate tools. If you want to learn more about these differences then you can choose the SCTransform route in the [Clustering 3k PBMCs with Seurat]({% link topics/single-cell/tutorials/scrna-seurat-pbmc3k/tutorial.html %}) tutorial.
+{: .comment}
+
+> Task description
+>
+> 1. {% tool [Seurat Preprocessing](toolshed.g2.bx.psu.edu/repos/iuc/seurat_preprocessing/seurat_preprocessing/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Integrate** {% icon tool %})
+> - *"Method used"*: `Normalize with 'NormalizeData'`
+> - *"Method for normalization"*: `LogNormalize`
+>
+> 2. {% tool [Seurat Preprocessing](toolshed.g2.bx.psu.edu/repos/iuc/seurat_preprocessing/seurat_preprocessing/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Preprocessing** {% icon tool %})
+> - *"Method used"*: `Identify highly variable genes with 'FindVariableFeatures'`
+> - *"Method to select variable features"*: `vst`
+> - *"Output list of most variable features"*: `No`
+>
+> 3. {% tool [Seurat Preprocessing](toolshed.g2.bx.psu.edu/repos/iuc/seurat_preprocessing/seurat_preprocessing/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Preprocessing** {% icon tool %})
+> - *"Method used"*: `Scale and regress with 'ScaleData'`
+> - *"Regress out a variable"*: `No`
+> - *"Features to scale"*: `Variable Features`
+>
+> 4. {% tool [Seurat Run Dimensional Reduction](toolshed.g2.bx.psu.edu/repos/iuc/seurat_reduce_dimension/seurat_reduce_dimension/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Preprocessing** {% icon tool %})
+> - *"Method used"*: `Run a PCA dimensionality reduction using 'RunPCA'`
+>
+> > short description
+> >
+> > We will use the output from `RunPCA` in the following section when we perform batch correction.
+> >
+> > If you're already very familiar with the Seurat clustering pipeline and you just want to try using the {% tool Seurat Integrate %} tools, then you can skip ahead to the **Clustering after Integration** step now.
+> {: .comment}
+>
+> 5. {% tool [Seurat Find Clusters](toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Run Dimensional Reduction** {% icon tool %})
+> - *"Method used"*: `Compute nearest neighbors with 'FindNeighbors'`
+> - *"Number of dimensions from reduction to use as input"*: `30`
+>
+> 6. {% tool [Seurat Find Clusters](toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Find Clusters** {% icon tool %})
+> - *"Method used"*: `Identify cell clusters with 'FindClusters'`
+> - *"Resolution"*: `2.0`
+> - *"Algorithm for modularity optimization"*: `1. Original Louvain`
+> - *"Name for output clusters"*: `unintegrated_clusters`
+>
+> > short description
+> >
+> > Make sure that you change the default name for the clusters to `unintegrated_clusters`!
+> {: .comment}
+>
+> 1. {% tool [Seurat Run Dimensional Reduction](toolshed.g2.bx.psu.edu/repos/iuc/seurat_reduce_dimension/seurat_reduce_dimension/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Find Clusters** {% icon tool %})
+> - *"Method used"*: `Run a UMAP dimensional reduction using 'RunUMAP'`
+> - *"UMAP implementation to run"*: `uwot`
+> - *"Run UMAP on dimensions, features, graph or KNN output"*: `dims`
+> - *"Number of dimensions from reduction to use as input"*: `30`
+> - In *"Advanced Options"*:
+> - *"Name for dimensional reduction"*: `umap.unintegrated`
+>
+> > short description
+> >
+> > Make sure that you change the default name for the UMAP results to `umap.unintegrated`!
+> {: .comment}
+>
+{: .hands_on}
+
+Now let's take a look at our results. We'll first plot a UMAP showing the clusters we've just identified and then colour this plot in by `Method` to see if that might be influencing our results.
+
+> Task description
+>
+> 1. {% tool [Seurat Visualize](toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Run Dimensional Reduction** {% icon tool %})
+> - *"Method used"*: `Visualize Dimensional Reduction with 'DimPlot'`
+> - *"Name of reduction to use"*: `umap.unintegrated`
+>
+> 2. {% tool [Seurat Visualize](toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Run Dimensional Reduction** {% icon tool %})
+> - *"Method used"*: `Visualize Dimensional Reduction with 'DimPlot'`
+> - *"Name of reduction to use"*: `umap.unintegrated`
+> - In *"Advanced Options"*:
+> - *"Factor to group cells by"*: `Method`
+>
+{: .hands_on}
+
+
+
+>
+>
+> 1. How many clusters did we identify?
+> 2. Are the batches well mixed?
+>
+> >
+> >
+> > 1. The first plot is coloured by cluster. We can see there are 48 clusters (Seurat numbers the clusters starting from 0). That's a lot - this is partly because we used a relatively high clustering resolution, but these fragmented clusters could also be a sign that something has gone wrong with our analysis.
+> > 2. The second plot shows the UMAP coloured by `Method`. Each colour here represents cells that were sequenced by a different experimental technique. We can see lots of clusters and patches of cells that are only made up of one colour - this suggests that our cells are grouping together by batch rather than a biologically relevant characteristic such as cell type. This is a problem as it means we're not learning anything new about our cells since we already knew which batches they were in! If we want to find out something more interesting, we'll need to get rid of the technical differences between the batches.
+> >
+> {: .solution}
+>
+{: .question}
+
+
+
+# Clustering with Batch Correction
+
+It looks like we do need to perform batch correction on our dataset. The Scanpy and Seurat pipelines both provide tools that can reduce the technical differences between batches. If we were combining multiple datasets, we could use the same tools in the same way to perform integration (i.e. to correct for technical differences between the datasets).
+
+
+
+SCANPY CLUSTERING with INTEGRATION
+
+
+
+
+
+We will now run Seurat's batch correction tool - it's called `IntegrateLayers`, but despite the name we can use the same tool to address differences between batches as we would for integrating datasets.
+
+> short description
+>
+> {% tool Seurat Integrate %} provides several integration methods, which all perform the integration or batch correction in their own way. You might want to experiment by using one of the other methods to see how it affects the results. When you are working on your own data, it can be a good idea to try a few different integration methods to see which one produces the best results. The best integration or batch correction would be the one that eliminates the most of the technical differences between datasets or batches while producing biologically meaningful results. If we end up with completely unexpected results rather than clusters that match up well with known cell types, then we know that something has gone wrong!
+{: .comment}
+
+> Task description
+>
+> 1. {% tool [Seurat Integrate](toolshed.g2.bx.psu.edu/repos/iuc/seurat_integrate/seurat_integrate/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Run Dimensional Reduction** {% icon tool %})
+> - *"Method used"*: `Apply integration methods with 'IntegrateLayers'`
+> - *"Integration method to use"*: `CCA Integration`
+> - *"Name for new dimensional reduction"*: `integrated.cca`
+>
+> > short description
+> >
+> > Make sure you remember the name you've used for the new dimensional reduction - we'll be using this later instead of the PCA we produced previously.
+> {: .comment}
+>
+{: .hands_on}
+
+It's good practice to rejoin our layers now, so that those separate layers or batches will end up back in the same layer. We don't actually need to do this now as it won't affect the clustering results, but it is important if we want to perform downstream analyses such as Differential Expression analysis.
+
+> Task description
+>
+> 1. {% tool [Seurat Integrate](toolshed.g2.bx.psu.edu/repos/iuc/seurat_integrate/seurat_integrate/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Integrate** {% icon tool %})
+> - *"Method used"*: `Join layers with 'JoinLayers'`
+>
+{: .hands_on}
+
+>
+>
+> 1. How many layers are now in our dataset?
+>
+> >
+> >
+> > 1. You might think that we should only have one layer in our dataset now, because we split it into nine layers that we have now rejoined. However, if you use {% tool Seurat Data Management %} to check, you'll see that we actually have three layers now! This is because the procesessing functions we ran (normalisation and scaling) created their own layers of data. We still have the original raw `counts` layer, but we now have a normalised layer called `data` and a scaled one called `scale.data` as well.
+> >
+> > In fact, if you run {% tool Seurat Data Management %} on the previous dataset in your history, from before we rejoined the layers, you'll see that it actually had 19 layers in it - each of the nine `counts` layers we split the dataset was normalised into its own `data` layer. We then had the `scale.data` layer too.
+> >
+> {: .solution}
+>
+{: .question}
+
+Now let's try clustering our integrated data. We'll repeat the steps we performed earlier, but this time we'll be using the dimensional reduction produced by `Integrate Layers` instead of the PCA. Let's also give our clusters and UMAP results some new names to differentiate them from the uncorrected results.
+
+> Task description
+>
+> 1. {% tool [Seurat Find Clusters](toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Integrate** {% icon tool %})
+> - *"Method used"*: `Compute nearest neighbors with 'FindNeighbors'`
+> - *"Name of reduction to use"*: `integrated.cca`
+> - *"Number of dimensions from reduction to use as input"*: `30`
+>
+> > short description
+> >
+> > Make sure to use `integrate.cca` as the reduction, not the `pca` we made previously.
+> {: .comment}
+>
+> 1. {% tool [Seurat Find Clusters](toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Find Clusters** {% icon tool %})
+> - *"Method used"*: `Identify cell clusters with 'FindClusters'`
+> - *"Resolution"*: `2.0`
+> - *"Algorithm for modularity optimization"*: `1. Original Louvain`
+> - *"Name for output clusters"*: `cca_clusters`
+>
+> > short description
+> >
+> > Make sure that you know what name you used for your clusters as we'll use this for the UMAP!
+> {: .comment}
+>
+> 1. {% tool [Seurat Run Dimensional Reduction](toolshed.g2.bx.psu.edu/repos/iuc/seurat_reduce_dimension/seurat_reduce_dimension/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Find Clusters** {% icon tool %})
+> - *"Method used"*: `Run a UMAP dimensional reduction using 'RunUMAP'`
+> - *"Name of reduction to use"*: `integrated.cca`
+> - *"UMAP implementation to run"*: `uwot`
+> - *"Run UMAP on dimensions, features, graph or KNN output"*: `dims`
+> - *"Number of dimensions from reduction to use as input"*: `30`
+> - In *"Advanced Options"*:
+> - *"Name for dimensional reduction"*: `umap.cca`
+>
+> > short description
+> >
+> > Make sure that you know what name you used for your UMAP results as we'll use this for the plots!
+> {: .comment}
+>
+{: .hands_on}
+
+Let's see how the batch correction has changed our results. As before, we'll make one plot coloured by cluster and then another coloured by batch (`Method`). We're hoping that the batches in that second plot will be more mixed together instead of forming separate groups like they did before batch correction.
+
+> Task description
+>
+> 1. {% tool [Seurat Visualize](toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Run Dimensional Reduction** {% icon tool %})
+> - *"Method used"*: `Visualize Dimensional Reduction with 'DimPlot'`
+> - *"Name of reduction to use"*: `umap.cca`
+>
+> 2. {% tool [Seurat Visualize](toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0) %} with the following parameters:
+> - {% icon param-file %} *"Input file with the Seurat object"*: `rds_out` (output of **Seurat Run Dimensional Reduction** {% icon tool %})
+> - *"Method used"*: `Visualize Dimensional Reduction with 'DimPlot'`
+> - *"Name of reduction to use"*: `umap.cca`
+> - In *"Advanced Options"*:
+> - *"Factor to group cells by"*: `Method`
+>
+{: .hands_on}
+
+
+
+>
+>
+> 1. How many clusters did we identify?
+> 2. How well mixed are the batches?
+>
+> >
+> >
+> > 1. The first plot shows 25 clusters (remember that Seurat starts from cluster 0!). Although the high resolution means we still have plenty of clusters, the batch correction has reduced the number. The clusters also look less fragmented than they did before.
+> > 2. When we colour in the plot by `Method` we can see that all the colours are mixed together across all of the clusters. We don't have any clusters that are all one colour and there aren't any big patches of colour. The batch correction has successfully removed the differences between the batches so that they're no longer dominating the results.
+> >
+> {: .solution}
+>
+{: .question}
+
+
+
+# Comparing the Results
+
+Before vs after batch correction
+Side by side pictures...
+Discuss what batch correction has done to the data
+
+
+
+>
+>
+> We've seen from our plots that the batch correction has mixed the different methods together, but this alone isn't enough to convince us that the batch correction has been successful. As always with single cell analysis, we also want to confirm that the clusters we've found are biologically meaningful. The Scanpy and Seurat pipelines will always present us with clusters, but it is up to us to make sure these results make sense!
+>
+> In order to do this, we would usually take a closer look at the clusters to work out what they represent, for example by looking for clusters expressing genes that are known to be present in specific cell types. Luckily, we don't need to do this right now, because we have the annotations provided by the researchers who created this dataset.
+>
+>If you look back at the cell metadata table we created at the beginning of this tutorial, you'll see there is an annotation called `CellType`. We can colour in our UMAPs using this annotation instead of the `Method`. If our clusters make biological cell sense, we should see that these cell types are clumped together because cells of the same type should be close to each other.
+>
+> If the cell types are all blended together across the entire UMAP (as with our `Method` plot) then this would be a sign that something has gone wrong. When we are performing batch correction or integration, there is a risk that we could over-integrate the data, eliminating the biological differences we're interested in alongside the technical differences we wanted to remove.
+>
+> The `CellType` annotation won't match up exactly with our clusters (remember we used a high resolution to make lots of clusters!) but they certainly shouldn't be scattered across the whole plot!
+{: .comment}
+
+# Conclusion
+
+{% icon congratulations %} Well done, you've successfully used Seurat to prepare and cluster single cell data. You might want to check your results against the example histories for the [Scanpy](add link here) or [Seurat](https://singlecell.usegalaxy.eu/u/marisa_jl/h/batch-correction--integration-with-seurat---answer-key) pipelines. You can also take a look at the whole workflow for [Scanpy](add link here) or [Seurat](https://singlecell.usegalaxy.eu/u/marisa_jl/w/batch-correction---seurat).
+
+In this tutorial, we've learned how to perform batch correction or integration when analysing single cell data with either the Scanpy or Seurat pipelines. If you want to learn more about these pipelines then you might want to try analysing a slightly trickier dataset in the [Scanpy]({% link topics/single-cell/tutorials/scrna-case_basic-pipeline/tutorial.md %}) or [Seurat]({% link topics/single-cell/tutorials/scrna-case_FilterPlotandExplore_SeuratTools/tutorial.md %}) case study tutorials.
+
+This tutorial is part of the https://singlecell.usegalaxy.eu portal ({% cite tekman2020single %}).
\ No newline at end of file
diff --git a/topics/single-cell/tutorials/scrna_batch_correction/workflows/index.md b/topics/single-cell/tutorials/scrna_batch_correction/workflows/index.md
new file mode 100644
index 00000000000000..e092e0ae66ddd4
--- /dev/null
+++ b/topics/single-cell/tutorials/scrna_batch_correction/workflows/index.md
@@ -0,0 +1,3 @@
+---
+layout: workflow-list
+---
diff --git a/topics/single-cell/tutorials/scrna_batch_correction/workflows/workflow_Seurat-test.yml b/topics/single-cell/tutorials/scrna_batch_correction/workflows/workflow_Seurat-test.yml
new file mode 100644
index 00000000000000..a156fe5a3402d0
--- /dev/null
+++ b/topics/single-cell/tutorials/scrna_batch_correction/workflows/workflow_Seurat-test.yml
@@ -0,0 +1,20 @@
+---
+- doc: Test sample data for the workflow
+ job:
+ Input_SeuratObject:
+ class: File
+ location: https://zenodo.org/records/14734574/files/Input_SeuratObject.rds
+ filetype: rds
+ outputs:
+ Inspect_before_Split: https://zenodo.org/records/14734574/files/Inspect_before_Split.txt
+ location:
+ compare: diff
+ Inspect_after_Split:
+ location: https://zenodo.org/records/14734574/files/Inspect_after_Split.txt
+ compare: diff
+ UMAP_before_Split:
+ location: https://zenodo.org/records/14734574/files/UMAP_Before.png
+ compare: diff
+ UMAP_after_Split:
+ location: https://zenodo.org/records/14734574/files/UMAP_After.png
+ compare: diff
\ No newline at end of file
diff --git a/topics/single-cell/tutorials/scrna_batch_correction/workflows/workflow_Seurat.ga b/topics/single-cell/tutorials/scrna_batch_correction/workflows/workflow_Seurat.ga
new file mode 100644
index 00000000000000..73c623caf49793
--- /dev/null
+++ b/topics/single-cell/tutorials/scrna_batch_correction/workflows/workflow_Seurat.ga
@@ -0,0 +1,952 @@
+{
+ "a_galaxy_workflow": "true",
+ "annotation": "This is the workflow for the Batch Correction and Integration tutorial if you use Seurat.",
+ "comments": [
+ {
+ "child_steps": [
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "color": "red",
+ "data": {
+ "title": "Inspect & Split Data"
+ },
+ "id": 0,
+ "position": [
+ 270.2437908505457,
+ 0.0
+ ],
+ "size": [
+ 330.8,
+ 848.2
+ ],
+ "type": "frame"
+ },
+ {
+ "child_steps": [
+ 5,
+ 6,
+ 7,
+ 8
+ ],
+ "color": "orange",
+ "data": {
+ "title": "Preprocessing & Dimensional Reduction"
+ },
+ "id": 1,
+ "position": [
+ 681.7437908505457,
+ 360.2
+ ],
+ "size": [
+ 1073.5,
+ 341.1
+ ],
+ "type": "frame"
+ },
+ {
+ "child_steps": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13
+ ],
+ "color": "yellow",
+ "data": {
+ "title": "Cluster before Batch Correction"
+ },
+ "id": 2,
+ "position": [
+ 1817.3437908505457,
+ 149.29999999999998
+ ],
+ "size": [
+ 1045,
+ 528
+ ],
+ "type": "frame"
+ },
+ {
+ "child_steps": [
+ 14,
+ 15
+ ],
+ "color": "lime",
+ "data": {
+ "title": "Integration/Batch Correction"
+ },
+ "id": 3,
+ "position": [
+ 2908.2437908505453,
+ 687.4000000000001
+ ],
+ "size": [
+ 510.6,
+ 294.7
+ ],
+ "type": "frame"
+ },
+ {
+ "child_steps": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20
+ ],
+ "color": "blue",
+ "data": {
+ "title": "Cluster after Batch Correction"
+ },
+ "id": 4,
+ "position": [
+ 3511.2437908505453,
+ 531.5999999999999
+ ],
+ "size": [
+ 1082,
+ 532.9
+ ],
+ "type": "frame"
+ }
+ ],
+ "creator": [
+ {
+ "class": "Person",
+ "identifier": "0000-0001-6979-6930",
+ "name": "Marisa Loach"
+ }
+ ],
+ "format-version": "0.1",
+ "license": "CC-BY-4.0",
+ "name": "Batch Correction - Seurat",
+ "report": {
+ "markdown": "\n# Workflow Execution Report\n\n## Workflow Inputs\n```galaxy\ninvocation_inputs()\n```\n\n## Workflow Outputs\n```galaxy\ninvocation_outputs()\n```\n\n## Workflow\n```galaxy\nworkflow_display()\n```\n"
+ },
+ "steps": {
+ "0": {
+ "annotation": "A SeuratObject of human PBMCs profiled with seven different single cell technologies.",
+ "content_id": null,
+ "errors": null,
+ "id": 0,
+ "input_connections": {},
+ "inputs": [
+ {
+ "description": "A SeuratObject of human PBMCs profiled with seven different single cell technologies.",
+ "name": "Input_SeuratObject"
+ }
+ ],
+ "label": "Input_SeuratObject",
+ "name": "Input_SeuratObject",
+ "outputs": [],
+ "position": {
+ "left": 0.0,
+ "top": 227.78310181531384
+ },
+ "tool_id": null,
+ "tool_state": "{\"name\": \"Input_SeuratObject\"}",
+ "tool_version": null,
+ "type": "data_input",
+ "uuid": "65e83607-3fe5-4f97-92ce-a5051bde0040",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "1": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_data/seurat_data/5.0+galaxy0",
+ "errors": null,
+ "id": 1,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 0,
+ "output_name": "output"
+ }
+ },
+ "inputs": [],
+ "label": "Inspect before Split",
+ "name": "Seurat Data Management",
+ "outputs": [
+ {
+ "name": "inspect_general",
+ "type": "txt"
+ }
+ ],
+ "position": {
+ "left": 332.62013737533965,
+ "top": 62.75244811096637
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_data/seurat_data/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "4ec52a83ec82",
+ "name": "seurat_data",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"Inspect\", \"__current_case__\": 0, \"inspect\": {\"inspect\": \"General\", \"__current_case__\": 0}}, \"seurat_rds\": null, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "72b75f77-58d0-455b-9bb3-bfb662d241f8",
+ "when": null,
+ "workflow_outputs": [
+ {"output_name": "inspect_general", "label": "Inspect_before_Split"}
+ ]
+ },
+ "2": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_data/seurat_data/5.0+galaxy0",
+ "errors": null,
+ "id": 2,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 0,
+ "output_name": "output"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Data Management",
+ "outputs": [
+ {
+ "name": "inspect_tabular",
+ "type": "tabular"
+ }
+ ],
+ "position": {
+ "left": 329.02494648110076,
+ "top": 236.67873552904877
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_data/seurat_data/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "4ec52a83ec82",
+ "name": "seurat_data",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"Inspect\", \"__current_case__\": 0, \"inspect\": {\"inspect\": \"Metadata\", \"__current_case__\": 4, \"view_metadata\": \"\"}}, \"seurat_rds\": null, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "e54b158d-36d4-488e-ae41-6426725c2b98",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "3": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_integrate/seurat_integrate/5.0+galaxy0",
+ "errors": null,
+ "id": 3,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 0,
+ "output_name": "output"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Integrate",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 339.81035459406127,
+ "top": 450.1507239408315
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_integrate/seurat_integrate/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "74fa68f4e579",
+ "name": "seurat_integrate",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"SplitLayers\", \"__current_case__\": 0, \"assay\": \"RNA\", \"factor\": \"Method\"}, \"seurat_rds\": null, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "cd652f3f-9419-431c-8f55-ed5b22396a2f",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "4": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_data/seurat_data/5.0+galaxy0",
+ "errors": null,
+ "id": 4,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 3,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": "Inspect after Split",
+ "name": "Seurat Data Management",
+ "outputs": [
+ {
+ "name": "inspect_general",
+ "type": "txt"
+ }
+ ],
+ "position": {
+ "left": 340.90523718214934,
+ "top": 651.6687766856601
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_data/seurat_data/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "4ec52a83ec82",
+ "name": "seurat_data",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"Inspect\", \"__current_case__\": 0, \"inspect\": {\"inspect\": \"General\", \"__current_case__\": 0}}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "0cd62757-6be3-45b4-a2c6-e43a1392c0ca",
+ "when": null,
+ "workflow_outputs": [
+ {"output_name": "inspect_general", "label": "Inspect_after_Split"}
+ ]
+ },
+ "5": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_preprocessing/seurat_preprocessing/5.0+galaxy0",
+ "errors": null,
+ "id": 5,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 3,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Preprocessing",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 706.9753548916301,
+ "top": 441.6374481670319
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_preprocessing/seurat_preprocessing/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "6bccf5f85f92",
+ "name": "seurat_preprocessing",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"NormalizeData\", \"__current_case__\": 0, \"assay\": \"\", \"normalization_method\": {\"normalization_method\": \"LogNormalize\", \"__current_case__\": 0}, \"scale_factor\": \"10000\", \"block_size\": null}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "04e1ddd3-64a2-4bdd-9957-2d159cc7fe24",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "6": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_preprocessing/seurat_preprocessing/5.0+galaxy0",
+ "errors": null,
+ "id": 6,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 5,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Preprocessing",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 968.5520704631401,
+ "top": 434.8434326363941
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_preprocessing/seurat_preprocessing/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "6bccf5f85f92",
+ "name": "seurat_preprocessing",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"FindVariableFeatures\", \"__current_case__\": 1, \"assay\": \"\", \"selection_method\": {\"selection_method\": \"vst\", \"__current_case__\": 0, \"loess_span\": \"0.3\", \"clip_max\": null, \"nfeatures\": \"2000\"}, \"num_bin\": \"20\", \"binning_method\": \"equal_width\", \"output_topN\": {\"output_topN\": \"false\", \"__current_case__\": 1}}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "e2bc80b4-9716-440e-b92a-ea5e6b8711a9",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "7": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_preprocessing/seurat_preprocessing/5.0+galaxy0",
+ "errors": null,
+ "id": 7,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 6,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Preprocessing",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 1229.8954261203394,
+ "top": 427.65321541767247
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_preprocessing/seurat_preprocessing/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "6bccf5f85f92",
+ "name": "seurat_preprocessing",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"ScaleData\", \"__current_case__\": 2, \"assay\": \"\", \"regress\": {\"regress\": \"false\", \"__current_case__\": 1}, \"scale_features\": {\"scale_features\": \"variable_features\", \"__current_case__\": 0}, \"split_by\": \"\", \"do_scale\": true, \"do_center\": true, \"scale_max\": \"10.0\", \"block_size\": \"1000\", \"min_cells_to_block\": \"3000\"}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "26771645-0933-4eb6-ab40-d2f7657ba776",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "8": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_reduce_dimension/seurat_reduce_dimension/5.0+galaxy0",
+ "errors": null,
+ "id": 8,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 7,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Run Dimensional Reduction",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 1494.8339726717777,
+ "top": 427.6532154176726
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_reduce_dimension/seurat_reduce_dimension/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "46ed93e8da30",
+ "name": "seurat_reduce_dimension",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"RunPCA\", \"__current_case__\": 0, \"assay\": \"\", \"npcs\": \"50\", \"rev_pca\": false, \"weight_by_var\": true, \"seed_use\": \"42\", \"approx\": true, \"features\": null, \"reduction_name\": \"pca\", \"reduction_key\": \"PC_\", \"print_pcs\": {\"print_pcs\": \"false\", \"__current_case__\": 0}}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "779061a3-2661-44c1-94d5-427a1ede0067",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "9": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0",
+ "errors": null,
+ "id": 9,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 8,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Find Clusters",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 1830.903000886046,
+ "top": 413.47949519286453
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "51eb02d9b17a",
+ "name": "seurat_clustering",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"FindNeighbors\", \"__current_case__\": 0, \"reduction\": \"pca\", \"dims\": \"30\", \"k_param\": \"20\", \"nn_method\": {\"nn_method\": \"annoy\", \"__current_case__\": 1, \"annoy_metric\": \"euclidean\"}, \"adv\": {\"n_trees\": \"50\", \"l2_norm\": false, \"compute_snn\": {\"compute_snn\": \"TRUE\", \"__current_case__\": 1, \"prune_snn\": null, \"distance_matrix\": false}}}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "82500a71-de06-4111-8e59-b156ec001d1b",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "10": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0",
+ "errors": null,
+ "id": 10,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 9,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Find Clusters",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 2083.2586261622823,
+ "top": 406.289360259021
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "51eb02d9b17a",
+ "name": "seurat_clustering",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"FindClusters\", \"__current_case__\": 2, \"modularity_fxn\": \"1\", \"resolution\": \"2.0\", \"algorithm\": {\"algorithm\": \"1\", \"__current_case__\": 1}, \"n_start\": \"10\", \"n_iter\": \"10\", \"random_seed\": \"0\", \"group_singletons\": true, \"graph_name\": \"\", \"cluster_name\": \"unintegrated_clusters\"}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "b94eb1fa-b7ba-465b-9b61-1c6333d5cc35",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "11": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_reduce_dimension/seurat_reduce_dimension/5.0+galaxy0",
+ "errors": null,
+ "id": 11,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 10,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Run Dimensional Reduction",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 2342.8046045260417,
+ "top": 411.68189974574506
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_reduce_dimension/seurat_reduce_dimension/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "46ed93e8da30",
+ "name": "seurat_reduce_dimension",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"RunUMAP\", \"__current_case__\": 2, \"reduction\": \"pca\", \"assay\": \"\", \"umap_method\": {\"umap_method\": \"uwot\", \"__current_case__\": 0}, \"n_neighbors\": \"30\", \"n_components\": \"2\", \"metric\": \"cosine\", \"run_umap_on\": {\"run_umap_on\": \"dims\", \"__current_case__\": 0, \"dims\": \"30\"}, \"adv\": {\"reduction_model\": \"\", \"n_epochs\": null, \"learning_rate\": \"1\", \"min_dist\": \"0.3\", \"spread\": \"1\", \"set_op_mix_ratio\": \"1.0\", \"local_connectivity\": \"1\", \"repulsion_strength\": \"1\", \"negative_sample_rate\": \"5\", \"a\": \"\", \"b\": \"\", \"uwot_sgd\": false, \"seed_use\": \"42\", \"angular_rp_forest\": false, \"reduction_name\": \"umap.unintegrated\", \"reduction_key\": \"UMAP_\"}}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "3f30ab0f-5376-4f83-8d47-1126e758ddfc",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "12": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0",
+ "errors": null,
+ "id": 12,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 11,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Visualize",
+ "outputs": [
+ {
+ "name": "plot_out_png",
+ "type": "png"
+ }
+ ],
+ "position": {
+ "left": 2604.3854530351164,
+ "top": 216.60909423786597
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "fee4b4eb0ef5",
+ "name": "seurat_plot",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"DimPlot\", \"__current_case__\": 5, \"dims_1\": \"1\", \"dims_2\": \"2\", \"reduction\": \"umap.unintegrated\", \"plot\": {\"cols\": \"\", \"pt_size\": null, \"order\": \"\", \"shuffle\": {\"shuffle\": \"FALSE\", \"__current_case__\": 1}, \"alpha\": \"1\", \"ncol\": null, \"raster\": {\"raster\": \"NULL\", \"__current_case__\": 0}, \"label\": {\"label\": \"FALSE\", \"__current_case__\": 1}, \"highlight\": {\"highlight\": \"false\", \"__current_case__\": 1}, \"na_value\": \"lightgrey\"}, \"adv\": {\"cells\": null, \"group_by\": \"\", \"split_by\": \"\", \"shape_by\": \"\"}}, \"plot_format\": \"png\", \"resize\": {\"resize\": \"false\", \"__current_case__\": 0}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "63befb5d-f409-4159-b67d-cedb1af077fb",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "13": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0",
+ "errors": null,
+ "id": 13,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 11,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": "UMAP Plot by Method before Batch Correction",
+ "name": "Seurat Visualize",
+ "outputs": [
+ {
+ "name": "plot_out_png",
+ "type": "png"
+ }
+ ],
+ "position": {
+ "left": 2608.9985316836382,
+ "top": 425.19692641923274
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "fee4b4eb0ef5",
+ "name": "seurat_plot",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"DimPlot\", \"__current_case__\": 5, \"dims_1\": \"1\", \"dims_2\": \"2\", \"reduction\": \"umap.unintegrated\", \"plot\": {\"cols\": \"\", \"pt_size\": null, \"order\": \"\", \"shuffle\": {\"shuffle\": \"FALSE\", \"__current_case__\": 1}, \"alpha\": \"1\", \"ncol\": null, \"raster\": {\"raster\": \"NULL\", \"__current_case__\": 0}, \"label\": {\"label\": \"FALSE\", \"__current_case__\": 1}, \"highlight\": {\"highlight\": \"false\", \"__current_case__\": 1}, \"na_value\": \"lightgrey\"}, \"adv\": {\"cells\": null, \"group_by\": \"Method\", \"split_by\": \"\", \"shape_by\": \"\"}}, \"plot_format\": \"png\", \"resize\": {\"resize\": \"false\", \"__current_case__\": 0}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "29afbc3b-47ac-4b64-a0c2-33c3f72bd770",
+ "when": null,
+ "workflow_outputs": [
+ {"output_name": "plot_out_png", "label": "UMAP_before_Split"}
+ ]
+ },
+ "14": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_integrate/seurat_integrate/5.0+galaxy0",
+ "errors": null,
+ "id": 14,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 11,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Integrate",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 2940.2249855876717,
+ "top": 744.5295993317395
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_integrate/seurat_integrate/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "74fa68f4e579",
+ "name": "seurat_integrate",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"IntegrateLayers\", \"__current_case__\": 1, \"integration\": {\"integration_method\": \"CCAIntegration\", \"__current_case__\": 0, \"adv\": {\"k_filter\": null, \"dims\": \"30\", \"dims_to_integrate\": null, \"k_weight\": \"100\", \"weight_reduction\": \"\", \"sd_weight\": \"1.0\", \"preserve_order\": false}}, \"orig_reduction\": \"pca\", \"new_reduction\": \"integrated.cca\", \"assay\": \"\", \"features\": null, \"layers\": \"\", \"scale_layers\": \"\", \"normalization_method\": false}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "8f5df56c-50e8-472a-aa7a-bfe46cccc096",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "15": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_integrate/seurat_integrate/5.0+galaxy0",
+ "errors": null,
+ "id": 15,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 14,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Integrate",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 3177.914572337324,
+ "top": 743.344612480118
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_integrate/seurat_integrate/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "74fa68f4e579",
+ "name": "seurat_integrate",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"JoinLayers\", \"__current_case__\": 2, \"assay\": \"RNA\"}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "112940d4-0a0f-4b02-9c63-f40fe5844856",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "16": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0",
+ "errors": null,
+ "id": 16,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 15,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Find Clusters",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 3550.014924424064,
+ "top": 728.3115018383503
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "51eb02d9b17a",
+ "name": "seurat_clustering",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"FindNeighbors\", \"__current_case__\": 0, \"reduction\": \"integrated.cca\", \"dims\": \"30\", \"k_param\": \"20\", \"nn_method\": {\"nn_method\": \"annoy\", \"__current_case__\": 1, \"annoy_metric\": \"euclidean\"}, \"adv\": {\"n_trees\": \"50\", \"l2_norm\": false, \"compute_snn\": {\"compute_snn\": \"TRUE\", \"__current_case__\": 1, \"prune_snn\": null, \"distance_matrix\": false}}}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "3cb530c7-a443-4c36-a6f2-074070fd289c",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "17": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0",
+ "errors": null,
+ "id": 17,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 16,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Find Clusters",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 3800.5090873574754,
+ "top": 726.4512403969957
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_clustering/seurat_clustering/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "51eb02d9b17a",
+ "name": "seurat_clustering",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"FindClusters\", \"__current_case__\": 2, \"modularity_fxn\": \"1\", \"resolution\": \"2.0\", \"algorithm\": {\"algorithm\": \"1\", \"__current_case__\": 1}, \"n_start\": \"10\", \"n_iter\": \"10\", \"random_seed\": \"0\", \"group_singletons\": true, \"graph_name\": \"\", \"cluster_name\": \"cca_clusters\"}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "8390c05a-5937-4255-8380-22cdb04a5647",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "18": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_reduce_dimension/seurat_reduce_dimension/5.0+galaxy0",
+ "errors": null,
+ "id": 18,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 17,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Run Dimensional Reduction",
+ "outputs": [
+ {
+ "name": "rds_out",
+ "type": "rds"
+ }
+ ],
+ "position": {
+ "left": 4042.042646320594,
+ "top": 724.6494474252513
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_reduce_dimension/seurat_reduce_dimension/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "46ed93e8da30",
+ "name": "seurat_reduce_dimension",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"RunUMAP\", \"__current_case__\": 2, \"reduction\": \"integrated.cca\", \"assay\": \"\", \"umap_method\": {\"umap_method\": \"uwot\", \"__current_case__\": 0}, \"n_neighbors\": \"30\", \"n_components\": \"2\", \"metric\": \"cosine\", \"run_umap_on\": {\"run_umap_on\": \"dims\", \"__current_case__\": 0, \"dims\": \"30\"}, \"adv\": {\"reduction_model\": \"\", \"n_epochs\": null, \"learning_rate\": \"1\", \"min_dist\": \"0.3\", \"spread\": \"1\", \"set_op_mix_ratio\": \"1.0\", \"local_connectivity\": \"1\", \"repulsion_strength\": \"1\", \"negative_sample_rate\": \"5\", \"a\": \"\", \"b\": \"\", \"uwot_sgd\": false, \"seed_use\": \"42\", \"angular_rp_forest\": false, \"reduction_name\": \"umap.cca\", \"reduction_key\": \"UMAP_\"}}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "42468faf-ff9c-40c7-9821-12fe35903198",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "19": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0",
+ "errors": null,
+ "id": 19,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 18,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": null,
+ "name": "Seurat Visualize",
+ "outputs": [
+ {
+ "name": "plot_out_png",
+ "type": "png"
+ }
+ ],
+ "position": {
+ "left": 4346.42483407494,
+ "top": 587.5181052558572
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "fee4b4eb0ef5",
+ "name": "seurat_plot",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"DimPlot\", \"__current_case__\": 5, \"dims_1\": \"1\", \"dims_2\": \"2\", \"reduction\": \"umap.cca\", \"plot\": {\"cols\": \"\", \"pt_size\": null, \"order\": \"\", \"shuffle\": {\"shuffle\": \"FALSE\", \"__current_case__\": 1}, \"alpha\": \"1\", \"ncol\": null, \"raster\": {\"raster\": \"NULL\", \"__current_case__\": 0}, \"label\": {\"label\": \"FALSE\", \"__current_case__\": 1}, \"highlight\": {\"highlight\": \"false\", \"__current_case__\": 1}, \"na_value\": \"lightgrey\"}, \"adv\": {\"cells\": null, \"group_by\": \"\", \"split_by\": \"\", \"shape_by\": \"\"}}, \"plot_format\": \"png\", \"resize\": {\"resize\": \"false\", \"__current_case__\": 0}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "36a51149-172f-46bf-852f-a3b2b053e923",
+ "when": null,
+ "workflow_outputs": []
+ },
+ "20": {
+ "annotation": "",
+ "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0",
+ "errors": null,
+ "id": 20,
+ "input_connections": {
+ "seurat_rds": {
+ "id": 18,
+ "output_name": "rds_out"
+ }
+ },
+ "inputs": [],
+ "label": "UMAP Plot by Method after Batch Correction",
+ "name": "Seurat Visualize",
+ "outputs": [
+ {
+ "name": "plot_out_png",
+ "type": "png"
+ }
+ ],
+ "position": {
+ "left": 4343.0753371722585,
+ "top": 796.2257393158254
+ },
+ "post_job_actions": {},
+ "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seurat_plot/seurat_plot/5.0+galaxy0",
+ "tool_shed_repository": {
+ "changeset_revision": "fee4b4eb0ef5",
+ "name": "seurat_plot",
+ "owner": "iuc",
+ "tool_shed": "toolshed.g2.bx.psu.edu"
+ },
+ "tool_state": "{\"__input_ext\": \"input\", \"advanced_common\": {\"show_log\": false}, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"method\": {\"method\": \"DimPlot\", \"__current_case__\": 5, \"dims_1\": \"1\", \"dims_2\": \"2\", \"reduction\": \"umap.cca\", \"plot\": {\"cols\": \"\", \"pt_size\": null, \"order\": \"\", \"shuffle\": {\"shuffle\": \"FALSE\", \"__current_case__\": 1}, \"alpha\": \"1\", \"ncol\": null, \"raster\": {\"raster\": \"NULL\", \"__current_case__\": 0}, \"label\": {\"label\": \"FALSE\", \"__current_case__\": 1}, \"highlight\": {\"highlight\": \"false\", \"__current_case__\": 1}, \"na_value\": \"lightgrey\"}, \"adv\": {\"cells\": null, \"group_by\": \"Method\", \"split_by\": \"\", \"shape_by\": \"\"}}, \"plot_format\": \"png\", \"resize\": {\"resize\": \"false\", \"__current_case__\": 0}, \"seurat_rds\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}",
+ "tool_version": "5.0+galaxy0",
+ "type": "tool",
+ "uuid": "4488dcdd-9657-4c02-bc8d-7618bea73ee0",
+ "when": null,
+ "workflow_outputs": [
+ {"output_name": "plot_out_png", "label": "UMAP_after_Split"}
+ ]
+ }
+ },
+ "tags": [
+ "name:singlecell",
+ "name:seurat"
+ ],
+ "uuid": "b4ceaa9d-4975-4af2-958d-ac0d468390b9",
+ "version": 1
+}
\ No newline at end of file