Skip to main content

A Python plugin for OMERO.web combining database pages, script menu, and web importer functionality

Project description

OMERO.biomero Plugin

Description

The OMERO.biomero plugin adds functionality to the OMERO web client, allowing users to upload images directly from the web client. The uploads are in-place, meaning that the data is not duplicated in OMERO but remains where it is. Users can monitor their uploads using a dashboard.

Additionally, the plugin provides a user-friendly interface to execute OMERO scripts and BioMero workflows and monitor their execution.

Features

  • Image Uploads: Upload images directly from the OMERO web client without duplicating data.
  • Upload Monitoring: Monitor the status and history of uploads using a dashboard.
  • Script Execution: Execute OMERO scripts through a user-friendly interface and monitor their execution.
  • Workflow Execution: Execute BioMero workflows on SLURM cluster and monitor their execution.

Technologies Used

  • Frontend: React
  • Backend: Python/Django

Development

The following instructions assume Ubuntu OS. For development, we use NL-BIOMERO - dockerized OMERO setup.

Setup and development of plugin core/Django files

  1. Install Docker.
  2. Clone the omero-biomero.
  3. Clone the NL-BIOMERO repository and enter it. Switch to branch BOOST.
  4. Folders with both repositories must be in the same parent folder.
  5. Enter NL-BIOMERO repository and start OMERO containers: docker compose --file docker-compose-dev.yml up. This compose file enables restarting OMERO Webclient server without causing the container to exit. It does not automatically start the Webclient server. It also mounts omero-biomero as a volume in the Webclient container. Changes to the plugin code are automatically reflected in the Webclient because pip installs the plugin in editable mode (see below).
  6. In new terminal, enter omero-biomero repository and execute ./omero-init.sh. This will start the OMERO Webclient server in background mode. It also installs the plugin in editable mode, so changes to the plugin code are automatically reflected in the Webclient.
  7. After making changes to the code outside of the folder webapp, they should be automatically reflected in the webclient. You can also execute ./omero-update.sh to restart the Webclient server and apply changes.

Testing

To run tests, create virtual environment, activate it and install dependencies:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Then you need to install omero-adi from the NL-BIOMERO repository:

pip install -e ../NL-BIOMERO/omeroadi/

(NL-BIOMERO repo must be cloned to the same directory)

Then you can run the tests using:

python3 manage.py test

Setup and development of the plugin frontend

  1. Install Node.js and Yarn.
    • For Windows, install Corepack as superuser, then you can run yarn commands like corepack yarn install
  2. Enter omero-biomero repository and enter the webapp folder.
  3. Run yarn install to install the necessary packages.
  4. Run yarn watch to watch for changes in the code and automatically rebuild the code on save. Each time code is rebuilt, Webclient server will automatically restart (~30s), which will update JS bundle in the Webclient static folder. Reload the Webclient page to see changes.
  5. To build the code for production, run yarn build. This will also copy the JS bundle to the Webclient static folder and restart the Webclient server.

Troubleshooting

  • Sometimes the plugin page loading will fail after multiple server restarts and you will see 404 error in the console, informing that plugin JS bundle could not be found, even though the files *are present on the server at the correct location. We found that the only way to fix this is to restart NL-BIOMERO containers: docker compose --file docker-compose-dev.yml up in the NL-BIOMERO repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omero_biomero-1.0.0b1.tar.gz (3.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omero_biomero-1.0.0b1-py3-none-any.whl (2.9 MB view details)

Uploaded Python 3

File details

Details for the file omero_biomero-1.0.0b1.tar.gz.

File metadata

  • Download URL: omero_biomero-1.0.0b1.tar.gz
  • Upload date:
  • Size: 3.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for omero_biomero-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 304982a97582f1e1f230e1a37ef17dbf7032175491e911d0b5edf176eb9df3ef
MD5 09530c2528c275d67b6baaff5b20b42e
BLAKE2b-256 83679bcd85a4543f1988d715ba8fda95b71413ccff845297b79a1b76a3b76fc1

See more details on using hashes here.

File details

Details for the file omero_biomero-1.0.0b1-py3-none-any.whl.

File metadata

File hashes

Hashes for omero_biomero-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 a81399c269cdba8b3d8092b6ffcdcb4cea21ae3729b3c60984f9a81d7becaec8
MD5 a8f0d478fe4a253ad6f30c0d4c51919e
BLAKE2b-256 a9ec05a6d7065f405f0fc79df0a0b45e65e71d10df9968c9f770606115bdf08e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page