cytoscan
Cell migration analysis for microfluidic ATPS channels. Detects cells, channel walls, and the fluid interface from brightfield + fluorescent microscopy frames; produces per-cell physical-coordinate, distance, and category data ready for downstream analysis in Excel / MATLAB / Python.
Install
pip install cytoscan
Quickstart
cytoscan run my_experiment # scaffold dir + config, then run the full pipeline
cytoscan gui # launch the streamlit GUI (pip install 'cytoscan[gui]')
cytoscan version # version + dependency info
On the first invocation against a fresh directory, run will:
- Create
my_experiment/if it doesn't exist - Drop a default
config.yamlat the root - Create
input/{brightfield,fluorescent,mixed}/and sort any loose.tiffiles at the root into the correct category by filename pattern - Run the full pipeline if the inputs are present, otherwise exit with a message telling you to drop frames in and rerun
Outputs
All results land in my_experiment/output/:
cells.csv— one row per detected cell: pixel + µm coordinates, distance to interface, side (peg/dex), category (int / int_peg / int_dex / outside)frames.csv— one row per frame: cell counts by category, interface geometry summary, validity flagsinterface.csv— long-format interface samples for downstream curve analysissummary.txt— human-readable run summaryvisuals/*.png— per-frame overlays of cells, channel walls, and interface
Logging and verbosity
Three global flags, usable in any position (before or after the subcommand):
-v,--verbose— DEBUG output: per-frame diagnostics and algorithm internals-q,--quiet— WARNING-and-up only; silences INFO progress messages--log-file PATH— also write a full DEBUG-level, timestamped log toPATH(uncolored)
Configuration
Every run is driven by <experiment>/config.yaml:
Required:
research—pixel_size_um,channel_width_um, ... (defines the physical experiment)
Optional (defaults set by developer):
cell_detection—threshold(fluorescent cell detection)channel_detection— wall and interface detection parametersflagging— quality-gate thresholds (anchor strength, signal ratio, residual MAD)analysis—interface_band_um,transition_band_um(categorization bands)export_visuals,export_data— output toggles
Citing
If cytoscan helps your research, please cite the archived release:
McKee, M. (2026). cytoscan: Cell migration analysis for microfluidic ATPS channels. Zenodo. https://doi.org/10.5281/zenodo.20034555
A CITATION.cff is included for tools like Zotero and Mendeley.
Acknowledgements
Built for the Sun Lab at UTSA by Mateo McKee.
Metadata
Release files for cytoscan 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cytoscan-0.2.1.tar.gz | 40.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cytoscan-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 82.7 kB
Release files / cytoscan-0.2.1.tar.gz
| Download URL | cytoscan-0.2.1.tar.gz |
|---|---|
| Size | 40.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a4592e1f0340f08dcf8fb970c18e412d17fddef169b16b43e8c0772c75854151
|
|
BLAKE2b-256 checksum How to use checksums |
f6e4700309610123a296e3e812fcd8738ff185ea1214989f929871df6036711a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 29, 2026.
Transparency logRelease files / cytoscan-0.2.1-py3-none-any.whl
| Download URL | cytoscan-0.2.1-py3-none-any.whl |
|---|---|
| Size | 42.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9012d09a8289dbf522933baa50bacc0695ff84bfaf5fa742d198e7840bc9420
|
|
BLAKE2b-256 checksum How to use checksums |
4b41a40ff5d319027dc0c8dac29982d3f45e21a0f93c89a592e29838f71468a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 29, 2026.
Transparency log