Hi all,
Due to issues with pip installation with CellProfiler on some platforms, we have released a version 4.2.6 with slightly updated dependency pins. If you are using the CellProfiler 4.2.5 application downloaded from our website, there is no need for you to update - 4.2.6 contains no changes to any module or runner code with respect to 4.2.5.
We know also that a major reason people end up needing to pip install CellProfiler is to be able to access plugins using external dependencies, such as RunCellpose and RunStarDist. We’re happy to say we’ve recently updated the plugins repository to include a version of RunCellpose that runs via Docker, so that it can run inside “built” CellProfiler downloaded from our website. To do this, one needs to 1) Install Docker (Docker Desktop is likely easiest if you prefer a no-code approach) 2) get the most up-to-date version from the plugins repository and 3) run CellProfiler with Docker running on your machine, and the plugin set to use Docker for Cellpose. See this link for more instructions. We plan to roll this approach out to at least some other external-dependency-requiring-plugins, with likely RunStarDist next if all goes well.
A couple of notes:
- The Dockerfile itself is pretty good sized - ~12GB. We will be looking to slim that down if possible, but no matter the eventual size, the first time you try to use it, it will need to download to your system - you can do this within CellProfiler, if you want, or you can do it in Docker Desktop (see screenshot below). Just be prepared to wait a bit, based on your download speeds! This step only needs to be done once per Docker container you want to use, so it should only need to be done very infrequently.
- If what you need is absolutely top performance, this is not the way to go, because each individual module on each individual image starts up its own Docker container, which has about ~45-60 seconds of overhead to get the container started up and Cellpose running. As an extreme example, for running the 240 image sets of the Advanced Segmentation tutorial and subbing in RunCellpose for the nuclear segmentation, with 4 cores on my computer this takes it from taking ~45 minutes to run to something closer to an hour and 30 minutes. If you have 100K images, this is obviously unacceptable, but if you have only dozens or hundreds or even single-digit-thousands of images, having the program take a few hours longer to run but the extra hours being “computer doing its thing” time rather than “person trying to debug installation issues” time we hope will be an overall net positive. (This performance hit is something we can hopefully work on in CellProfiler 5 by allowing each worker to start a Docker, rather than each image set, but it will exist in all CellProfiler 4 builds)
Please do give us feedback on if this ends up working well for you, as that will definitely affect our prioritization of doing that vs working on things like CellProfiler 5 improvements.