Skip to content
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

Update Python-Bioformats dependency version #70

Merged
merged 5 commits into from
Jul 29, 2021
Merged

Conversation

yoda-vid
Copy link
Collaborator

The Python-Bioformats dependency has been pinned in MagellanMapper to v1.1.0 because of a heap space error encountered with later versions of the package when importing some large image files (see CellProfiler/python-bioformats#95). Since the Bio-Formats library included in this version of the package is relatively old (Bio-Formats v5.1.8 from 2016), this PR updates the package to bring in the current Bio-Formats version (v6.6.0). The library was tested on a large (40GB), multi-series CZI file that previously could not be loaded because of a JPEG-XR not supported error but now loads with this new library.

Python-Bioformats now depends on a fork of the original Javabridge package, named Python-Javabridge, pinned to its latest version. This latest version in turn requires NumPy 1.20, which has dropped Python 3.6 support. To maintain Python 3.6 compatibility, we have posted a custom wheel from a fork that uses that original Javabridge. This wheel thus can use the custom Javabridge wheels that we have previously posted to allow installation without a compiler or JDK and continues to work with Python >= 3.6. A simple Bash script used to build the wheel and based on the custom Javabridge wheel script is also included in this PR.

yoda-vid added 4 commits July 23, 2021 10:18
- Use logging instead of the warning package when unable to import a Bioformats-related package
- Reorganize package imports for greater consistency with the rest of the package
Provide a script based on the Javabridge build script to build custom wheels for Python-Bioformats. This customization allows the package to use packages build from the original Javabridge repository rather than the forked version renamed to Python-Javabridge currently required by Python-Bioformats. These repositories are reportedly compatible (see CellProfiler/python-javabridge#8 (comment)), but the forked Python-Javabridge has additional changes for finding Java installations and a more stringent NumPy requirement that would otherwise preclude Python 3.6.
Bump the Python-Bioformats package to 4.0.5. Use a custom wheel built to use Javabridge rather than Python-Javabridge to avoid the requirement for NumPy incompatible with Python 3.6 in the current Python-Javabridge wheel.
@yoda-vid yoda-vid added the enhancement New feature or request label Jul 23, 2021
@yoda-vid yoda-vid added this to the v1.5.0 milestone Jul 23, 2021
@yoda-vid yoda-vid merged commit 8bc79ac into master Jul 29, 2021
@yoda-vid yoda-vid deleted the update_bioformats branch July 29, 2021 03:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant