Metadata-Version: 2.4
Name: CytoTable
Version: 1.1.2
Summary: Transform CellProfiler and DeepProfiler data for processing image-based profiling readouts with Pycytominer and other Cytomining tools.
License: BSD-3-Clause License
License-File: LICENSE
Keywords: python,cellprofiler,single-cell-analysis,way-lab
Author: Cytomining Community
Requires-Python: >=3.9,<3.14
Classifier: License :: Other/Proprietary License
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
Requires-Dist: anndata (<0.12.2) ; python_version < "3.11"
Requires-Dist: anndata (>=0.12.2) ; python_version >= "3.11"
Requires-Dist: botocore (>=1.34.133,<2.0.0)
Requires-Dist: cloudpathlib[all,s3] (>=0.18,<0.24)
Requires-Dist: duckdb (>=0.10.1)
Requires-Dist: numpy (<=1.24.4) ; python_version < "3.11"
Requires-Dist: numpy (>=1.26.0) ; python_version >= "3.11"
Requires-Dist: parsl (>=2023.9.25)
Requires-Dist: pyarrow (>=13.0.0)
Requires-Dist: scipy (<1.12.0) ; python_version < "3.9"
Requires-Dist: scipy (>=1.12.0,<2.0.0) ; python_version >= "3.9"
Requires-Dist: zarr (<3.1.1) ; python_version < "3.11"
Requires-Dist: zarr (>=3.1.1) ; python_version >= "3.11"
Project-URL: Documentation, https://cytomining.github.io/CytoTable/
Project-URL: Repository, https://github.com/cytomining/CytoTable
Description-Content-Type: text/markdown

<img height="200" src="https://raw.githubusercontent.com/cytomining/cytotable/main/logo/with-text-for-light-bg.png?raw=true">

# CytoTable

![PyPI - Version](https://img.shields.io/pypi/v/cytotable)
[![Build Status](https://github.com/cytomining/cytotable/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/cytomining/cytotable/actions/workflows/test.yml?query=branch%3Amain)
[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)
[![Preprint DOI badge](https://img.shields.io/badge/Preprint_DOI-10.1101/2025.06.19.660613-blue)](https://doi.org/10.1101/2025.06.19.660613)
[![Software DOI badge](https://img.shields.io/badge/Software_DOI-10.5281/zenodo.14888111-blue)](https://doi.org/10.5281/zenodo.14888111)

![dataflow](https://raw.githubusercontent.com/cytomining/cytotable/main/docs/source/_static/dataflow.svg?raw=true)
_Diagram showing data flow relative to this project._

## Summary

Image-based profiling often entails preparing data for analysis by transforming the outputs of image analysis tools into a consistent, analysis-ready format.
CytoTable streamlines analyses by harmonizing CellProfiler (`.csv` or `.sqlite`), cytominer-database (`.sqlite`), DeepProfiler (`.npz`), or other sources such as IN Carta output data at scale.
This helps biologists by lowering the barrier between image acquisition and data interpretation, enabling them to focus on biological insights rather than file formats or data wrangling.

CytoTable creates Parquet or AnnData files for both independent analysis and for input into [Pycytominer](https://github.com/cytomining/pycytominer).
The output files (such as [Parquet](https://parquet.apache.org/) and [AnnData](https://github.com/scverse/anndata) file formats) have a documented data model, including referenceable schema where appropriate (for validation within Pycytominer or other image-based profiling projects).

> 📔🧑‍🏫 Check out our demonstration notebook for a one-stop reference of how to use CytoTable.
> [CytoTable mise en place (general overview)](https://cytomining.github.io/CytoTable/examples/cytotable_mise_en_place_general_overview.html)
>
> 📓☁️ Consider also checking out our demonstration notebook covering how to use cloud-based data sources with CytoTable.
> [CytoTable from the cloud (cloud-based overview)](https://cytomining.github.io/CytoTable/examples/cytotable_from_the_cloud.html)

The name for the project is inspired by:

- __Cyto__: "1. (biology) cell." ([Wiktionary: Cyto-](https://en.wiktionary.org/wiki/cyto-))
- __Table__:
  - "1. Furniture with a top surface to accommodate a variety of uses."
  - "3.1. A matrix or grid of data arranged in rows and columns." <br> ([Wiktionary: Table](https://en.wiktionary.org/wiki/table))

## Installation

Install CytoTable from [PyPI](https://pypi.org/) or from source:

```shell
# install from pypi
pip install cytotable

# install directly from source
pip install git+https://github.com/cytomining/CytoTable.git
```

## Contributing, Development, and Testing

We test CytoTable using `ubuntu-latest` and `macos-latest` [GitHub Actions runner images](https://github.com/actions/runner-images#available-images).

Please see [contributing.md](docs/source/contributing.md) for more details on contributions, development, and testing.

## Relationship to other projects

CytoTable focuses on image-based profiling data harmonization and serialization.
At scale, CytoTable transforms data into file formats which can be directly integrated with:

**Please let us know how you use CytoTable (we'd love to add your project to this list)**!

- [Pycytominer](https://github.com/cytomining/pycytominer) for the bioinformatics pipeline for image-based profiling.
- [coSMicQC](https://github.com/cytomining/coSMicQC) for quality control.
- [CytoDataFrame](https://github.com/cytomining/CytoDataFrame) for interactive visualization of profiles with single cell images.

## References

- [Pycytominer](https://github.com/cytomining/pycytominer)
- [cytominer-database](https://github.com/cytomining/cytominer-database)
- [DeepProfiler](https://github.com/cytomining/DeepProfiler)
- [CellProfiler](https://github.com/CellProfiler/CellProfiler)
- [cytominer-eval](https://github.com/cytomining/cytominer-eval)

