From f44968298c475289ddd6ab82dc83b54d993ff1ff Mon Sep 17 00:00:00 2001 From: zethson Date: Thu, 25 Jan 2024 16:36:51 +0100 Subject: [PATCH] Add combosciplex Signed-off-by: zethson --- docs/usage/usage.md | 2 + pertpy/data/__init__.py | 1 + pertpy/data/_dataloader.py | 4 +- pertpy/data/_datasets.py | 131 ++++++++++++++++++++++--------------- 4 files changed, 81 insertions(+), 57 deletions(-) diff --git a/docs/usage/usage.md b/docs/usage/usage.md index ac1f19a6..62aff1af 100644 --- a/docs/usage/usage.md +++ b/docs/usage/usage.md @@ -29,6 +29,8 @@ pt.tl.cool_fancy_tool() data.bhattacherjee data.burczynski_crohn data.chang_2021 + data.combosciplex + data.cinemaot_example data.datlinger_2017 data.datlinger_2021 data.dialogue_example diff --git a/pertpy/data/__init__.py b/pertpy/data/__init__.py index f176cf06..f3dafb19 100644 --- a/pertpy/data/__init__.py +++ b/pertpy/data/__init__.py @@ -7,6 +7,7 @@ burczynski_crohn, chang_2021, cinemaot_example, + combosciplex, datlinger_2017, datlinger_2021, dialogue_example, diff --git a/pertpy/data/_dataloader.py b/pertpy/data/_dataloader.py index a88b478f..7b3c0f7e 100644 --- a/pertpy/data/_dataloader.py +++ b/pertpy/data/_dataloader.py @@ -2,7 +2,6 @@ from pathlib import Path from random import choice from string import ascii_lowercase -from typing import Union from zipfile import ZipFile import requests @@ -64,5 +63,4 @@ def _download( # pragma: no cover output_path = output_path or tempfile.gettempdir() with ZipFile(download_to_path, "r") as zip_obj: zip_obj.extractall(path=output_path) - extracted = zip_obj.namelist() - print(extracted) + zip_obj.namelist() diff --git a/pertpy/data/_datasets.py b/pertpy/data/_datasets.py index 9cd3685c..873f6dd9 100644 --- a/pertpy/data/_datasets.py +++ b/pertpy/data/_datasets.py @@ -40,7 +40,7 @@ def papalexi_2021() -> MuData: # pragma: no cover import muon as mu output_file_name = "papalexi_2021.h5mu" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/36509460", @@ -63,7 +63,7 @@ def sc_sim_augur() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of a simulated single-cell RNA seq dataset """ output_file_name = "sc_sim_augur.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/31645886", @@ -93,7 +93,7 @@ def bhattacherjee() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of a single-cell RNA seq dataset """ output_file_name = "bhattacherjee_rna.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/34526528", @@ -110,9 +110,7 @@ def sciplex3_raw() -> AnnData: # pragma: no cover """Raw sciplex3 perturbation dataset curated for perturbation modeling. References: - Srivatsan SR, McFaline-Figueroa JL, Ramani V, Saunders L, Cao J, Packer J, - Pliner HA, Jackson DL, Daza RM, Christiansen L, Zhang F, Steemers F, - Shendure J, Trapnell C. Massively multiplex chemical transcriptomics at + Srivatsan SR et al., Trapnell C. Massively multiplex chemical transcriptomics at single-cell resolution. Science. 2020 Jan 3;367(6473):45-51. doi: 10.1126/science.aax6234. Epub 2019 Dec 5. PMID: 31806696; PMCID: PMC7289078. @@ -120,7 +118,7 @@ def sciplex3_raw() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of a single-cell RNA seq dataset """ output_file_name = "sciplex3.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/33979517", @@ -148,7 +146,7 @@ def tasccoda_example() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of the dataset. """ output_file_name = "tasccoda_smillie.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/38648585", @@ -177,7 +175,7 @@ def frangieh_2021() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of the Perturb-CITE-seq data. """ output_file_name = "frangieh_2021.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/34013717", @@ -206,7 +204,7 @@ def frangieh_2021_raw() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of raw Perturb-CITE-seq data. """ output_file_name = "frangieh_2021_raw.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/34012565", @@ -235,7 +233,7 @@ def dixit_2016_raw() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of raw Perturb-seq data. """ output_file_name = "dixit_2016_raw.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/34012565", @@ -264,7 +262,7 @@ def dixit_2016() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of Perturb-seq data """ output_file_name = "dixit_2016.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/34014608", @@ -292,7 +290,7 @@ def norman_2019() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of single-cell pooled CRISPR screening. """ output_file_name = "norman_2019.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/34027562", @@ -320,7 +318,7 @@ def norman_2019_raw() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of raw single-cell pooled CRISPR screening """ output_file_name = "norman_2019_raw.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/34002548", @@ -343,7 +341,7 @@ def dialogue_example() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object """ output_file_name = "dialogue_example.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/43462662", @@ -365,7 +363,7 @@ def distance_example() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object """ output_file_name = "distances_example_data.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/39561379", @@ -396,7 +394,7 @@ def kang_2018() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of droplet-based single cell RNA-sequencing """ output_file_name = "kang_2018.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/34464122", @@ -425,7 +423,7 @@ def stephenson_2021_subsampled() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scRNA-seq profiles """ output_file_name = "stephenson_2021_subsampled.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/38171703", @@ -452,7 +450,7 @@ def haber_2017_regions() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object """ output_file_name = "haber_2017_regions.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/38169900", @@ -479,7 +477,7 @@ def adamson_2016_pilot() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "adamson_2016_pilot.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/AdamsonWeissman2016_GSM2406675_10X001.h5ad?download=1", @@ -510,7 +508,7 @@ def adamson_2016_upr_epistasis() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb preparedsingle-cell perturbation data """ output_file_name = "adamson_2016_upr_epistasis.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/AdamsonWeissman2016_GSM2406677_10X005.h5ad?download=1", @@ -539,7 +537,7 @@ def adamson_2016_upr_perturb_seq() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "adamson_2016_upr_perturb_seq.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/AdamsonWeissman2016_GSM2406681_10X010.h5ad?download=1", @@ -566,7 +564,7 @@ def aissa_2021() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb single-cell perturbation data """ output_file_name = "aissa_2021.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/AissaBenevolenskaya2021.h5ad?download=1", @@ -595,7 +593,7 @@ def chang_2021() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "chang_2021.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/ChangYe2021.h5ad?download=1", @@ -626,7 +624,7 @@ def datlinger_2017() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "datlinger_2017.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/DatlingerBock2017.h5ad?download=1", @@ -656,7 +654,7 @@ def datlinger_2021() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "datlinger_2021.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/DatlingerBock2021.h5ad?download=1", @@ -687,7 +685,7 @@ def frangieh_2021_protein() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "frangieh_2021_protein.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/FrangiehIzar2021_protein.h5ad?download=1", @@ -718,7 +716,7 @@ def frangieh_2021_rna() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "frangieh_2021_rna.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/FrangiehIzar2021_RNA.h5ad?download=1", @@ -746,7 +744,7 @@ def gasperini_2019_atscale() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "gasperini_2019_atscale.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/GasperiniShendure2019_atscale.h5ad?download=1", @@ -775,7 +773,7 @@ def gasperini_2019_highmoi() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb single-cell perturbation data """ output_file_name = "gasperini_2019_highmoi.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/GasperiniShendure2019_highMOI.h5ad?download=1", @@ -804,7 +802,7 @@ def gasperini_2019_lowmoi() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "gasperini_2019_lowmoi.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/GasperiniShendure2019_lowMOI.h5ad?download=1", @@ -832,7 +830,7 @@ def gehring_2019() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of a scPerturb prepared single-cell dataset """ output_file_name = "gehring_2019.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/GehringPachter2019.h5ad?download=1", @@ -861,7 +859,7 @@ def mcfarland_2020() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb single-cell perturbation data """ output_file_name = "mcfarland_2020.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/McFarlandTsherniak2020.h5ad?download=1", @@ -890,7 +888,7 @@ def replogle_2022_k562_essential() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "replogle_2022_k562_essential.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/ReplogleWeissman2022_K562_essential.h5ad?download=1", @@ -921,7 +919,7 @@ def replogle_2022_k562_gwps() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "replogle_2022_k562_gwps.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/ReplogleWeissman2022_K562_gwps.h5ad?download=1", @@ -951,7 +949,7 @@ def replogle_2022_rpe1() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "replogle_2022_rpe1.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/ReplogleWeissman2022_rpe1.h5ad?download=1", @@ -982,7 +980,7 @@ def schiebinger_2019_16day() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb single-cell perturbation data """ output_file_name = "schiebinger_2019_16day.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/SchiebingerLander2019_GSE106340.h5ad?download=1", @@ -1011,7 +1009,7 @@ def schiebinger_2019_18day() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb single-cell perturbation data """ output_file_name = "Schiebinger_2019_18day.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/SchiebingerLander2019_GSE115943.h5ad?download=1", @@ -1040,7 +1038,7 @@ def schraivogel_2020_tap_screen_chr11() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb single-cell perturbation data """ output_file_name = "schraivogel_2020_tap_screen_chr11.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/SchraivogelSteinmetz2020_TAP_SCREEN__chromosome_11_screen.h5ad?download=1", @@ -1069,7 +1067,7 @@ def schraivogel_2020_tap_screen_chr8() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "schraivogel_2020_tap_screen_chr8.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/SchraivogelSteinmetz2020_TAP_SCREEN__chromosome_8_screen.h5ad?download=1", @@ -1099,7 +1097,7 @@ def shifrut_2018() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "shifrut_2018.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/ShifrutMarson2018.h5ad?download=1", @@ -1130,7 +1128,7 @@ def srivatsan_2020_sciplex2() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "srivatsan_2020_sciplex2.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/SrivatsanTrapnell2020_sciplex2.h5ad?download=1", @@ -1159,7 +1157,7 @@ def srivatsan_2020_sciplex3() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "srivatsan_2020_sciplex3.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/SrivatsanTrapnell2020_sciplex3.h5ad?download=1", @@ -1191,7 +1189,7 @@ def srivatsan_2020_sciplex4() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "srivatsan_2020_sciplex4.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/SrivatsanTrapnell2020_sciplex4.h5ad?download=1", @@ -1223,7 +1221,7 @@ def tian_2019_day7neuron() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "tian_2019_day7neuron.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/TianKampmann2019_day7neuron.h5ad?download=1", @@ -1255,7 +1253,7 @@ def tian_2019_ipsc() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "tian_2019_iPSC.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/TianKampmann2019_iPSC.h5ad?download=1", @@ -1285,7 +1283,7 @@ def tian_2021_crispra() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb single-cell perturbation data """ output_file_name = "tian_2021_crispra.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/TianKampmann2021_CRISPRa.h5ad?download=1", @@ -1315,7 +1313,7 @@ def tian_2021_crispri() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "tian_2021_crispri.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/TianKampmann2021_CRISPRi.h5ad?download=1", @@ -1342,7 +1340,7 @@ def weinreb_2020() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "weinreb_2020.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/WeinrebKlein2020.h5ad?download=1", @@ -1370,7 +1368,7 @@ def xie_2017() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "xie_2017.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/XieHon2017.h5ad?download=1", @@ -1400,7 +1398,7 @@ def zhao_2021() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of scPerturb prepared single-cell perturbation data """ output_file_name = "zhaoSims2021.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://zenodo.org/record/7278143/files/ZhaoSims2021.h5ad?download=1", @@ -1425,7 +1423,7 @@ def cinemaot_example() -> AnnData: # pragma: no cover: :class:`~anndata.AnnData` object of PBMCs stimulated with interferon. """ output_file_name = "cinemaot_example.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/42362796?private_link=270b0d2c7f1ea57c366d", @@ -1453,7 +1451,7 @@ def dong_2023() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of PBMCs stimulated with interferon. """ output_file_name = "dong_2023.h5ad" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name + output_file_path = settings.datasetdir / output_file_name if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/43068190", @@ -1479,7 +1477,7 @@ def smillie_2019() -> AnnData: # pragma: no cover :class:`~anndata.AnnData` object of the dataset. """ output_file_name = "smillie_2019.h5ad.zip" - output_file_path = settings.datasetdir.__str__() + "/" + output_file_name.replace(".zip", "") + output_file_path = settings.datasetdir / Path(output_file_name).with_suffix("") if not Path(output_file_path).exists(): _download( url="https://figshare.com/ndownloader/files/43317285", @@ -1490,3 +1488,28 @@ def smillie_2019() -> AnnData: # pragma: no cover adata = sc.read_h5ad(output_file_path) return adata + + +def combosciplex() -> AnnData: # pragma: no cover + """scRNA-seq subset of the combinatorial experiment of sciplex3. + + References: + Srivatsan SR et al., Trapnell C. Massively multiplex chemical transcriptomics at + single-cell resolution. Science. 2020 Jan 3;367(6473):45-51. + doi: 10.1126/science.aax6234. Epub 2019 Dec 5. PMID: 31806696; PMCID: PMC7289078. + + Returns: + :class:`~anndata.AnnData` object of the dataset. + """ + output_file_name = "combosciplex.h5ad" + output_file_path = settings.datasetdir / output_file_name + if not Path(output_file_path).exists(): + _download( + url="https://figshare.com/ndownloader/files/44229635", + output_file_name=output_file_name, + output_path=settings.datasetdir, + is_zip=False, + ) + adata = sc.read_h5ad(output_file_path) + + return adata