-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add CellProfiler 5 OMERO plugins #220
Open
DavidStirling
wants to merge
34
commits into
CellProfiler:master
Choose a base branch
from
DavidStirling:omero
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…with temp dir token
* Fix tests * Pin cython * Type gooder * Install cython earlier * back back baaaaack * Update setup.py * Install centrosome branch * Update test_cellpose.yml * Update test_stardist.yml
* adding docker subprocess option to RunCellpose * Dockerfile and associated script for building RunCellpose docker * add docker documentation * better docs since docker image is automatically downloaded when requested * upgrade module version * fix upgrade settings * docs for using docker * Add model to upgrade_settings * Typo * Fix upgrade_settings fixier --------- Co-authored-by: Erin Weisbart <[email protected]> Co-authored-by: Beth Cimini <[email protected]> Co-authored-by: bethac07 <[email protected]>
* Update _config.yml * Add issue for zsh in macs * Update _toc.yml * runcellpose capitalization --------- Co-authored-by: Erin Weisbart <[email protected]>
* Update runstardist.py Potentially resolves the issue#196 stardist plugin does not free gpu memory. Now you can runStardist and runCellpose on the same pipeline. Tested on windows, need to test on Macs * Only run if cuda is available * Add optional GPU memory control code --------- Co-authored-by: Beth Cimini <[email protected]>
Required for newer PyImageJ releases (1.4.1) until we have a release with imagej/pyimagej@a1861b6 merged. Closes CellProfiler#218
# Conflicts: # documentation/CP-plugins-documentation/supported_plugins.md
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves CellProfiler/CellProfiler#4684, resolves CellProfiler/CellProfiler#3722, partially addresses CellProfiler/CellProfiler#1772
Todo: Remove legacy OMERO connector from the main CP repo (currently commented out).
Following CellProfiler/core#133, OMERO integration in the main CellProfiler builds is not functional in Cellprofiler 5. Relying on javabridge/bioformats to access OMERO data wasn't ideal in the first place, and so using
omero-py
is a preferred solution. However,omero-py
's dependencies can be tricky to install and, given the new policy towards what should be in the main builds vs what should be a plugin, it perhaps makes more sense for OMERO support to be a plugin going forwards.Therefore this PR adds and expands upon OMERO support within CellProfiler in the form of plugins. We've taken this opportunity to address some of the longstanding issues with the original integration and add some new features to improve user experience.
Components
omero_helper
- These helper scripts manage the connection and GUI components needed by the plugins. These are also responsible for injecting entries into the Plugins menu and managing/safely closing active connections when you exit CellProfiler.OMEROReader
- An image reader plugin which reads image data using theomero-py
package.SaveImagesToOMERO
- A module plugin which uploads a CellProfiler image onto an OMERO server.ExportToOMEROTable
- A module plugin designed to upload measurement results directly into an OMERO.table on a server.OMEROBrowseDlg
- An OMERO browser which runs within CellProfiler (wx). This should allow basic server browsing and adding of images to pipelines. Most server traversal is done using the http web api rather than through omero-py/ice, since that API is a bit more refined.Install scripts were included in setup.py under the
omero
flag. In that setup we've provided some direct links to premadezeroc-ice
wheels for platforms which have trouble running the build system for the specific versionomero-py
needs.Unit tests are unfortunately not easy to design for these plugins, since user credentials and a persistent, public server would be needed to do any such tests. Automating validation of any test results on OMERO itself would also be a challenge.
Key problems addressed
"Once my session times out I have to restart CellProfiler to reconnect to OMERO" - The login dialog is now available from the new 'Plugins' menu. The connection is also kept active automatically instead of the user needing to perform an operation every 10 minutes.
"Adding OMERO files to the file list is painful and clunky" - While support for the original OMERO URI format (
omero:iid=<ImageId>
) is maintained, we have added the ability to detect and process full OMERO server urls (e.g.my.omero.server/webclient/?show=image-101
). These URLs can be pasted directly into the file list box in the Images module for added convenience. In case that wasn't enough, we've also added an OMERO server browser to the plugins menu, allowing you to select and add images from within CellProfiler. In that dialog images can be added by selecting them individually and using the 'Add' button, or by dragging containers from the browser tree onto the Images module file list."Entering login details every run is annoying" - The connection dialog is now more responsive and supports hotkeys such as pressing 'Enter' to connect/close once connected. We've also added support for the
omero_user_token
package, which can store a long-lived token to automatically reconnect to a previous session. On the connect dialog you'll now find a "Set Token" button to store your credentials as a token. A similar system (token stored in CP's temp directory) is used to pass connection details to workers during an analysis run, so that login details no longer need to be transmitted over the zmq request/reply system."Image reading is slow and doesn't work with 3D data" - Loading data no longer occurs via the java bridge or it's replacement, the
omero-py
-based reader is pure Python and should be more efficient. The new reader also fully supports the metadata extraction features in the Images module, meaning that multi-plane images can be split up by the input modules or loaded as stacks (previous iterations forced loading of the first plane only)."I have to manually upload results onto OMERO" - Added plugin modules to do just this. Together it should now be possible to read data off OMERO, analyse it and return the results to the server in a single pipeline.