# 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](https://github.com/Cellular-Imaging-Amsterdam-UMC/NL-BIOMERO) - dockerized OMERO setup.
### Setup and development of plugin core/Django files
1. Install Docker.
2. Clone the [omero-biomero](https://github.com/Cellular-Imaging-Amsterdam-UMC/omero-biomero.git).
3. Clone the [NL-BIOMERO](https://github.com/Cellular-Imaging-Amsterdam-UMC/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.
Raw data
{
"_id": null,
"home_page": "https://github.com/Cellular-Imaging-Amsterdam-UMC/OMERO.biomero",
"name": "omero-biomero",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "OMERO.web, plugin, database pages, imports database, workflows database, script menu, web importer",
"author": "Cellular Imaging Amsterdam UMC",
"author_email": "cellularimaging@amsterdamumc.nl",
"download_url": "https://files.pythonhosted.org/packages/3c/9f/163011d80dfd40cfdbb6cb8a02b033c115ab8e5727ad359ee063054230a9/omero_biomero-1.0.0b4.tar.gz",
"platform": null,
"description": "# OMERO.biomero Plugin\n\n## Description\n\nThe 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.\n\nAdditionally, the plugin provides a user-friendly interface to execute OMERO scripts and BioMero workflows and monitor their execution.\n\n## Features\n\n- **Image Uploads**: Upload images directly from the OMERO web client without duplicating data.\n- **Upload Monitoring**: Monitor the status and history of uploads using a dashboard.\n- **Script Execution**: Execute OMERO scripts through a user-friendly interface and monitor their execution.\n- **Workflow Execution**: Execute BioMero workflows on SLURM cluster and monitor their execution.\n\n## Technologies Used\n\n- **Frontend**: React\n- **Backend**: Python/Django\n\n## Development\n\nThe following instructions assume Ubuntu OS.\nFor development, we use [NL-BIOMERO](https://github.com/Cellular-Imaging-Amsterdam-UMC/NL-BIOMERO) - dockerized OMERO setup.\n\n### Setup and development of plugin core/Django files\n\n1. Install Docker.\n2. Clone the [omero-biomero](https://github.com/Cellular-Imaging-Amsterdam-UMC/omero-biomero.git).\n3. Clone the [NL-BIOMERO](https://github.com/Cellular-Imaging-Amsterdam-UMC/NL-BIOMERO) repository and enter it. Switch to branch `BOOST`.\n4. **Folders with both repositories must be in the same parent folder**.\n5. 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).\n6. 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.\n7. 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.\n\n### Testing\n\nTo run tests, create virtual environment, activate it and install dependencies:\n\n```\npython -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\n```\n\nThen you need to install omero-adi from the NL-BIOMERO repository:\n\n```\npip install -e ../NL-BIOMERO/omeroadi/\n```\n\n(NL-BIOMERO repo must be cloned to the same directory)\n\nThen you can run the tests using:\n\n```\npython3 manage.py test\n```\n\n### Setup and development of the plugin frontend\n\n1. Install Node.js and Yarn.\n - For Windows, install Corepack as superuser, then you can run yarn commands like `corepack yarn install`\n2. Enter `omero-biomero` repository and enter the `webapp` folder.\n3. Run `yarn install` to install the necessary packages.\n4. 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.\n5. 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.\n\n### Troubleshooting\n\n- 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.\n",
"bugtrack_url": null,
"license": "AGPL-3.0",
"summary": "A Python plugin for OMERO.web combining database pages, script menu, and web importer functionality",
"version": "1.0.0b4",
"project_urls": {
"Download": "https://github.com/Cellular-Imaging-Amsterdam-UMC/OMERO.biomero/archive/refs/tags/v{version}.tar.gz",
"Homepage": "https://github.com/Cellular-Imaging-Amsterdam-UMC/OMERO.biomero"
},
"split_keywords": [
"omero.web",
" plugin",
" database pages",
" imports database",
" workflows database",
" script menu",
" web importer"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fdb9743f194197305f8624061eb7b3966e68bc3c3e1f521e0d8594bb9f3e7480",
"md5": "ee9f9a53ab0eceb7b834311eae339faf",
"sha256": "61f61c65d6e7110ca5585bd0c3bd75f751f21c2c658215efea381baab8c4e4ef"
},
"downloads": -1,
"filename": "omero_biomero-1.0.0b4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ee9f9a53ab0eceb7b834311eae339faf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 2893136,
"upload_time": "2025-09-03T10:05:04",
"upload_time_iso_8601": "2025-09-03T10:05:04.845465Z",
"url": "https://files.pythonhosted.org/packages/fd/b9/743f194197305f8624061eb7b3966e68bc3c3e1f521e0d8594bb9f3e7480/omero_biomero-1.0.0b4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3c9f163011d80dfd40cfdbb6cb8a02b033c115ab8e5727ad359ee063054230a9",
"md5": "c1b99110dcd4678b8426266dc9c04600",
"sha256": "d3be0473cc954d72dabc8c144a96bb76d7db3dbc13db701b683bed31f2c3bb7e"
},
"downloads": -1,
"filename": "omero_biomero-1.0.0b4.tar.gz",
"has_sig": false,
"md5_digest": "c1b99110dcd4678b8426266dc9c04600",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 3106056,
"upload_time": "2025-09-03T10:05:06",
"upload_time_iso_8601": "2025-09-03T10:05:06.208928Z",
"url": "https://files.pythonhosted.org/packages/3c/9f/163011d80dfd40cfdbb6cb8a02b033c115ab8e5727ad359ee063054230a9/omero_biomero-1.0.0b4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-03 10:05:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Cellular-Imaging-Amsterdam-UMC",
"github_project": "OMERO.biomero",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "configupdater",
"specs": [
[
"==",
"3.2"
]
]
},
{
"name": "Django",
"specs": []
},
{
"name": "numpy",
"specs": [
[
"==",
"1.21.5"
]
]
},
{
"name": "PyJWT",
"specs": [
[
"==",
"2.3.0"
]
]
},
{
"name": "setuptools",
"specs": [
[
"==",
"59.6.0"
]
]
},
{
"name": "omero-web",
"specs": []
},
{
"name": "biomero",
"specs": []
}
],
"lcname": "omero-biomero"
}