py-CytoTRACE
A Python port of CytoTRACE (Gulati et al. Science 2020) — single-cell developmental potential / stemness prediction from gene counts.
- Pure NumPy / SciPy implementation, no Rcpp dependency
- Core algorithm: detected-gene count + most-variable-genes + GCS + NNLS + diffusion smoothing → rank-normalised score in [0, 1]
- ggplot2-python visualisation:
plot_cytotrace(scatter on embedding) +plot_cyto_genes(top-correlated genes bar)
Install
pip install pycytotrace-bio
(module name is pycytotrace.)
Quick-start
import pycytotrace
res = pycytotrace.cytotrace_run(counts) # counts: (n_genes × n_cells)
res.cytotrace # 1.0 = stem-like, 0.0 = differentiated
res.cyto_genes.head() # top genes correlated with score
from ggplot2_py import ggsave
ggsave("out.png",
plot=pycytotrace.plot_cytotrace(res, embedding=umap_coords),
width=6, height=4, dpi=120)
Function map
| Python | R | Status |
|---|---|---|
cytotrace_run |
CytoTRACE |
✅ |
CytoTRACE dataclass |
CytoTRACE() return list |
✅ |
plot_cytotrace |
plotCytoTRACE |
✅ |
plot_cyto_genes |
plotCytoGenes |
✅ |
iCytoTRACE (multi-batch integration) |
iCytoTRACE |
⏳ v0.2 |
Known limitations (v0.1)
- Batch correction (ComBat) skipped — single-batch fit only. v0.2 will add a
batch=argument that delegates to scanpy'ssc.pp.combat. - Fast-mode (subsampling for >3000 cells) not yet implemented — large datasets compute the full N×N similarity matrix, which is O(N²) memory.
- iCytoTRACE deferred to v0.2.
Citation
Gulati, G. S. et al. Single-cell transcriptional diversity is a hallmark of developmental potential. Science 367, 405–411 (2020).
License
MIT.
Metadata
Release files for pycytotrace-bio 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pycytotrace_bio-0.1.0.tar.gz | 7.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pycytotrace_bio-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.1 kB
Release files / pycytotrace_bio-0.1.0.tar.gz
| Download URL | pycytotrace_bio-0.1.0.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c6b145c8ac1cfb83f1cf10422a3ff58940d9c4125e59f9ec456a8a754d69f8c
|
|
BLAKE2b-256 checksum How to use checksums |
7cd48e9433356eac12b2c353a0fc829aeee4cabc0d1d64889763e69fdb379f78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 25, 2026.
Transparency logRelease files / pycytotrace_bio-0.1.0-py3-none-any.whl
| Download URL | pycytotrace_bio-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0540c7fb274d1d49059674d56ec3f1f1dfdd79941c107fc0f240702ff1f65c2a
|
|
BLAKE2b-256 checksum How to use checksums |
2b72a57d923c0160d47202ce7aaa70cafa4d21973ae63c7a0182940cfe68890b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 25, 2026.
Transparency log