fractal-analytics-platform / fractal-tasks-core

Main tasks for the Fractal analytics platform
https://fractal-analytics-platform.github.io/fractal-tasks-core/
BSD 3-Clause "New" or "Revised" License
11 stars 5 forks source link

Manage Cellpose 3.0 transition #655

Open jluethi opened 4 months ago

jluethi commented 4 months ago

Cellpose 3.0 was just released, see https://www.biorxiv.org/content/10.1101/2024.02.10.579780v1

We need to manage the transition and make sure our tasks keep working. At first look, it should be mostly backwards compatible. Unfortunately, their repo currently says:

There are some Cellpose API changes from v2.0 which will be documented soon.

So we'll have to either pin it for now or test ourselves. I'll have a look at this in https://github.com/fractal-analytics-platform/fractal-tasks-core/pull/650

tcompa commented 4 months ago

So we'll have to either pin it for now

It is already pinned, since the requirement is ~2.2 and

If you specify a major, minor, and patch version or only a major and minor version, only patch-level changes are allowed. (https://python-poetry.org/docs/dependency-specification/#tilde-requirements)

Side-comment: In my view, caret and tilde requirements specifications do not add anything and are always confusing. I'd rather switch to always using explicit "greater/lower than" bounds.

Meanwhile, I've opened #657 to see how the CI goes with V3.

jluethi commented 4 months ago

Given that the available model selection was changed quite drastically

Old model list: ['cyto', 'nuclei', 'tissuenet', 'livecell', 'cyto2', 'general', 'CP', 'CPx', 'TN1', 'TN2', 'TN3', 'LC1', 'LC2', 'LC3', 'LC4']

New model list: ['cyto3', 'nuclei', 'cyto2_cp3', 'tissuenet_cp3', 'livecell_cp3', 'yeast_PhC_cp3', 'yeast_BF_cp3', 'bact_phase_cp3', 'bact_fluor_cp3', 'deepbacs_cp3', 'cyto2']

This is a switch we probably want to take quite carefully. I think we'll best stay with the pinned version for now and evaluate the new models in a separate PR.

And wait until the API changes are documented. See for example the current error coming from an API change:

TypeError: CellposeModel.eval() got an unexpected keyword argument 'net_avg'

=> some arguments seem to be deprecated.