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

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.3
File Size Uploaded
cytogater-0.1.3.tar.gz 33.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cytogater 0.1.3
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

0.1.4

2 release files

This release

0.1.3 This release

2 release files

0.1.2

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