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

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.1
File Size Uploaded
cytogater-0.1.1.tar.gz 33.7 kB Details

Built distribution (wheel)

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

Total release size: 63.1 kB

Release files / cytogater-0.1.1.tar.gz

Download URL cytogater-0.1.1.tar.gz
Size 33.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5f82c5f488bb8076fe58160235298629d77ac449e9db92f2f38a943bcdcb0cfe
BLAKE2b-256 checksum
How to use checksums
92019a787bcc4a76fa06a4aae9dd296b85db6ccb991d6bfd9c8071ec312b4655
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.1-py3-none-any.whl

Download URL cytogater-0.1.1-py3-none-any.whl
Size 29.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc97543df92a83e2f7ad678e1a088bc8bee711a43a9e5552af1d134c48f835e8
BLAKE2b-256 checksum
How to use checksums
0c2f38c6ba17c79ff3832a3151d7bcb771efed61218e0d7450bb3c324cb020de
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

0.1.2

2 release files

This release

0.1.1 This release

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