Recent Releases of https://github.com/biop/qupath-extension-cellpose
https://github.com/biop/qupath-extension-cellpose - Migration to QuPath 0.6.x
First version compatible with QuPath 0.6.x
- Upgrade build tools from groovy to kotlin
- Update gradle version
- Remove deprecated methods from QuPath 0.5.x
- Jupyter Notebook
Published by Rdornier 8 months ago
https://github.com/biop/qupath-extension-cellpose -
This is not a new release ; just to update the Soucre code package that wasn't pushed yet.
- Jupyter Notebook
Published by Rdornier 8 months ago
https://github.com/biop/qupath-extension-cellpose - Last QuPath-0.5.x compatible version
This is the last version of the extension which is compatible with QuPath 0.5.x. Next versions will only be compatible with QuPath 0.6.x
- fix #61 by adding a new field for cellpose-sam
- fix #62 by initializing with empty strings instead of
null
- Jupyter Notebook
Published by Rdornier 8 months ago
https://github.com/biop/qupath-extension-cellpose - Add an option to skip testDir
- Fixes #58
- Update Javadoc
- Jupyter Notebook
Published by Rdornier 10 months ago
https://github.com/biop/qupath-extension-cellpose - Add an option to not resave the training images
Fixes #56
- Jupyter Notebook
Published by Rdornier 10 months ago
https://github.com/biop/qupath-extension-cellpose - Improved label image reading and code linting
From several forum posts, it was clear that for large tiles and large fields of view, the extension was having issues.
This caused tiles to be empty and the detections being incomplete.
It seems like it was caused by the way we used to read objects in using JTS.
This new update changes the way label images are converted to QuPath objects by using the same strategy as LaRoMe's Labels2Rois
https://github.com/BIOP/ijp-LaRoMe/blob/master/src/main/java/ch/epfl/biop/ij2command/Labels2Rois.java
Fundamentally, this should not change the way cells are detected now vs before, though no testing has been done. One thing to note is that if Cellpose ever allows for objects with holes to be detected, then the current strategy will need to be changed again.
What's Changed
- Refactor 092024 by @lacan in https://github.com/BIOP/qupath-extension-cellpose/pull/52
Full Changelog: https://github.com/BIOP/qupath-extension-cellpose/compare/v0.9.5...v0.9.6
- Jupyter Notebook
Published by lacan over 1 year ago
https://github.com/biop/qupath-extension-cellpose - Bugfix
As per https://forum.image.sc/t/a-bug-in-cellpose-for-qupath-extension-0-9-4/100641/5
This reverts the touching object handling that was broken in the previous version.
this is the information from the previous version
This new update adresses some issues linked to cellpose failing on large tiles, most likely linked to there being overly small tiles being created in some cases.
This was adressed for now by either ignoring images that are too small (which should be included in the overlap between tiles anyway) and by adding a check in case reading a label image has an error, which initially caused the extension to simply crash.
A new builder parameter setOutputModelName(String outputName) allows you to rename the resulting cellpose model after training.
Since Cellpose 3.0, cellpose models can have arbitrary names, so the extension renames the model to a *.cpm (Cellpose Model) with the timestamp of creation.
Feedback welcome
- Jupyter Notebook
Published by lacan over 1 year ago
https://github.com/biop/qupath-extension-cellpose - Small updates and error catching
This new update adresses some issues linked to cellpose failing on large tiles, most likely linked to there being overly small tiles being created in some cases.
This was adressed for now by either ignoring images that are too small (which should be included in the overlap between tiles anyway) and by adding a check in case reading a label image has an error, which initially caused the extension to simply crash.
A new builder parameter setOutputModelName(String outputName) allows you to rename the resulting cellpose model after training.
- Jupyter Notebook
Published by lacan over 1 year ago
https://github.com/biop/qupath-extension-cellpose - Parallel object reader, normalization bugfix gpu disable option and more
Welcome to a new release with the following important changes
- Adds
useGPU( boolean )to the builder to disable GPU (Enabled by default) - Fixes a bug found and corrected by @tfehlmann where
ops were being re-created per image, which caused an error during image saving - Adds better error handling when no candidate files are present
- Adds
readResultsAsynchronously()to the builder, which allows the extension to read the resulting labeled images for each tile as cellpose processes them, potentially making the extension faster - Changes the logic for the
VirtualEnvironmentRunnerwhen using CONDA (Not available as such within the extension) as per a suggestion by @loicsauteur - Allows
pixelSize()to accept values smaller than the original pixel size in case you want to upsample your data before sending it to cellpose - Uses a new log parser in order to parlse omnipose and cellpose v3 logs when training
What's Changed
- Ensure that operations are the same when processing multiple images by @tfehlmann in https://github.com/BIOP/qupath-extension-cellpose/pull/44
- Bugfixes and update to Cellpose 3 logging by @lacan in https://github.com/BIOP/qupath-extension-cellpose/pull/46
New Contributors
- @tfehlmann made their first contribution in https://github.com/BIOP/qupath-extension-cellpose/pull/44
Full Changelog: https://github.com/BIOP/qupath-extension-cellpose/compare/v0.9.2...v0.9.3
- Jupyter Notebook
Published by lacan almost 2 years ago
https://github.com/biop/qupath-extension-cellpose - Release for first publication in Zenodo
This is not a release per se, but will trigger Zenodo to generate a DOI for the software.
- Jupyter Notebook
Published by lacan almost 2 years ago
https://github.com/biop/qupath-extension-cellpose - Experimental faster label image read
Adds an option readResultsAsynchronously() in the cellpose builder that, when activated, tries to
- Create a file Watcher on the folder where cellpose is supposed to write the predicted labels
- On new files being created, calls the image to label conversion while the prediction continues for the rest of the tiles
This is experimental, feel free to test it, with no promises
- Jupyter Notebook
Published by lacan almost 2 years ago
https://github.com/biop/qupath-extension-cellpose - QuPath 0.5.0 compatibility
The new cellpose extension with QuPath 0.5.0 support.
Also includes a new version of que Quality Control Python script, so please update that one too
- Jupyter Notebook
Published by lacan about 2 years ago
https://github.com/biop/qupath-extension-cellpose - Small bugfixes, custom folders export, script templates
This new release adds the following
1. You can define output folders for all things now when invoking the builder:
- groundTruthDirectory(java.io.File groundTruthDirectory) Specify the training directory where thes test and train images will be added
- tempDirectory(java.io.File groundTruthDirectory) Specify the temporary directory when using cellpose inference
- modelDirectory(java.io.File groundTruthDirectory) Specify the where the model will be saved
- the Quality Control results remain inside the model directory
2. an Omnipose internal variable name had a typo and was fixed. You will have to re-enter the path in in your Edit > Preferences if you are using Omnipose
3. Script templates: Training and detection script templates are now in Extensions > Cellpose, Just like the StarDist extension (Thank you @petebankhead)
4. Names for Cellpose preferences were changed to empahsise how we need the full path to python.exe
Happy Cellposing
- Jupyter Notebook
Published by lacan over 2 years ago
https://github.com/biop/qupath-extension-cellpose - Bugfixes and the return of Omnipose
With the current versions of Cellpose and Omnipose, we have gotten them to play nice enough with each other and drafter this new release with a (small) breaking change.
Python Path is now the only available way of calling your cellpose or omnipose installation. You will need to update your Preferences under Cellpose/Omnipose
This follows with what was done for TrackMate, and simplifies our life so we can be conda/mamba/venv agnostic. This has been tested on Windows and Mac with no problems. We of course welcome feedback!
The documentation has been updated to reflect this change.
A small bug where preprocessing steps were not taken into account on training images was also fixed
- Jupyter Notebook
Published by lacan almost 3 years ago
https://github.com/biop/qupath-extension-cellpose - Tile creation rollback
This update simply adds a rollback on how tiles were computed for cellpose.
When QuPath 0.4.1 came out, the logic of the tiles was rewritted based on the StarDist Extension, which would force tiles to be a particular size, with optional padding. In our case, this tended to create tiles that were coering way more image space than necessary, creating large overhead.
So with this update, we have reverted back to the older way of doing it.
This should have no change, or perhaps very minor changes in the global normalization numbers and in cellpose normalization, because of the change in tile size and thus contents.
- Jupyter Notebook
Published by lacan about 3 years ago
https://github.com/biop/qupath-extension-cellpose - QuPath v0.4.0 Flavored Release
This release implements the awesome new changes that came with the release of QuPath 0.4.0 and the updated StarDist extension for it.
And this has also led to a couple of small modifications
- Some Cellpose builder methods were removed in favor or a more flexible way of passing parameters
- The new version of the extension only supports Cellpose versions above 2.0
- You can now add any cellpose parameter using
addParameter()in the builder - There is now a possibility for global normalization!
Check out the updated readme for further information and do not hesitate to go to https://forum.image.sc to discuss usage issues.
- Jupyter Notebook
Published by lacan about 3 years ago
https://github.com/biop/qupath-extension-cellpose - Object overlap, quality of life updates and new training option
This update fixes an issue in the way objects were being detected and re-added to QuPath.
It now follows much more closely what is done in the StarDist Extension and should result in fewer issues.
Now the Z and T positions are also appended to the names of the exported images. Useful for 3D and T stacks
Adds the mintrainingmasks option to help avoid cellpose from excluding images with less than 5 annotations during training
Finally, it adds a bit more verbosity. The full command used to run or train is output in such a way that it can be run from the command line by copy-paste
You should unzip the contents of the file below into your extensions directory
- Jupyter Notebook
Published by lacan over 3 years ago
https://github.com/biop/qupath-extension-cellpose - Improved Integrated Quality Control
This release builds on v0.4.0 #https://github.com/BIOP/qupath-extension-cellpose/commit/7365020597b0f509f83636678ff36f25ee9c1ab1 following comments by @romainGuiet to integrate the whole QC directly rather than run it separately (Which no-one will ever do until it's too late 😅).
Improvements
Quality control is perfomed after training provided that:
- You added the
scikit-imagedependency to your cellpose installation - You copy
run-cellpose-qc.pyinto your QuPath extensions folder
Read the updated ReadMe to see how to do these installation steps. Here is an example gif in real time (only 100 epochs though)

Possibility to save the training graph as a PNG in your QuPath project's QC folder
On top of showing you the training graph if you request it after training using showTrainingGraph(),
you can also choose to save it but not show it using showTrainingGraph(boolean show, boolean save)
Updated JavaDoc and ReadMe to account for the new features
As ususal, JavaDoc is here: https://biop.github.io/qupath-extension-cellpose/qupath/ext/biop/cellpose
Always happy to receive comments and suggestions!
- Jupyter Notebook
Published by lacan over 3 years ago
https://github.com/biop/qupath-extension-cellpose - Adds Quality Control Notebook and Training now also saves Validation Predictions
Please see the forum post for more information https://forum.image.sc/t/qupath-extension-cellpose-update-validation/71320
Also adds a fix to how the QuPath Proejct is recovered when training from another thread (Like when creating a button dynamically)
- Jupyter Notebook
Published by lacan over 3 years ago
https://github.com/biop/qupath-extension-cellpose - Project path inference update
Following the discussions on the Image.sc forum https://forum.image.sc/t/create-a-shortcut-button-to-run-a-script/71195
And the PR #14 by @zindy, a better way to figure out where the project directory has been implemented.
This release corrects an incorrect overlap being set to 0 instead of the default due to my messing up boxed and unboxed doubles and ints.
- Jupyter Notebook
Published by lacan over 3 years ago
https://github.com/biop/qupath-extension-cellpose - Improved documentation, the return of normalization
This release tackles the following aspects
- Erroneous message informing that an unimplemented 'global normalization' was being performed on downsampled data
- Update to documentation with Cellpose installation instructions and practical information
- Adds an updated JavaDoc
- Adds the option to normalize in QuPath by clipping values below 0.0 and above 1.0 after calling
normalizePercentiles(double min, double max)in the builder.
Note This implies that the order of
normalizePercentiles(double min, double max)andpreprocess()is important. Always finish with the normalization if using `preprocess()
Please read the updated documentation for some more small details
- Jupyter Notebook
Published by lacan over 3 years ago
https://github.com/biop/qupath-extension-cellpose - New Way to call cellpose
Inspired by the TrackMate-Cellpose and the following issue #12
This update adds the possibility to simply add the complete path to your python executable in order to run cellpose.

This also includes a fix that allows QuPath projects to have whitespaces in their path on Linux/MacOS .
- Jupyter Notebook
Published by lacan over 3 years ago
https://github.com/biop/qupath-extension-cellpose - Cellpose 2.0, with fewer bugs
Thanks to the community some bugs were spotted and fixed.
- Jupyter Notebook
Published by lacan almost 4 years ago
https://github.com/biop/qupath-extension-cellpose - Improved training verbose support
This fixes training when using cellpose 1.0 as there was no output
- Jupyter Notebook
Published by lacan about 4 years ago
https://github.com/biop/qupath-extension-cellpose - Support for Cellpose 1.0
Adds option to Cellpose preferences for cellpose 1.0
Adds --verbose flag when using cellpose 1.0
Removes --resample flag
- Jupyter Notebook
Published by lacan about 4 years ago
https://github.com/biop/qupath-extension-cellpose - QuPath Compatibility with 0.3.2 and logging display
This small update fixes a slowdown in saving images caused by the new way the Bioformats reader is setup.
Furthermore this update includes an easier way to see and display the training of your cellpose model.
After building your cellpose object and after running the training with train(), you can now do the following
1. cellpose.getOutputLog() which will return a String array with all the logged steps from cellpose. You could save these as a file if you want.
2. Call cellpose.getTrainingResults() which parses the raw output log and returns a ResultsTable with the losses per epoch
3. Call cellpose.showTrainingGraph(), which displays a simple JavaFX plot of the Training and Validation Losses per Epoch.
The cellpose.getOutputLog() also would work when doing prediction instead of training. The others would simply be empty.
Happy training
- Jupyter Notebook
Published by lacan about 4 years ago
https://github.com/biop/qupath-extension-cellpose - Overhaul, Javadocs and new training options
Adds much documentation and a rework of the builder class.
Please check the documentation to spot the differenced in this version and do not hesitate to file Issues here or on https://forum.image.sc
- Jupyter Notebook
Published by lacan about 4 years ago
https://github.com/biop/qupath-extension-cellpose - Omnipose implementation
This new version uses cellpose/omnipose instead, which has an updated CLI.
This means that your previous cellpose environment will no longer work
If you have not done it before, please update cellpose from their instructions or create a new virtual environment for omnipose as per https://github.com/MouseLand/cellpose
- Jupyter Notebook
Published by lacan about 4 years ago
https://github.com/biop/qupath-extension-cellpose - Fixes overlap issues and changes how training is handled
- Jupyter Notebook
Published by lacan over 4 years ago
https://github.com/biop/qupath-extension-cellpose - Adds Training capability and demo scripts
- Jupyter Notebook
Published by lacan over 4 years ago