cytoGateR Python
This is the Python implementation of cytoGateR. It uses an AnnData object
and keeps the R function names, parameter names, and defaults where Python
syntax permits.
Implemented modules include:
- marker GMMs, soft gating, and tree gating;
- hierarchical reference construction and recursive hierarchical kNN;
- weighted kNN consensus cleaning and prediction;
- random-forest consensus cleaning and prediction;
- optional PyTorch training and prediction;
- confidence labels, cutoffs, F1, confusion, and agreement metrics;
- probability and spatial uncertainty;
- Matplotlib spatial, marker, label, metric, and tree plots.
Installation
Install the latest release from PyPI:
pip install cytogater
Plotting, neural-network, and notebook support are available as optional extras:
pip install 'cytogater[plot]'
pip install 'cytogater[torch]'
pip install 'cytogater[notebook]'
To install from source for development, clone the repository and create the provided Conda environment:
git clone https://github.com/SydneyBioX/cytoGateR.git
cd cytoGateR/python
conda env create -f environment.yml
conda activate cytogater-python
pytest
Data layout
Python AnnData stores cells in rows and markers in columns. Put the expression
matrix used by the R assay_name = "exprs" default in:
adata.layers["exprs"]
The lineage table is a pandas data frame with cell_type, pos_markers, and
neg_markers columns. The marker columns contain Python lists.
Example
import pandas as pd
import cytogater
lineage_table = pd.DataFrame({
"cell_type": ["Tcell", "Bcell"],
"pos_markers": [["CD3e"], ["CD20"]],
"neg_markers": [["CD20"], ["CD3e"]],
})
result = cytogater.run_tree_gating(
adata,
lineage_table,
assay_name="exprs",
max_depth=1,
min_cells=100,
min_score=0.1,
workers=1,
)
result["hard_label"]
result["prob_mat"]
Results are returned with the same main keys as R. Labels and P_* columns are
also stored in adata.obs; probability matrices are stored in adata.obsm.
The package is intentionally flat at its public surface:
cytogater.run_soft_gating(...)
cytogater.run_tree_gating(...)
cytogater.train_custom_knn(...)
cytogater.train_custom_randomforest(...)
cytogater.calculate_uncertainty(...)
The implementations are also grouped under cytogater.gating,
cytogater.models, cytogater.metrics, cytogater.uncertainty, and
cytogater.plotting.
R compatibility note
The Python implementation uses a deterministic two-component Gaussian-mixture
fit. R uses mclust, so fitted cutoffs can differ slightly even though the
pipeline, parameters, defaults, scoring, and output structure are aligned.
The Python lambda_ argument corresponds to the R lambda argument because
lambda is reserved syntax in Python. num_trees corresponds to R's
num.trees; train_custom_randomforest() also accepts **{"num.trees": 200}.
Run tests with:
cd cytoGateR/python
pytest
Metadata
Release files for cytogater 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cytogater-0.1.3.tar.gz | 33.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cytogater-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 62.9 kB
Release files / cytogater-0.1.3.tar.gz
| Download URL | cytogater-0.1.3.tar.gz |
|---|---|
| Size | 33.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c3d5f4e0cf12f8430430ae469e35356b9bd27b07d66fc3876be3c9b2a6e8c598
|
|
BLAKE2b-256 checksum How to use checksums |
2d23ddacd1ef59768aca2a643e8bb74bd6af287639a1d465ac81cfb35cdd056c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / cytogater-0.1.3-py3-none-any.whl
| Download URL | cytogater-0.1.3-py3-none-any.whl |
|---|---|
| Size | 29.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
585b246f041707f3892ebfad54de958b5e0fbd98f4d9fef00d96bc3523eb72db
|
|
BLAKE2b-256 checksum How to use checksums |
451e3d3769bacf5b544e77ef9f96331cd7d1185e5bef3e1ac1535a683b01a29c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|