yascp

scRNA multimodal analysis pipeline utilised for large dataset processing - capable in handeling scRNA, scATAC, Hastag Multiplexed samples

https://github.com/wtsi-hgi/yascp

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
    Organization wtsi-hgi has institutional domain (www.sanger.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords

scrna-seq-analysis
Last synced: 7 months ago · JSON representation

Repository

scRNA multimodal analysis pipeline utilised for large dataset processing - capable in handeling scRNA, scATAC, Hastag Multiplexed samples

Basic Info
  • Host: GitHub
  • Owner: wtsi-hgi
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 153 MB
Statistics
  • Stars: 14
  • Watchers: 3
  • Forks: 7
  • Open Issues: 0
  • Releases: 4
Topics
scrna-seq-analysis
Created over 4 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.md

Introduction

Usage DOCUMENTATION

As indicated above you can run pipeline blocks independently:

Screenshot 2024-06-03 at 17 01 01

YASCP (Yet Another Single Cell Pipeline) is a scalable and modular single-cell analysis pipeline designed for high-quality preprocessing, deconvolution, doublet detection, clustering, cell type assignment, and integration. The acronym moves from Y to A to symbolize the pursuit of knowledge no Z implies there's always more to explore, refine, and improve.

YASCP supports:

  • 10x Genomics Cell Ranger-style output directories
  • Raw BAM/BAI and MTX file inputs for nonstandard or intermediate-stage datasets
  • Hashtag multiplexing (HTO/CITE-seq)
  • CITE-seq protein expression quantification
  • scRNA-seq and scATAC-seq analysis modes
  • Modular execution: run the full pipeline or reuse individual steps independently

YASCP is not hardcoded for any specific tissue, platform, or cell type. Each module from ambient RNA removal to clustering and annotation can be configured independently, allowing you to tailor thresholds, skip irrelevant steps, or restart from any stage of the analysis.

Flexibility for Custom Designs

YASCP is designed to accommodate complex experimental scenarios such as stimulation conditions, CITE-seq profiling, and multimodal assays. While it does not perform CRISPR guide assignment or perturbation modeling directly, it can preprocess CRISPR-based single-cell data upstream of specialized tools providing normalized, QC-filtered .h5ad or .rds files ready for downstream integration. Whether youre analyzing a simple 10x run or building a customized, multi-step workflow, YASCP enables reproducible, flexible, and scalable analysis.

  • Condition-aware and hashtag-aware workflows
    You can split samples by hashtag or stimulation before QC, doublet detection, or annotation, either externally or by modifying the workflow schema.

  • Custom QC and filtering per sample/tag
    Per-donor or per-hashtag QC thresholds can be applied dynamically using modular blocks.

  • Optional or replaceable modules
    All major steps (e.g., CellBender, deconvolution, cell typing, doublet detection) can be skipped. You can use filtered CellRanger outputs directly.

  • Antibody and hashtag splitting
    CITE-seq protein and hashtag features can be split and analyzed separately.

  • Custom inputs at any stage
    You can re-enter the pipeline with intermediate .h5ad objects and resume downstream analysis.

  • Manual thresholds and logic injection
    Flexible logic and parameter overrides allow manual thresholding or customized QC/annotation rules per batch or condition.

Results will demultiplex individuals, robustly assess the assignments Screenshot 2024-06-03 at 12 56 44

As well as assign celltypes, perform integrations, remove ambient RNA and produce publication ready plots Screenshot 2024-06-02 at 15 20 29

Developed by M.Ozols under the leadership of N.Soranzo and Human Genetics Informatics (HGI), this large-scale single-cell pipeline was originally crafted for the Cardinal project (profiling UKBB and GH participants) but is versatile enough for broad scRNA analysis applications.

Input requires a tsv seperated file (please read detailed documentation here) with paths and if running in an genotype additional input is required to be provided in an input.nf file pointing to the vcf location. This pipeline is designed to be used any large scale single cell experiments.

The foundational ideas were inspired by earlier pipelines from Anderson lab but has been expanded, specifically those for deconvolution, cellbender, and quality control and clustering. This ensures a robust integration of proven methodologies tailored to meet the demands of expansive single-cell data analysis.

Quick Start

  1. Install Nextflow (>=21.04.0)
  2. Install any of Docker, Singularityfor full pipeline reproducibility.
  3. Download/clone the pipeline and test it on a minimal dataset with a single command:

    console git clone https://github.com/wtsi-hgi/yascp.git nextflow run /path/to/colned/yascp -profile test,<docker/singularity,institute>

    Run on Your Own Data

### 1. Prepare an input.tsv file

You can run YASCP in two ways depending on the structure of your input data.

#### Option 1: Minimal (standard 10x format)

Use this format if you have 10x Genomics-style output folders (e.g., from Cell Ranger):

| experimentid | npooled | donorvcfids | datapath10xformat | |---------------|----------|-----------------------|-----------------------------| | SampleA | 1 | "" | /data/project1/10xoutput1/ | | SampleB | 2 | D001,D002 | /data/project1/10x_output2/ |

donor_vcf_ids should be comma-separated if multiple donors are pooled. Leave empty ("") if not applicable.


#### Option 2: Custom paths (nonstandard structure or preprocessed inputs)

Use this format if you want to supply filtered/unfiltered MTX files or BAM/BAI directly:

| experimentid | npooled | donorvcfids | datapath10xformat | filteredmtx | filteredbarcodes | filteredfeatures | unfilteredmtx | unfilteredbarcodes | unfiltered_features | bam | bai | |---------------|----------|----------------|-----------------------|---------------------------|----------------------------|----------------------------|---------------------------|----------------------------|----------------------------|--------------------------|--------------------------| | SampleC | 4 | D101,D102,D103 | "" | /data/SampleC/filtered.mtx.gz | /data/SampleC/filtered.barcodes.tsv.gz | /data/SampleC/filtered.features.tsv.gz | /data/SampleC/unfiltered.mtx.gz | /data/SampleC/unfiltered.barcodes.tsv.gz | /data/SampleC/unfiltered.features.tsv.gz | /data/SampleC/data.bam | /data/SampleC/data.bam.bai | | SampleD | 3 | D201,D202,D203 | "" | ... | ... | ... | ... | ... | ... | ... | ... |

  • If data_path_10x_format is provided, it takes precedence.
  • If empty (""), the pipeline will fall back to the provided filtered_*, unfiltered_*, or bam/bai file paths.
  • You must provide either a valid 10x directory or a complete alternative set.

### 2. Run the pipeline

```bash git clone https://github.com/wtsi-hgi/yascp.git cd yascp

nextflow run ./main.nf \ -profile \ --inputdatatable path/to/input.tsv ```

Pipeline summary

Pipeline has a modular design ensuring that the bits and piecies can be run independently according to project needs. Overall pipeline is focussed arounf main steps: 1. Cellbender 2. CellSNP 3. Vireo 4. Souporcell 5. Celltypist 6. Azimuth 7. BBKNN 8. Harmony 9. Scrublet, DoubletDecon, DoubletFinder, SCDS, scDblFinder, DoubletDetection 10. Sccaf 11. Lisi 12. Isolation Forest 13. Hard filters 14. Genotype deconvolution and GT match against multiple panels. 15. Citeseq DSB normalisations, 16. Cell genotype concordance Calculations

Documentation: Prepearing your own data and interpreting the results

To understand how to prepeare your own data and how to interpret the results please refear to documents HERE

Credits

Yascp was originally written by Matiss Ozols with major contributions from Leland Taylor, Guillaume Noell, Hannes Ponstingl, Vladimir Ovchinnikov, Vivek Iyer, Henry Taylor, Tobi Alegbe, Monika Krzak, Alessandro Raveane, Carl Anderson, Anna Lorenc, Haerin Jang, Niek de Klein, Stephen Watt, Nicole Soranzo, Oliver Stegle.

The pipeline is built using Nextflow, a workflow tool to run tasks across multiple compute infrastructures in a very portable manner. It uses Docker/Singularity containers making installation trivial and results highly reproducible. The Nextflow DSL2 implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. Where possible, these processes have been submitted to and installed from nf-core/modules in order to make them available to all nf-core pipelines, and to everyone within the Nextflow community!

Contributions and Support

We wellcome all contributions. If you would like to contribute to this pipeline, please create a fork and then create a pull request, and inform Matiss (mo11@sanger.ac.uk) re the changes made and additions added.

Citations

If you use YASCP for your analysis, please cite it using the following doi: 10.5281/zenodo.15600242

Ozols, M. et al. YASCP: GitHub. https://github.com/wtsi-hgi/yascp DOI We are also working on publishing this pipeline.

An extensive list of references for the tools used by the pipeline can be found in the CITATIONS.md file.

We have used nf-cores template to develop this pipeline. You can cite the nf-core publication as follows:

The nf-core framework for community-curated bioinformatics pipelines. Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen. Nat Biotechnol. 2020 Feb 13. doi: 10.1038/s41587-020-0439-x.

Owner

  • Name: Wellcome Trust Sanger Institute - Human Genetics Informatics
  • Login: wtsi-hgi
  • Kind: organization
  • Email: hgi@sanger.ac.uk
  • Location: Cambridge, UK

Analysing genomic data at scale for the Human Genetics Program

GitHub Events

Total
  • Issues event: 1
  • Delete event: 16
  • Issue comment event: 8
  • Push event: 133
  • Pull request event: 12
  • Fork event: 1
  • Create event: 3
Last Year
  • Issues event: 1
  • Delete event: 16
  • Issue comment event: 8
  • Push event: 133
  • Pull request event: 12
  • Fork event: 1
  • Create event: 3

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 2
  • Total pull requests: 30
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 2
  • Total pull request authors: 7
  • Average comments per issue: 0.5
  • Average comments per pull request: 1.03
  • Merged pull requests: 25
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 9
  • Average time to close issues: 28 days
  • Average time to close pull requests: 3 days
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.22
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ryan2han (1)
  • letaylor (1)
Pull Request Authors
  • tdkaliki (17)
  • Tobi1kenobi (6)
  • hpon (5)
  • gn5 (5)
  • edgano (4)
  • letaylor (2)
  • mkrzak (1)
Top Labels
Issue Labels
bug (1)
Pull Request Labels

Dependencies

.github/workflows/awsfulltest.yml actions
  • nf-core/tower-action master composite
.github/workflows/awstest.yml actions
  • nf-core/tower-action master composite
.github/workflows/branch.yml actions
  • mshick/add-pr-comment v1 composite
.github/workflows/ci.yml actions
  • actions/checkout v2 composite
.github/workflows/linting.yml actions
  • actions/checkout v2 composite
  • actions/checkout v1 composite
  • actions/setup-node v1 composite
  • actions/setup-python v1 composite
  • actions/upload-artifact v2 composite
  • mshick/add-pr-comment v1 composite
.github/workflows/linting_comment.yml actions
  • dawidd6/action-download-artifact v2 composite
  • marocchino/sticky-pull-request-comment v2 composite
modules/nf-core/modules/fastqc/meta.yml cpan
env/bcftools/Dockerfile docker
  • python 3.10.2-buster build
  • r-base 4.2.0 build
env/cellbender/v1/Dockerfile docker
  • continuumio/miniconda3 latest build
env/egacryptor/Dockerfile docker
  • openjdk 8 build
env/htstools/Dockerfile docker
  • python 3.10.2-buster build
  • r-base 4.2.0 build
env/nf_scrna_deconv/v1/Dockerfile docker
  • mambaorg/micromamba 0.15.3 build
env/nf_scrna_deconv/v2/Dockerfile docker
  • mercury/scrna_deconvolution 62bd56a build
env/nf_scrna_qc/v0/Dockerfile docker
  • rocker/r-ver 4.0.3 build
env/nf_scrna_qc/v1/Dockerfile docker
  • wtsihgi/nf_scrna_qc 6bb6af5 build
env/nf_scrna_qc/v2/Dockerfile docker
  • mercury/nf_qc_scrna v1 build
env/nf_scrna_qc_azimuth/v1/Dockerfile docker
  • satijalab/seurat 4.0.1 build
env/nf_scrna_qc_azimuth/v2/Dockerfile docker
  • ubuntu 18.04 build
env/nf_scrna_qc_scaaf/Dockerfile docker
  • rocker/r-ver 4.0.3 build
env/plink/v0/Dockerfile docker
  • python 3.10.2-buster build
env/nf_scrna_qc/v3/Dockerfile docker
  • mercury/nf_qc_scrna v2 build
env/cellbender/v1/environment.yml conda
  • click
  • kneed
  • leidenalg
  • louvain
  • matplotlib
  • numba <0.53.0
  • numpy
  • pandas
  • pip
  • plotnine
  • pytables
  • python-igraph
  • scikit-learn >=0.24
  • scipy
  • torchvision
env/nf_scrna_qc/v0/environment.yml conda
  • bbknn >=1.4.1
  • debugpy >=1.2.1
  • harmonypy >=0.0.5
  • joblib >=1.0.1
  • keras-gpu >=2.4.3
  • kneed >=0.7.0
  • leidenalg >=0.8.3
  • louvain >=0.7.0
  • numba
  • numpy >=1.20.2
  • pandas <1.3
  • pip
  • plotnine >=0.8.0
  • pyyaml >=5.3.1
  • scikit-learn >=0.24
  • scipy >=1.6.2
  • scrublet >=0.2.3
  • tensorflow-gpu >=2.4.1
env/nf_scrna_qc_scaaf/environment.yml conda
  • bbknn >=1.4.1
  • harmonypy >=0.0.5
  • joblib >=1.0.1
  • keras-gpu >=2.4.3
  • kneed >=0.7.0
  • leidenalg >=0.8.3
  • louvain >=0.7.0
  • numba
  • numpy >=1.20.2
  • pandas >=1.2.3
  • pip
  • plotnine >=0.8.0
  • pyyaml >=5.3.1
  • scanpy
  • scikit-learn >=0.24
  • scipy >=1.6.2
  • scrublet >=0.2.3
  • tensorflow-gpu >=2.4.1
env/bam_tool_processing/Dockerfile docker
  • continuumio/miniconda3 latest build
env/dsb_azimuth/06_03_2024/Dockerfile docker
  • mercury/azimuth_dsb latest build
env/dsb_azimuth/14_02_2024/Dockerfile docker
  • mercury/azimuth_dsb latest build
env/dsb_azimuth/v0/Dockerfile docker
  • ubuntu 18.04 build