Making CellProfiler plugins easier to install #184
Replies: 6 comments 4 replies
-
Tagging in @hinerm here too. Thanks for getting this kicked off! |
Beta Was this translation helpful? Give feedback.
-
I don't think you'll need to do this, thankfully! I think just calling CellProfiler headless with the |
Beta Was this translation helpful? Give feedback.
-
I think we want to avoid setting an exact CellProfiler version here; maybe an ~= version? |
Beta Was this translation helpful? Give feedback.
-
These need DL tags too! |
Beta Was this translation helpful? Give feedback.
-
Yup, I think we definitely want to do this, the grad student using it said he had actually already done it and it was working for him. I could reach out to ping him to ask for a PR maybe? |
Beta Was this translation helpful? Give feedback.
-
Just noting that it looks like the |
Beta Was this translation helpful? Give feedback.
-
@fefossa @ErinWeisbart
How should a user install CellProfiler plugins?
For all options, how do we handle installing of these dependencies? Creating environments that support CellPose (PyTorch) and Stardist (Tensorflow) has previously been shown to be possible, but it notoriously difficult, so these should remain split for now. However, for a lot of other non-deep learning plugins the dependencies are much simpler.
The below solution assumes setup.py is being used, but other package dependency management methods like poetry could be used.
With this in mind, we could use extras_require in setup.py. This would mean a user can install just the basic plugins if they would like, or either cellpose+basic plugins or stardist+basic plugins:
How would installing using the above package look? Following git cloning of the CellProfiler-plugins repo and cd'ing inside using your terminal, you could run
pip install -e .[basic]
orpip install -e .[cellpose]
.It's also possible to programmatically set the plugin directory with:
This would be relevant if install option 1 above was considered. Otherwise this would be manually set by the user in the GUI. That said, this will be required for creating a testing github action for a plugins pipeline.
The dependencies for all of the plugins that are in the root directory of the repo are as follows (this was acquired using the python package
pipreq
):The non-deep learning dependencies should be easy. Even the pandas dependency could be removed by refactoring variancetransform.py to ensure the as much overlap with CellProfiler's own dependencies.
Beta Was this translation helpful? Give feedback.
All reactions