CI Test Import Test Build PyPI
Note: this package is in early stages of development. (manuscript in prep)
scLoop is a library to identify statistically significant loops in single-cell RNA-seq data. In brief, it bootstraps the data points and matches loops across the bootstrapped samples through both image homology and topological equivalence, which assigns confidence to individual loops in the dataset. In addition, it supports cross datasets loop matching. The core computation routine is compiled and parallelized.
import scloop as scl # Preprocess anndata scl.pp.prepare_adata(adata, downsample=True, n_downsample=500) # Identify statistically significant loops scl.tl.find_loops(adata, ...) # Compute trajectories, gene trends, and important features of each loop scl.tl.analyze_loops(adata, ...) # Match loops across datasets scl.tl.match_loops([adata1, adata2, ...], ...)
make build
or
make rebuild
make sync
or
make full-sync
to prevent partial compilation of some modules
Note: this package is in early stages of development. The current build will have issues.
pip install scloop
Feel free to contribute (prs, issues, discussions, ...)
src/scloop/
├── analyzing
│ ├── bootstrap.py
│ ├── feature_selection.py
│ ├── gene_trend.py
│ ├── hodge.py
│ ├── __init__.py
│ └── stats.py
├── benchmarking
│ ├── benchmarking_slicer.R
│ ├── datasets.py
│ ├── hf_registry.yaml
│ ├── __init__.py
│ ├── install_r_packages.R
│ ├── lle_1.1.tar.gz
│ ├── renv
│ │ ├── activate.R
│ │ ├── library
│ │ ├── settings.json
│ │ └── staging
│ ├── renv.lock
│ ├── SLICER
│ │ ├── data
│ │ ├── DESCRIPTION
│ │ ├── man
│ │ ├── NAMESPACE
│ │ ├── R
│ │ ├── README.md
│ │ ├── SLICER.Rproj
│ │ └── vignettes
│ ├── slicer_results.csv
│ └── splatter
│ ├── codecov.yml
│ ├── DESCRIPTION
│ ├── index.md
│ ├── inst
│ ├── LICENSE
│ ├── man
│ ├── NAMESPACE
│ ├── NEWS.md
│ ├── pkgdown
│ ├── _pkgdown.yml
│ ├── R
│ ├── README.md
│ ├── tests
│ └── vignettes
├── computing
│ ├── boundary.py
│ ├── divergence.py
│ ├── embedding.py
│ ├── hodge_decomposition.py
│ ├── homology.py
│ ├── __init__.py
│ ├── loops.py
│ ├── matching.py
│ └── utils.py
├── data
│ ├── analysis_containers.py
│ ├── base_components.py
│ ├── boundary.py
│ ├── constants.py
│ ├── containers.py
│ ├── __init__.py
│ ├── metadata.py
│ ├── ripser.cpp
│ ├── ripser.hpp
│ ├── ripser_lib.cpp
│ ├── ripser_lib.pyx
│ ├── types.py
│ └── utils.py
├── __init__.py
├── io
│ └── __init__.py
├── matching
│ ├── cross_dataset.py
│ ├── data_modules.py
│ ├── __init__.py
│ ├── mlp.py
│ └── nf.py
├── plotting
│ ├── _cross_match.py
│ ├── custom_colormaps.py
│ ├── _hodge.py
│ ├── _homology.py
│ ├── __init__.py
│ ├── _trajectory.py
│ └── _utils.py
├── preprocessing
│ ├── delve
│ │ ├── delve.py
│ │ ├── __init__.py
│ │ └── kh.py
│ ├── downsample.py
│ ├── __init__.py
│ └── prepare.py
├── py.typed
├── tools
│ ├── _cross_match.py
│ ├── __init__.py
│ └── _loops.py
└── utils
├── denoise
│ ├── __init__.py
│ ├── Sanity
│ ├── Sanity.cpp
│ ├── Sanity_py.py
│ └── Sanity.pyx
├── distance_metrics
│ ├── discrete-frechet-distance
│ ├── frechet.cpp
│ ├── frechet_py.py
│ ├── frechet.pyx
│ └── __init__.py
├── __init__.py
├── linear_algebra_gf2
│ ├── GF2toolkit
│ ├── gf2toolkit_lib.cpp
│ ├── gf2toolkit_lib.pyx
│ ├── gf2toolkit_wrapper.cpp
│ ├── gf2toolkit_wrapper.hpp
│ ├── __init__.py
│ ├── m4ri_lib.c
│ └── m4ri_lib.pyx
├── logging.py
└── pvalues.py