Skip to main content

Cut Detector

License BSD-3 PyPI Python Version codecov napari hub tests

Automatic micro-tubule cut detector.

Code associated to the paper "Cut-Detector: A Tool for Automated Temporal Analysis of Late Cytokinetic Events" available from bioRxiv.

https://github.com/user-attachments/assets/2af2e1a6-adf9-4d63-a353-e190c4814d83


This napari plugin was generated with Cookiecutter using @napari's cookiecutter-napari-plugin template.

Your browser does not support the video tag.

Installation

Conda environment

It is highly recommended to create a dedicated conda environment, by following these few steps:

  1. Install an Anaconda distribution of Python. Note you might need to use an anaconda prompt if you did not add anaconda to the path.

  2. Open an Anaconda prompt as admin to create a new environment using conda. We advice to use python 3.10 and conda 23.10.0, to get conda-libmamba-solver as default solver.

conda create --name cut_detector python=3.10 conda=23.10.0
conda activate cut_detector

Package installation

Once in the dedicated environment, our package can be installed via pip:

pip install cut_detector

Alternatively, you can clone the github repo to access to playground scripts.

git clone https://github.com/15bonte/cut-detector.git
cd cut-detector
pip install -e .

GPU

We highly recommend to use GPU to speed up segmentation. To use your NVIDIA GPU, the first step is to download the dedicated driver from NVIDIA.

Next we need to remove the CPU version of torch:

pip uninstall torch

The GPU version of torch to be installed can be found here. You may choose the CUDA version supported by your GPU, and install it with conda. This package has been developed with the version 11.6, installed with this command:

conda install pytorch==1.12.1 torchvision pytorch-cuda=11.6 -c pytorch -c nvidia

Getting started

Launching napari

napari can be launched by just running napari in the terminal.

conda activate cut_detector
napari

Once open, click on Plugins > Cut Detector > Single Video.

Test video

The video test_data.tif can be downloaded from Zenodo for testing. Once downloaded, open it in napari.

Running Cut Detector

Different options can be selected in the plugin:

  • WIP

Update

To update cut-detector to the latest version, open an Anaconda prompt and use the following commands:

conda activate cut_detector
pip install cut-detector --upgrade

Definitions

Each detected cell division is labeled with one of the following categories:

  • NORMAL: Division happening as expected, where (at least) 1 micro-tubule cut is detected.
  • NO_MID_BODY_DETECTED: Along the cell division, no mid-body was detected on the MKLP1 channel. This category encompasses different cases: the detection may have failed, the mid-body may not express the fluorescence, or this may not actually be a division.
  • MORE_THAN_TWO_DAUGHTER_TRACKS: Tripolar division. This category encompasses both actual tripolar divisions and wrong identifications of daughter cells (mainly caused by segmentation issues).
  • NEAR_BORDER: Division close to the border of the image, hence ignored as it is likely to be difficult to detect micro-tubule cuts. A division is classified as NEAR_BORDER as soon as the distance between 1 detected mid-body and the border of the image is less than 20px.
  • NO_CUT_DETECTED: Division whose mid-body was detected, but with all micro-tubule bridges classified as "No cut". Likely to be at the end of the video, cells dying before the end of division, or cells going out of frame.
  • TOO_SHORT_CUT: First micro-tubule cut detected before or at 50 minutes. Ignored as this is very unlikely, so it is probably caused by a wrong division detection.

Division movies start at the maximum between:

  • Mother cell start frame
  • 10 frames before the end of metaphase

Division movies end at the minimum between:

  • Last frame of any of the daughter cells
  • Metaphase of any of the daughter cells

Contributing

Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.

Scripts required to improve any of Cut Detector tasks can be found in the folder developers.

License

Distributed under the terms of the BSD-3 license, "cut-detector" is free and open source software

Issues

If you encounter any problems, please file an issue along with a detailed description.

Citation

If you found our work useful, please consider citing:

@article{bonte2025cut,
  title={Cut-Detector: A Tool for Automated Temporal Analysis of Late Cytokinetic Events},
  author={Bonte, Thomas and Dubois, Lucas and Gagna, Paul and Dibsy, Rayane and Petrovi{\'c}, An{\dj}ela and Advedissian, Tamara and Serres, Murielle and Cuvelier, Fr{\'e}d{\'e}rique and Crouigneau, Marie and Sassoon, Nathalie and others},
  journal={bioRxiv},
  pages={2025--06},
  year={2025},
  publisher={Cold Spring Harbor Laboratory}
}

Release files for cut-detector 1.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cut-detector 1.7.0
File Size Uploaded
cut_detector-1.7.0.tar.gz 337.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cut-detector 1.7.0
File Interpreter ABI Platform
cut_detector-1.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 431.7 kB

Release files / cut_detector-1.7.0.tar.gz

Download URL cut_detector-1.7.0.tar.gz
Size 337.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f2890cbbfaee39041a0e6cc0717a4bca5220048522ac083dab7ed821c46e8d67
BLAKE2b-256 checksum
How to use checksums
eb2a9c629b1c8bb9c86f97cc4187cb54eca53c30eb40013dbdf7a2f90a6faa31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / cut_detector-1.7.0-py3-none-any.whl

Download URL cut_detector-1.7.0-py3-none-any.whl
Size 94.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e3de710b06eb165c1fac1589901fe9e4a0c42c0f3db35c99fe6ab03cd16d12e
BLAKE2b-256 checksum
How to use checksums
092aaa56d7e75ea678eab8489ba5b934c314f2002f5cfa7d3b9c651a4eceb540
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

This release

1.7.0 This release

2 release files

1.6.6

2 release files

1.6.5

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.14

2 release files

0.0.12

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.4

2 release files

0.0.3

1 release file

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