OMERO.web provides a web based client and plugin infrastructure.
Direct dependencies of OMERO.web are:
- OMERO.py
- ZeroC IcePy
- Pillow
- NumPy
- A WSGI capable web server
We recommend installing omero-web
in a Python virtual environment.
Before installing omero-web
, we recommend to install the ZeroC IcePy Python bindings.
Our commercial partner Glencoe Software has produced several Python wheels to install the Ice-Python bindings depending on the desired Python version and the operating system. Please visit OMERO Python language bindings for a list of supported platforms and Python versions.
When the wheel is installed, activate the virtual environment and install omero-web
from PyPI.
$ pip install -U omero-web
Setting of the environment variable OMERODIR
is required.
$OMERODIR/var/log/
directory will contain log files.
$OMERODIR/etc/grid/config.xml
is used to store config:
$ export OMERODIR=$(pwd)
For running omero-web in production with NGINX, see See: OMERO.web install documentation. To run in development mode, see below.
The OMERO server ships with a set of look-up tables (LUTs) for rendering images. Admins can also
add their own LUTs to the server. The LUTs available on the server can be retrieved from the
/webgateway/luts/
endpoint as JSON data.
To include the rgb
values of each LUT in the JSON response, append ?rgb=true
to the URL.
A copy of the JSON output from /webgateway/luts/?rgb=true
is included in the omero-web
package
as a static file at
https://github.com/ome/omero-web/blob/master/omeroweb/webgateway/static/webgateway/json/luts.json.
This is used to generate a LUT preview png at /webgateway/luts_png/
that can be used by clients
such as OMERO.ivewer and OMERO.figure to display the LUTs in a user-friendly way.
By using the static luts.json
, the /luts_png/
can be quickly generated without needing to load LUTs from
the server.
The sequence of LUTs in /webgateway/luts_png/
corresponds to the dynamic list from /webgateway/luts/
.
If there are new LUTs on the server that are not found in the static luts.json
, the /luts_png/
will
show a blank placeholder for that LUT.
If you have Django caching enabled on your server (e.g. with Redis) then you can cache the png with new
LUTs by visiting /webgateway/luts_png/?cached=false
. This will then be read by other users when
they visit /webgateway/luts_png/
.
If Django caching isn't enabled, the JSON response from /webgateway/luts/?rgb=true
can instead be manually updated in the static luts.json
file in the omero-web
package.
See: OMERO documentation
For a development installation we recommend creating a virtual environment as described above. Then install OMERO.web into your virtual environment as an editable package, so that any edits to source files will be reflected in your installation.
$ git clone https://github.com/ome/omero-web $ cd omero-web $ pip install -e .
Note some omero-web
tests may not run when this module and/or omero-py
are installed in editable mode.
Configuration for developer usage:
$ omero config set omero.web.debug True $ omero config set omero.web.application_server development # If you want to connect to OMERO.server other than 'localhost' $ omero config append omero.web.server_list '["demo.openmicroscopy.org", 4064, "demo"]'
Then run omero-web in the foreground with:
$ omero web start ... Starting development server at http://127.0.0.1:4080/
Or, run Django directly:
$ cd omero-web $ python omeroweb/manage.py runserver 4080 ... Starting development server at http://127.0.0.1:4080/
Plugin developers should review the Upgrading document highlighting steps that may need to be taken when upgrading OMERO.web to ensure plugins or other customizations continue to function as expected.
Unit tests are located under the test directory and can be run with pytest.
Integration tests are stored in the main repository (ome/openmicroscopy) and depend on the OMERO integration testing framework. Reading about Running and writing tests in the OMERO documentation is essential.
This repository uses bump2version to manage version numbers. To tag a release run:
$ bumpversion release
This will remove the .dev0
suffix from the current version, commit, and tag the release.
To switch back to a development version run:
$ bumpversion --no-tag patch
NB: this assumes next release will be a patch
(see below).
To complete the release, push the master branch and the release tag to origin:
$ git push origin master v5.8.0
If any PRs are merged that would require the next release to be a major
or minor
version
(see semver.org) then that PR can include a version bump created via:
$ bumpversion --no-tag minor|major
If this hasn't been performed prior to release and you wish to specify the next version number directly when creating the release, this can be achieved with:
$ bumpversion --new-version 5.9.0 release
Following omero-web
release, need to update and release omero-web-docker
.
OMERO.web is released under the AGPL.
2009-2024, The Open Microscopy Environment, Glencoe Software, Inc.