Metadata-Version: 2.4
Name: fusionx
Version: 1.0.2
Summary: Segmentation and counting nuclei of fused cells
Author: Suman Khan
Author-email: suman.khan@weizmann.ac.il
License: GPL-3.0-or-later
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: opencv-python==4.10.0.84
Requires-Dist: numba==0.60.0
Requires-Dist: numpy==1.26.4
Requires-Dist: pandas==2.2.2
Requires-Dist: pycocotools==2.0.8
Requires-Dist: scipy==1.14.0
Requires-Dist: tifffile==2024.8.10
Requires-Dist: torch==2.6.0
Requires-Dist: torchvision==0.21.0
Requires-Dist: tqdm==4.66.5
Requires-Dist: requests==2.32.5
Requires-Dist: cellpose==3.0.11
Requires-Dist: pyarrow==17.0.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# FusionX

**FusionX** counts the nuclei inside every cell and reports the full distribution of mononucleated, binucleated, and syncytial states, not just a fusion index.

* [Documentation](https://github.com/herrComputerVision/FusionX/wiki/Hello-World)
* [Install](https://github.com/herrComputerVision/FusionX/wiki/Install)
* [Tutorial](https://github.com/herrComputerVision/FusionX/wiki/Tutorial)

## Highlights

* **CellX:** A [SAM](https://github.com/facebookresearch/segment-anything) model fine tuned on plasma membrane images segments each cell, prompted by nuclear positions so that every boundary is anchored to a nucleus.
* **Cellpose:** Nuclei are detected with [Cellpose](https://github.com/mouseland/cellpose), which supplies the positions that prompt CellX.
* **Syncytium detection:** Nuclei sharing one plasma membrane are recorded as a single cell, however many there are.
* **Full distribution:** Every cell is reported with its nuclei count and its size, so the fusion index is one statistic among many rather than the only one available.
* **Standard dyes only:** A nuclear stain and a plasma membrane stain are all that is needed, with no reporter assay, genetic manipulation, or assumptions about cell shape.
* **Automatic recovery:** Nuclei missed on the first pass are segmented again and kept only when the model is confident.
* **Unattended batches:** Whole experiment folders are processed in a single run.

## Requirements

* **OS:** Windows, Linux, or macOS
* **Python:** 3.10
* **Disk space:** 5 GB minimum
* **GPU:** Used when available, CPU otherwise

## Dependencies

Installed via `pip`:

* `cellpose` (3.0.11)
* `numba` (0.60.0)
* `numpy` (1.26.4)
* `opencv-python` (4.10.0.84)
* `pandas` (2.2.2)
* `pyarrow` (17.0.0)
* `pycocotools` (2.0.8)
* `requests` (2.32.5)
* `scipy` (1.14.0)
* `tifffile` (2024.8.10)
* `torch` (2.6.0)
* `torchvision` (0.21.0)
* `tqdm` (4.66.5)

## License

[GNU General Public License v3.0](https://github.com/herrComputerVision/FusionX/blob/main/LICENSE)
