Metadata-Version: 2.4
Name: zeztz-flow
Version: 0.1.0
Summary: Self-contained flow cytometry analysis helpers with a slim vendored Cytoflow runtime.
License-Expression: GPL-2.0-or-later
License-File: LICENSE.txt
License-File: THIRD_PARTY_NOTICES.md
Author: Xiaoyu Wu
Requires-Python: >=3.9
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Provides-Extra: tables
Requires-Dist: bottleneck
Requires-Dist: marimo
Requires-Dist: matplotlib (>=3.8)
Requires-Dist: mpl-scatter-density
Requires-Dist: natsort
Requires-Dist: numba (>=0.59)
Requires-Dist: numexpr
Requires-Dist: numpy (>=1.26)
Requires-Dist: pandas (>=2.1)
Requires-Dist: scikit-learn (>=1.3)
Requires-Dist: scipy (>=1.11)
Requires-Dist: seaborn (>=0.13)
Requires-Dist: six
Requires-Dist: statsmodels (>=0.14)
Requires-Dist: tabulate ; extra == "tables"
Requires-Dist: traits
Description-Content-Type: text/markdown

# zeztz-flow

`zeztz-flow` is a 96-well plate flow-cytometry FCS analysis package.
It bundles Xiaoyu's analysis helpers with a vendored Cytoflow runtime
subset — no separate `cytoflow` installation needed.

Features: FCS import, metadata assignment, outlier removal, cell/doublet
gating, histograms, density plots, well/row/column subsetting, and 96-well
median export.

The vendored subset includes: FCS import, range/polygon/density gates,
autofluorescence and linear bleedthrough correction, histogram/density
views, and `linear`/`log` scales. The compiled logicle extension was
removed — pure Python only.

## Installation

```bash
mamba env create -f environment.yml
mamba activate zeztz-flow
```

Or in an existing Python >=3.9 environment: `pip install -e .`

## Quick Start

```python
import matplotlib.pyplot as plt
import zeztzflow as flow

expr = flow.zeztz_exp("path/to/fcs_directory")

cells = flow.auto_gate_FSC_SSC(expr.expr, keep=0.6)
single_cells = flow.auto_gate_FSC_A_H(cells, keep=0.7)

flow.density_plot(single_cells, xchannel="FSC 488/10-A",
                  ychannel="Alexa 647-A", xscale="log", yscale="log")
expr.median_96well(single_cells, channel="Alexa 647-A")

plt.show()
```

## Documentation

- [PROJECT_GUIDE.md](PROJECT_GUIDE.md) — API reference, workflows, testing, publishing
- [AGENTS.md](AGENTS.md) — guide for AI coding agents
- [llms.txt](llms.txt) — machine-readable project map

## Testing

```bash
MPLCONFIGDIR=/tmp/mplconfig python test/package_smoke_test.py
```

## License

GPL-compatible. See [LICENSE.txt](LICENSE.txt) and
[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).

