{"id":31805800,"url":"https://github.com/theislab/scib-pipeline","last_synced_at":"2025-10-11T02:58:41.875Z","repository":{"id":37500070,"uuid":"300686599","full_name":"theislab/scib-pipeline","owner":"theislab","description":"Snakemake pipeline that works with the scIB package to benchmark data integration methods. ","archived":false,"fork":false,"pushed_at":"2025-01-23T11:02:27.000Z","size":239426,"stargazers_count":67,"open_issues_count":16,"forks_count":27,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-01-23T12:18:51.439Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theislab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-02T17:17:43.000Z","updated_at":"2025-01-23T11:02:31.000Z","dependencies_parsed_at":"2023-02-09T16:15:59.058Z","dependency_job_id":null,"html_url":"https://github.com/theislab/scib-pipeline","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/theislab/scib-pipeline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theislab%2Fscib-pipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theislab%2Fscib-pipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theislab%2Fscib-pipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theislab%2Fscib-pipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theislab","download_url":"https://codeload.github.com/theislab/scib-pipeline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theislab%2Fscib-pipeline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005950,"owners_count":26084009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-11T02:58:40.519Z","updated_at":"2025-10-11T02:58:41.860Z","avatar_url":"https://github.com/theislab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pipeline for benchmarking atlas-level single-cell integration\n\n\u003e [!IMPORTANT]\n\u003e This pipeline was tailored for the scib integration benchmark, but is not being developed for general-purpose dataset integration and benchmarking.\n\u003e There are two follow-up project from this benchmkark that you can check out instead:\n\u003e \n\u003e 1. For a more up-to-date project on across-dataset benchmarking of scRNA batch integration, please visit the **Openproblems living benchmark** [website](https://openproblems.bio/results/batch_integration_feature/) or [repo](https://github.com/openproblems-bio/task_batch_integration).\n\u003e 2. If you want to **build your own integrated atlas** or make use of a ready-to-use integration benchmark, please visit the more extensive and highly scalable atlas building pipeline: https://github.com/HCA-integration/sc-atlasing-toolbox\n\nThis repository contains the snakemake pipeline for our benchmarking study for data integration tools.\nIn this study, we benchmark 16 methods ([see here](##tools)) with 4 combinations of preprocessing steps leading to 68 \nmethods combinations on 85 batches of gene expression and chromatin accessibility data.\nThe pipeline uses the [`scib`](https://github.com/theislab/scib.git) package and allows for reproducible and automated\nanalysis of the different steps and combinations of preprocesssing and integration methods.\n\n![Workflow](./figure.png)\n\n## Resources\n\n- On our [website](https://theislab.github.io/scib-reproducibility) we visualise the results of the study.\n\n- The scib package that is used in this pipeline can be found [here](https://github.com/theislab/scib).\n\n- For reproducibility and visualisation we have a dedicated repository: [scib-reproducibility](https://github.com/theislab/scib-reproducibility).\n\n- The data used in the study on  [figshare](https://figshare.com/articles/dataset/Benchmarking_atlas-level_data_integration_in_single-cell_genomics_-_integration_task_datasets_Immune_and_pancreas_/12420968)\n\n### Please cite:\n\nLuecken, M.D., Büttner, M., Chaichoompu, K. et al. Benchmarking atlas-level data integration in single-cell genomics.\nNat Methods 19, 41–50 (2022). https://doi.org/10.1038/s41592-021-01336-8\n\n## Installation\n\nTo reproduce the results from this study, two separate conda environments are needed for python and R operations.\nPlease make sure you have either [`mambaforge`](https://github.com/conda-forge/miniforge) or\n[`conda`](https://conda.io/projects/conda) installed on your system to be able to use the pipeline.\nWe recommend using [`mamba`](https://mamba.readthedocs.io), which is also available for conda, for faster package\ninstallations with a smaller memory footprint.\n\nWe provide python and R environment YAML files in `envs/`, together with an installation script for setting up the\ncorrect environments in a single command. based on the R version you want to use.\nThe pipeline currently supports R 3.6 and R 4.0, and we generally recommend using version R 4.0.\nCall the script as follows e.g. for R 4.0\n\n```shell\nbash envs/create_conda_environments.sh -r 4.0\n```\n\nCheck the script's help output in order to get the full list of arguments it uses.\n\n```shell\nbash envs/create_conda_environments.sh -h \n```\n\nOnce installation is successful, you will have the python environment `scib-pipeline-R\u003cversion\u003e` and the R environment\n`scib-R\u003cversion\u003e` that you must specify in the [config file](#setup-configuration-file).\n\n| R version | Python environment name | R environment name | Test data config YAML file   |\n|-----------|-------------------------|--------------------|------------------------------|\n| 4.0       | `scib-pipeline-R4.0`    | `scib-R4.0`        | `configs/test_data-R4.0.yml` |\n| 3.6       | `scib-pipeline-R3.6`    | `scib-R3.6`        | `configs/test_data-R3.6.yml` |\n\n\u003e **Note**: The installation script only works for the environments listed in the table above.\n\u003e The environments used in our [study][paper] are included for reproducibility purposes and are described in `envs/`.\n\nFor a more detailed description of the environment files and how to install the different environments manually, please\nrefer to the README in `envs/`.\n\n\n## Running the Pipeline\n\nThis repository contains a [snakemake](https://snakemake.readthedocs.io/en/stable/) pipeline to run integration methods\nand metrics reproducibly for different data scenarios preprocessing setups.\n\n### Generate Test data\n\nA script in `data/` can be used to generate test data.\nThis is useful, in order to ensure that the installation was successful before moving on to a larger dataset.\nThe pipeline expects an `anndata` object with normalised and log-transformed counts in `adata.X` and counts in\n`adata.layers['counts']`.\nMore information on how to use the data generation script can be found in `data/README.md`.\n\n### Setup Configuration File\n\nThe parameters and input files are specified in config files.\nA description of the config formats and example files can found in `configs/`.\nYou can use the example config that use the test data to get the pipeline running quickly, and then modify a copy of it\nto work with your own data.\n\n### Pipeline Commands\n\nTo call the pipeline on the test data e.g. using R 4.0\n\n```shell\nsnakemake --configfile configs/test_data-R4.0.yaml -n\n```\n\nThis gives you an overview of the jobs that will be run.\nIn order to execute these jobs with up to 10 cores, call\n\n```shell\nsnakemake --configfile configs/test_data-R4.0.yaml --cores 10\n```\n\nMore snakemake commands can be found in the [documentation](snakemake.readthedocs.io/).\n\n### Visualise the Workflow\n\nA dependency graph of the workflow can be created anytime and is useful to gain a general understanding of the workflow.\nSnakemake can create a `graphviz` representation of the rules, which can be piped into an image file.\n\n```shell\nsnakemake --configfile configs/test_data-R3.6.yaml --rulegraph | dot -Tpng -Grankdir=TB \u003e dependency.png\n```\n\n![Snakemake workflow](./dependency.png)\n\n## Tools\n\nTools that are compared include:\n\n- [Scanorama](https://github.com/brianhie/scanorama)\n- [scANVI](https://github.com/chenlingantelope/HarmonizationSCANVI)\n- [FastMNN](https://bioconductor.org/packages/batchelor/)\n- [scGen](https://github.com/theislab/scgen)\n- [BBKNN](https://github.com/Teichlab/bbknn)\n- [scVI](https://github.com/YosefLab/scVI)\n- [Seurat v3 (CCA and RPCA)](https://github.com/satijalab/seurat)\n- [Harmony](https://github.com/immunogenomics/harmony)\n- [Conos](https://github.com/hms-dbmi/conos) [tutorial](https://htmlpreview.github.io/?https://github.com/satijalab/seurat.wrappers/blob/master/docs/conos.html)\n- [Combat](https://scanpy.readthedocs.io/en/stable/api/scanpy.pp.combat.html) [paper](https://academic.oup.com/biostatistics/article/8/1/118/252073)\n- [MNN](https://github.com/chriscainx/mnnpy)\n- [TrVae](https://github.com/theislab/trvae)\n- [DESC](https://github.com/eleozzr/desc)\n- [LIGER](https://github.com/MacoskoLab/liger)\n- [SAUCIE](https://github.com/KrishnaswamyLab/SAUCIE)\n\n\n[paper]: https://doi.org/10.1038/s41592-021-01336-8\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheislab%2Fscib-pipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheislab%2Fscib-pipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheislab%2Fscib-pipeline/lists"}