Skip to main content

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.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cytogater 0.1.2
File Size Uploaded
cytogater-0.1.2.tar.gz 33.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cytogater 0.1.2
File Interpreter ABI Platform
cytogater-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 62.9 kB

Release files / cytogater-0.1.2.tar.gz

Download URL cytogater-0.1.2.tar.gz
Size 33.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e45482d7526a80b6b9d55e2204de45215e0fb07208eb94f000a0ad90c5bbfcea
BLAKE2b-256 checksum
How to use checksums
f52be6ab2035c535b9b83e350a713386dc42e47c2105b75940bd0564ba87c658
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.2-py3-none-any.whl

Download URL cytogater-0.1.2-py3-none-any.whl
Size 29.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c030c06b56d7ea2c87388353e4a188cf19aecb411d9a4025d4869e236c78add9
BLAKE2b-256 checksum
How to use checksums
36f62c6980c9f151b66a4641954f2bf58d271c24137f9db85bb97dd10f5b329f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

0.1.4

2 release files

0.1.3

2 release files

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page