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

Openseadragon viewer for render service #124

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

sukeshsangam
Copy link

Hello everyone,

In this branch Openseadragon Viewer feature is developed for the Render Service.

Openseadragon is a web-based viewer for high resolution zoomable images implemented in Javascript. To know more about it please refer (https://openseadragon.github.io/)

In this branch Rendered images are converted to Deep Zoom images to feed into openseadragon viewer.

MagickSlicer is used to convert the rendered images to DZI(Deep Zoom Images) (https://github.com/VoidVolker/MagickSlicer)

The Rendered images and the converted DZI images are stored on a http server, which are used by openseadragon viewer.

A python script is configured to run the DZI image conversion pipeline on the HPC cluster. This python script needs to be placed on HPC Cluster and the file path should be provided as the parameter in the Dockerfile.

Here are the parameters which should be provided in Dockerfile to enable openseadragon viewer feature.

VIEW_OPENSEADRAGON_HOST_AND_PORT="" (render-ws/src/main/webapp/view/openseadragon.html file web URL)
VIEW_DATA_PREP="" \ (python file Path on the HPC cluster, openseadragon/derived_data_preparation_code/data_preparation.py)
VIEW_DATA_PREPSH="" \ (magick-slicer shell script path which is placed on HPC cluster, https://github.com/VoidVolker/MagickSlicer)
VIEW_OPENSEADRAGON_DATA_HOST="" \ (HTTP webserver where the rendered and DZI images are placed)
VIEW_OPENSEADRAGON_DATA_SOURCE_FOLDER="" \ (rendered images path on HPC cluster or http webserver link)
VIEW_OPENSEADRAGON_DATA_DESTINATION_FOLDER="" \ (Destination folder PATH on the HPC cluster)

Here you can submit a job to the cluster to convert rendered images to DZI images, cluster details and credentials can be provided through the user interface in stacks.html page.

you can view the DZI images of the stacks in the openseadragon viewer by clicking on 'view in openseadragon' hyperlink in the stacks section.

Could you please merge this code as a separate branch, so that I can push my future development to that brach.

Thank you,
Sukesh.

@trautmane
Copy link
Collaborator

Thank you @sukeshsangam for your work on this!

At at high level, my preference is not to copy the core openseadragon source code and images into this repository. I think it would make sense for you to keep that code in your own (or St. Jude's) fork of openseadragon. Developers could then clone and build that repo and deploy it wherever it makes sense for them - including potentially on a Render Jetty web server.

I'd prefer to apply only minimal useful integration changes in the render repo. As an example, something similar to this change in janelia-render.js might make sense to keep in the render repo.

The bottom line is that I think that most of the code submitted in this pull request should live elsewhere. I'm hoping you can re-organize your approach by separating and removing the pure openseadragon code and limiting your render pull request to a relatively small number of integration additions/changes. We can then collaborate on those changes to make sure everything fits well.

I recently merged render's long-running geometric_descriptor branch and the color branch I made for St. Jude back into the master render branch. It might simplify things for you to update your render fork, create a new openseadragon2 branch from the latest master branch, selectively copy just the integration changes to the new branch, and then to submit a new pull request.

Please let me know if this organizational approach makes sense to you and/or if you (or @khaledkhairy) think it should be handled differently. I certainly could have misunderstood something fundamental about openseadragon. My primary goal is to establish an organizational structure that facilitates St. Jude's use of render components without adversely affecting Janelia's (and other institutions) use of those same components.

Thanks again for contributing to render - I'm looking forward to getting this organized and working!

--Eric

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants