omero-vitessce


Nameomero-vitessce JSON
Version 1.2.2 PyPI version JSON
download
home_pagehttps://github.com/MicheleBortol/omero-vitessce
SummaryOMERO Vitessce multimodal data viewer plugin for OMERO.web
upload_time2024-11-25 10:54:25
maintainerNone
docs_urlNone
authorMichele Bortolomeazzi
requires_python>=3.9
licenseAGPLv3
keywords omero.web omero vitessce viewer
VCS
bugtrack_url
requirements vitessce shapely
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Badge_OMERO](https://github.com/MicheleBortol/omero-vitessce/actions/workflows/omero_plugin.yml/badge.svg)
![Badge_PyPI](https://img.shields.io/pypi/v/omero-vitessce?label=pypi%20package)

OMERO.omero_vitessce
=======================

OMERO-vitessce is an OMERO.web plugin for the [Vitessce](http://vitessce.io/) multimodal data viewer. 

Installation
============

This section assumes that an OMERO.web is already installed.

Install the app using [pip](https://pip.pypa.io/en/stable/):

NB: You need to ensure that you are running `pip` from the python environment
where `omero-web` is installed.

    $ pip install -U omero-vitessce

Add the app to the `omero.web.apps` setting:

    $ omero config append omero.web.apps '"omero_vitessce"'

Add `omero_vitessce` as a tab in the right-hand-side panel:

    $ omero config append omero.web.ui.right_plugins '["Vitessce", "omero_vitessce/webclient_plugins/right_plugin.vitessce.js.html", "vitessce_tab"]'

Add `omero_vitessce` as an open-with option:

    omero config append omero.web.open_with '["omero_vitessce", "open_vitessce", {"supported_objects": ["project", "dataset", "image"], "label": "Vitessce"}]'

Add the omero web address (replace ´'"http://localhost:4080"'´ with your address):

    $ omero config set omero.web.omero_vitessce.serveraddress '"http://localhost:4080"'
    
Now restart OMERO.web as normal for the configuration above to take effect.

### omero-web-zarr
While [omero-web-zarr](https://github.com/ome/omero-web-zarr) is not a requirement, but it is strongly recommended to have it installed and enabled for using this plugin
omero-web-zarr is necessary to take advantage of the autogenerated config files for the Vitessce viewer,
as they rely on omero-web-zarr to serve the images to the viewer.

Please see https://pypi.org/project/omero-web-zarr/ for instructions on installing and enabling the omero-web-zarr plugin.

Usage
============

### Selecting the viewer
The plugin can be used with:
- `Vitessce` Tab on the right hand side panel.
- `Open with` `->` `Vitessce` on the left side panel. 

#### Right-hand-side panel:
- **Prexisting config files**:

Clicking the link will open a new tab with the viewer displaying the selected configuration.  
![Link-List-image](https://github.com/user-attachments/assets/7f556f86-7edf-49a0-bf2a-9c5f168922b1)

- **Generating custom config files**:

The form allows the user to automatically generate a config file with the selected parameters. After clicking the `Generate Config` button
a config file is generated and attached to the dataset/image. The viewer displaying the autogenerated configuration will open in a new tab.    
![Form-image](https://github.com/user-attachments/assets/6e9bbb79-6b40-4d5f-bb0f-48f7bc6a13f1)

#### Open-with:
Right click on a `dataset` or an `images` in the left-panel and select `open-with` -> `Vitessce`.  
This will open the vitessce viewer in a new tab using the first configuration file attachement.
![Openwith-image](https://github.com/user-attachments/assets/f75cc27c-4cd3-4a19-ae20-7d8f0a47aa87)

### Viewer window
After autogenerating or selecting a config file, the Vitessce viewer is opened in a new tab:
![Viewer GIF](https://github.com/user-attachments/assets/0f1effac-e681-4782-a69e-76702451fcbb)

The viewer panels can also be rearranged to better fit the image type/size.
![Viewer slide](https://github.com/user-attachments/assets/5c8c9559-ea2c-44c9-acbe-26caaf951432)

### Config files
The omero-vitessce plugin considers all files with the `.json` extension attached to the image or dataset as config files for the viewer.
The config files should follow the vitessce view-config-json format: http://vitessce.io/docs/view-config-json/

#### Custom config files generated from the right-tab
Config files can be generated for:
- `images`
- `datasets`

Assumes that [omero-web-zarr](https://github.com/ome/omero-web-zarr) is available to serve the images.
The attachements must be either [OMERO.tables](https://omero.readthedocs.io/en/stable/developers/Tables.html) or files in`.csv` format and the column with the cell identifiers should be consistent across attachements.
Only files attached to the dataset/image are available in the form.

The following fields are available:
- `Save Config`          (required, `True`):                                    Save the viewer configuration as an attahment to the current Image/Dataset before launching the viewer.
- `Config file name`    (optional, "VitessceConfig-YYYY.MM.DD_HHMMSS.json"):   Name of the config file to attach, a ".json" extension is added if missing. 	
- `Images`               (required): 	                                       OMERO Image(s) to view, assumes the same pixel size for all images.
- `Segmentation`        (optional, `None`): 	                               Label image to overlay on the image, pixel values correspond to cell identities.
- `ROIs`                (optional, `False`):                                   Use the ROIs from OMERO as a cell segmentation. Assumes 1 polygon/rectangle shape per ROI, whose text value is the cell identity.
- `Cell identities`     (optional, `None`): 	                               `.csv` file / OMERO.table with at least 2 columns: `Cell id column` and `Label column` defined in the 2 fields below. 
- `Cell id column`      (optional, "cell_id"):   	                           Name of the `Cell id column` used in `Cell identities`, `Expression`, `Embeddings`.
- `Label column`        (optional, "label"): 	                               Name of the `Label` used in `Cell identities`.
- `Expression` 	      (optional, `None`):                                  `.csv` file / OMERO.table with the `Cell id column` all other columns are considered as expression values and should be numerical.
- `Embeddings`          (optional, `None`):                                  `.csv` file / OMERO.table with the `Cell id column` and the `Embedding x` and `Embedding y` columns defined in the 2 fields below. 
- `Embedding x`         (optional, "UMAP_1"): 	                            Name of the `Embedding x` used in `Embeddings`.
- `Embedding y`         (optional, "UMAP_2"): 	                            Name of the `Embedding y` used in `Embeddings`.
- `Molecules`           (optional, `None`): 	                               `.csv` file / OMERO.table with at least 4 columns: Molecule id, label, x, y (headers in the fields below). 
- `Molecule id`         (optional, "id"):   	                                Name of the `Molecule id column` used in `Molecules`.
- `Molecule label`      (optional, "gene"):   	                            Name of the `Molecule label column` used in `Molecules`.
- `Molecule x`          (optional, "x"):   	                                Name of the `Molecule x column` used in `Molecules`.
- `Molecule y`          (optional, "y"):   	                                Name of the `Molecule y column` used in `Molecules`.
- `Histograms`          (required , `True`): 	                                Add 3 plots showing: The number of transcripts per cell, the number of cells in each set, gene expression in each set.
- `Heatmap`             (required , `True`):                                  Adds an heatmap.
- `Status`              (required , `False`):                                 Adds a status panel to display info on the selected cell.
- `Description`         (required , `False`):                                 Adds a description panel to display info on the dataset/image (taken from the description metadata field from OMERO).

The `Config file name` field depends on the `Save Config` field. When the `Save Config` field is not checked, the `Config file name` field is disabled and its value ignored.  
The `ROIs` and `Segmentation` fields are mutually exclusive, when the ROI field is selected the segmentation image is not considered.  
The `Expression` and `Cell identities` files are required to show the histograms.  
The `Embeddings` file is necessary to show the cells in a scatterplot.  
The `Molecules` file is used to overlay molecules on the image. All molecules are displayed and selecting by gene is not yet possible.  
The `Status` panel will be empty unless a `Segmentation` or `Embeddings` are provided.  

The `ROIs` are used as cells. Only the first shape is considered, and only polygons and rectangles are kept (TO DO: add support for ellipses). Other shapes are skipped.
The text value of the shape is used as a cell identity to link with expression/labels/embeddings, if there is no text value the ROI is skipped.

OMERO.tables for use with omero-vitessce can be generated with:
- OMERO python API (https://omero.readthedocs.io/en/stable/developers/Tables.html) or ezomero (https://thejacksonlaboratory.github.io/ezomero/ezomero.html#ezomero.post_table)
- Fiji (https://wiki-biop.epfl.ch/en/data-management/omero/omero-tables#create-omerotables-from-a-fiji-script)
- QuPath (https://wiki-biop.epfl.ch/en/data-management/omero/qupath#annotations-measurement-tables)
- other [tools](https://omero-guides.readthedocs.io/en/latest/external_tools.html) / [APIs](https://omero-guides.readthedocs.io/en/latest/api_usage.html):

OMERO.tables with a number of rows > `omero.web.max_table_download_rows` (default `10000`) will be truncated, and the value ignored by omero-vitessce.

#### Attaching preexisting config files
Custom config files should have a `.json` extension and added as attachements to a dataset or an image.
The configuration files does not need to refer to the dataset / image it is attached to and can refer to other images.

For how to create a custom config file see:
- [VItessce Docs](http://vitessce.io/docs/view-config-json/)
- [Vitessce Examples](http://vitessce.io/examples/)

#### Serving the images / rois / data / metadata
Images and data can be served through:
- [omero-web-zarr](https://pypi.org/project/omero-web-zarr/):  OME-NGFF images only.
- [omero-openlink](https://github.com/sukunis/OMERO.openlink): all images and file attachements.
- `webclient/annotation/` endpoint: only for Annotations (useful for file attachments).
- `webclient/omero_table/ID/csv?limit=MAX_TABLE_DOWNLOAD_ROWS` endpoint (`ID` = OMERO file ID of the OMERO.table, `MAX_TABLE_DOWNLOAD_ROWS` = the OMERO.web setting): for getting OMERO.tables as `csv` files.
- `omero_vitessce/vitessce_json_rois/ID1,ID2,...` endpoint where `ID1,ID2,...` is a comma-separated list of image ids, to get the first shape of each ROI in `json` format.

Example showing ROIs from OMERO displayed in the omero-vitessce viewer window:
![ROI comparison](https://github.com/user-attachments/assets/807026b8-4ed2-4977-890b-73aa9c547ca2)

Development
=======================

## Sources

The main sources this project relies on are:
- omero-vitessce from Will Moore for handling ROIs: https://github.com/will-moore/omero-vitessce
- cookiecutter-omero-webapp: https://github.com/ome/cookiecutter-omero-webapp
- `react_webapp` from omero-web-apps-examples: https://github.com/ome/omero-web-apps-examples/tree/master/react-webapp
- Vitessce python package used for generating config files http://python-docs.vitessce.io/
- omero-web-zarr to serve OME-NGFF images: https://github.com/ome/omero-web-zarr
- omero-openlink to serve images and other files: https://github.com/sukunis/OMERO.openlink
- omero-test-infra for testing: https://github.com/ome/omero-test-infra

## Tests

### Test dataset
The dataset used for automated testing is at: [test/data/MB266](test/data/MB266)
This is a cropped version derived from larger images and their associated data available at:
https://doi.org/10.5281/zenodo.13832665

The original data are available at:
https://www.ebi.ac.uk/biostudies/bioimages/studies/S-BIAD1093

The associated publication is available at:
https://www.biorxiv.org/content/10.1101/2024.04.03.586404v1

### omero-test-infra configuration
[omero-test-infra](https://github.com/ome/omero-test-infra) is used for automated tests with [github-actions](.github/workflows/omero_plugin.yml).
The workflow setups an omero installation in docker and then:
1)  Runs [app-config](.omeroci/app-config) to set up the omero-web plugin configuration.
2)  Runs [app-build](.omeroci/app-build) which:
- runs to create a test user/group and upload a [test dataset](test/data/MB266).
- runs pytest tests in: [test/integration](test/integration)  

It is possible to perform these tests locally by:
1) Starting the docker daemon.
2) Cloning the omero-test infra repository inside the base folder of omero-vitessce: `git clone https://github.com/openmicroscopy/omero-test-infra .omero`
3) Running: `.omero/app-docker`

## React web app

### omero_vitessce web app

We serve a custom version of the vitesce app: http://vitessce.io/

The app sets up a vitessce view configured through a text file in json format: http://vitessce.io/docs/view-config-json/

The configuration file is taken from the `?config` url parameter.

### Installation

This project was created with [Create React App](https://github.com/facebook/create-react-app).

You can run this project in development mode or as an OMERO.web Django app.

To get started:

    $ cd vitessce_app
    $ npm install

In the project directory, you can run:

### `npm start`

Runs the app in the development mode.<br>
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.

The page will reload if you make edits.<br>
You will also see any lint errors in the console.

### `npm run build`

Builds the app for production to the `build` folder and copies the
html and static files to the Django app in `vitessce app`. See the [deploy_build.sh]() script.<br>

You also need to install the app into your `omero-web` environment:

    # cd to the root of the repo
    $ pip install -e .

You will need to have the app configured in your OMERO.web install:

    $ omero config append omero.web.apps '"omero_vitessce"'
    $ omero config append omero.web.ui.right_plugins '["Vitessce", "omero_vitessce/webclient_plugins/right_plugin.vitessce.js.html", "vitessce_tab"]'
    $ omero config set omero.web.omero_vitessce.serveraddress '"http://localhost:4080"'

It bundles React in production mode and optimizes the build for the best performance.

See the Create React App section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/MicheleBortol/omero-vitessce",
    "name": "omero-vitessce",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "OMERO.web, OMERO, Vitessce, viewer",
    "author": "Michele Bortolomeazzi",
    "author_email": "michele.bortolomeazzi@dfkf.de",
    "download_url": "https://files.pythonhosted.org/packages/f1/cc/5c5f1912c2b8c5deca70dc98a5a71ccaa90eaa33b0205b7b16ac73eb4a08/omero_vitessce-1.2.2.tar.gz",
    "platform": null,
    "description": "![Badge_OMERO](https://github.com/MicheleBortol/omero-vitessce/actions/workflows/omero_plugin.yml/badge.svg)\n![Badge_PyPI](https://img.shields.io/pypi/v/omero-vitessce?label=pypi%20package)\n\nOMERO.omero_vitessce\n=======================\n\nOMERO-vitessce is an OMERO.web plugin for the [Vitessce](http://vitessce.io/) multimodal data viewer. \n\nInstallation\n============\n\nThis section assumes that an OMERO.web is already installed.\n\nInstall the app using [pip](https://pip.pypa.io/en/stable/):\n\nNB: You need to ensure that you are running `pip` from the python environment\nwhere `omero-web` is installed.\n\n    $ pip install -U omero-vitessce\n\nAdd the app to the `omero.web.apps` setting:\n\n    $ omero config append omero.web.apps '\"omero_vitessce\"'\n\nAdd `omero_vitessce` as a tab in the right-hand-side panel:\n\n    $ omero config append omero.web.ui.right_plugins '[\"Vitessce\", \"omero_vitessce/webclient_plugins/right_plugin.vitessce.js.html\", \"vitessce_tab\"]'\n\nAdd `omero_vitessce` as an open-with option:\n\n    omero config append omero.web.open_with '[\"omero_vitessce\", \"open_vitessce\", {\"supported_objects\": [\"project\", \"dataset\", \"image\"], \"label\": \"Vitessce\"}]'\n\nAdd the omero web address (replace \u00b4'\"http://localhost:4080\"'\u00b4 with your address):\n\n    $ omero config set omero.web.omero_vitessce.serveraddress '\"http://localhost:4080\"'\n    \nNow restart OMERO.web as normal for the configuration above to take effect.\n\n### omero-web-zarr\nWhile [omero-web-zarr](https://github.com/ome/omero-web-zarr) is not a requirement, but it is strongly recommended to have it installed and enabled for using this plugin\nomero-web-zarr is necessary to take advantage of the autogenerated config files for the Vitessce viewer,\nas they rely on omero-web-zarr to serve the images to the viewer.\n\nPlease see https://pypi.org/project/omero-web-zarr/ for instructions on installing and enabling the omero-web-zarr plugin.\n\nUsage\n============\n\n### Selecting the viewer\nThe plugin can be used with:\n- `Vitessce` Tab on the right hand side panel.\n- `Open with` `->` `Vitessce` on the left side panel. \n\n#### Right-hand-side panel:\n- **Prexisting config files**:\n\nClicking the link will open a new tab with the viewer displaying the selected configuration.  \n![Link-List-image](https://github.com/user-attachments/assets/7f556f86-7edf-49a0-bf2a-9c5f168922b1)\n\n- **Generating custom config files**:\n\nThe form allows the user to automatically generate a config file with the selected parameters. After clicking the `Generate Config` button\na config file is generated and attached to the dataset/image. The viewer displaying the autogenerated configuration will open in a new tab.    \n![Form-image](https://github.com/user-attachments/assets/6e9bbb79-6b40-4d5f-bb0f-48f7bc6a13f1)\n\n#### Open-with:\nRight click on a `dataset` or an `images` in the left-panel and select `open-with` -> `Vitessce`.  \nThis will open the vitessce viewer in a new tab using the first configuration file attachement.\n![Openwith-image](https://github.com/user-attachments/assets/f75cc27c-4cd3-4a19-ae20-7d8f0a47aa87)\n\n### Viewer window\nAfter autogenerating or selecting a config file, the Vitessce viewer is opened in a new tab:\n![Viewer GIF](https://github.com/user-attachments/assets/0f1effac-e681-4782-a69e-76702451fcbb)\n\nThe viewer panels can also be rearranged to better fit the image type/size.\n![Viewer slide](https://github.com/user-attachments/assets/5c8c9559-ea2c-44c9-acbe-26caaf951432)\n\n### Config files\nThe omero-vitessce plugin considers all files with the `.json` extension attached to the image or dataset as config files for the viewer.\nThe config files should follow the vitessce view-config-json format: http://vitessce.io/docs/view-config-json/\n\n#### Custom config files generated from the right-tab\nConfig files can be generated for:\n- `images`\n- `datasets`\n\nAssumes that [omero-web-zarr](https://github.com/ome/omero-web-zarr) is available to serve the images.\nThe attachements must be either [OMERO.tables](https://omero.readthedocs.io/en/stable/developers/Tables.html) or files in`.csv` format and the column with the cell identifiers should be consistent across attachements.\nOnly files attached to the dataset/image are available in the form.\n\nThe following fields are available:\n- `Save Config`          (required, `True`):                                    Save the viewer configuration as an attahment to the current Image/Dataset before launching the viewer.\n- `Config file name`    (optional, \"VitessceConfig-YYYY.MM.DD_HHMMSS.json\"):   Name of the config file to attach, a \".json\" extension is added if missing. \t\n- `Images`               (required): \t                                       OMERO Image(s) to view, assumes the same pixel size for all images.\n- `Segmentation`        (optional, `None`): \t                               Label image to overlay on the image, pixel values correspond to cell identities.\n- `ROIs`                (optional, `False`):                                   Use the ROIs from OMERO as a cell segmentation. Assumes 1 polygon/rectangle shape per ROI, whose text value is the cell identity.\n- `Cell identities`     (optional, `None`): \t                               `.csv` file / OMERO.table with at least 2 columns: `Cell id column` and `Label column` defined in the 2 fields below. \n- `Cell id column`      (optional, \"cell_id\"):   \t                           Name of the `Cell id column` used in `Cell identities`, `Expression`, `Embeddings`.\n- `Label column`        (optional, \"label\"): \t                               Name of the `Label` used in `Cell identities`.\n- `Expression` \t      (optional, `None`):                                  `.csv` file / OMERO.table with the `Cell id column` all other columns are considered as expression values and should be numerical.\n- `Embeddings`          (optional, `None`):                                  `.csv` file / OMERO.table with the `Cell id column` and the `Embedding x` and `Embedding y` columns defined in the 2 fields below. \n- `Embedding x`         (optional, \"UMAP_1\"): \t                            Name of the `Embedding x` used in `Embeddings`.\n- `Embedding y`         (optional, \"UMAP_2\"): \t                            Name of the `Embedding y` used in `Embeddings`.\n- `Molecules`           (optional, `None`): \t                               `.csv` file / OMERO.table with at least 4 columns: Molecule id, label, x, y (headers in the fields below). \n- `Molecule id`         (optional, \"id\"):   \t                                Name of the `Molecule id column` used in `Molecules`.\n- `Molecule label`      (optional, \"gene\"):   \t                            Name of the `Molecule label column` used in `Molecules`.\n- `Molecule x`          (optional, \"x\"):   \t                                Name of the `Molecule x column` used in `Molecules`.\n- `Molecule y`          (optional, \"y\"):   \t                                Name of the `Molecule y column` used in `Molecules`.\n- `Histograms`          (required , `True`): \t                                Add 3 plots showing: The number of transcripts per cell, the number of cells in each set, gene expression in each set.\n- `Heatmap`             (required , `True`):                                  Adds an heatmap.\n- `Status`              (required , `False`):                                 Adds a status panel to display info on the selected cell.\n- `Description`         (required , `False`):                                 Adds a description panel to display info on the dataset/image (taken from the description metadata field from OMERO).\n\nThe `Config file name` field depends on the `Save Config` field. When the `Save Config` field is not checked, the `Config file name` field is disabled and its value ignored.  \nThe `ROIs` and `Segmentation` fields are mutually exclusive, when the ROI field is selected the segmentation image is not considered.  \nThe `Expression` and `Cell identities` files are required to show the histograms.  \nThe `Embeddings` file is necessary to show the cells in a scatterplot.  \nThe `Molecules` file is used to overlay molecules on the image. All molecules are displayed and selecting by gene is not yet possible.  \nThe `Status` panel will be empty unless a `Segmentation` or `Embeddings` are provided.  \n\nThe `ROIs` are used as cells. Only the first shape is considered, and only polygons and rectangles are kept (TO DO: add support for ellipses). Other shapes are skipped.\nThe text value of the shape is used as a cell identity to link with expression/labels/embeddings, if there is no text value the ROI is skipped.\n\nOMERO.tables for use with omero-vitessce can be generated with:\n- OMERO python API (https://omero.readthedocs.io/en/stable/developers/Tables.html) or ezomero (https://thejacksonlaboratory.github.io/ezomero/ezomero.html#ezomero.post_table)\n- Fiji (https://wiki-biop.epfl.ch/en/data-management/omero/omero-tables#create-omerotables-from-a-fiji-script)\n- QuPath (https://wiki-biop.epfl.ch/en/data-management/omero/qupath#annotations-measurement-tables)\n- other [tools](https://omero-guides.readthedocs.io/en/latest/external_tools.html) / [APIs](https://omero-guides.readthedocs.io/en/latest/api_usage.html):\n\nOMERO.tables with a number of rows > `omero.web.max_table_download_rows` (default `10000`) will be truncated, and the value ignored by omero-vitessce.\n\n#### Attaching preexisting config files\nCustom config files should have a `.json` extension and added as attachements to a dataset or an image.\nThe configuration files does not need to refer to the dataset / image it is attached to and can refer to other images.\n\nFor how to create a custom config file see:\n- [VItessce Docs](http://vitessce.io/docs/view-config-json/)\n- [Vitessce Examples](http://vitessce.io/examples/)\n\n#### Serving the images / rois / data / metadata\nImages and data can be served through:\n- [omero-web-zarr](https://pypi.org/project/omero-web-zarr/):  OME-NGFF images only.\n- [omero-openlink](https://github.com/sukunis/OMERO.openlink): all images and file attachements.\n- `webclient/annotation/` endpoint: only for Annotations (useful for file attachments).\n- `webclient/omero_table/ID/csv?limit=MAX_TABLE_DOWNLOAD_ROWS` endpoint (`ID` = OMERO file ID of the OMERO.table, `MAX_TABLE_DOWNLOAD_ROWS` = the OMERO.web setting): for getting OMERO.tables as `csv` files.\n- `omero_vitessce/vitessce_json_rois/ID1,ID2,...` endpoint where `ID1,ID2,...` is a comma-separated list of image ids, to get the first shape of each ROI in `json` format.\n\nExample showing ROIs from OMERO displayed in the omero-vitessce viewer window:\n![ROI comparison](https://github.com/user-attachments/assets/807026b8-4ed2-4977-890b-73aa9c547ca2)\n\nDevelopment\n=======================\n\n## Sources\n\nThe main sources this project relies on are:\n- omero-vitessce from Will Moore for handling ROIs: https://github.com/will-moore/omero-vitessce\n- cookiecutter-omero-webapp: https://github.com/ome/cookiecutter-omero-webapp\n- `react_webapp` from omero-web-apps-examples: https://github.com/ome/omero-web-apps-examples/tree/master/react-webapp\n- Vitessce python package used for generating config files http://python-docs.vitessce.io/\n- omero-web-zarr to serve OME-NGFF images: https://github.com/ome/omero-web-zarr\n- omero-openlink to serve images and other files: https://github.com/sukunis/OMERO.openlink\n- omero-test-infra for testing: https://github.com/ome/omero-test-infra\n\n## Tests\n\n### Test dataset\nThe dataset used for automated testing is at: [test/data/MB266](test/data/MB266)\nThis is a cropped version derived from larger images and their associated data available at:\nhttps://doi.org/10.5281/zenodo.13832665\n\nThe original data are available at:\nhttps://www.ebi.ac.uk/biostudies/bioimages/studies/S-BIAD1093\n\nThe associated publication is available at:\nhttps://www.biorxiv.org/content/10.1101/2024.04.03.586404v1\n\n### omero-test-infra configuration\n[omero-test-infra](https://github.com/ome/omero-test-infra) is used for automated tests with [github-actions](.github/workflows/omero_plugin.yml).\nThe workflow setups an omero installation in docker and then:\n1)  Runs [app-config](.omeroci/app-config) to set up the omero-web plugin configuration.\n2)  Runs [app-build](.omeroci/app-build) which:\n- runs to create a test user/group and upload a [test dataset](test/data/MB266).\n- runs pytest tests in: [test/integration](test/integration)  \n\nIt is possible to perform these tests locally by:\n1) Starting the docker daemon.\n2) Cloning the omero-test infra repository inside the base folder of omero-vitessce: `git clone https://github.com/openmicroscopy/omero-test-infra .omero`\n3) Running: `.omero/app-docker`\n\n## React web app\n\n### omero_vitessce web app\n\nWe serve a custom version of the vitesce app: http://vitessce.io/\n\nThe app sets up a vitessce view configured through a text file in json format: http://vitessce.io/docs/view-config-json/\n\nThe configuration file is taken from the `?config` url parameter.\n\n### Installation\n\nThis project was created with [Create React App](https://github.com/facebook/create-react-app).\n\nYou can run this project in development mode or as an OMERO.web Django app.\n\nTo get started:\n\n    $ cd vitessce_app\n    $ npm install\n\nIn the project directory, you can run:\n\n### `npm start`\n\nRuns the app in the development mode.<br>\nOpen [http://localhost:3000](http://localhost:3000) to view it in the browser.\n\nThe page will reload if you make edits.<br>\nYou will also see any lint errors in the console.\n\n### `npm run build`\n\nBuilds the app for production to the `build` folder and copies the\nhtml and static files to the Django app in `vitessce app`. See the [deploy_build.sh]() script.<br>\n\nYou also need to install the app into your `omero-web` environment:\n\n    # cd to the root of the repo\n    $ pip install -e .\n\nYou will need to have the app configured in your OMERO.web install:\n\n    $ omero config append omero.web.apps '\"omero_vitessce\"'\n    $ omero config append omero.web.ui.right_plugins '[\"Vitessce\", \"omero_vitessce/webclient_plugins/right_plugin.vitessce.js.html\", \"vitessce_tab\"]'\n    $ omero config set omero.web.omero_vitessce.serveraddress '\"http://localhost:4080\"'\n\nIt bundles React in production mode and optimizes the build for the best performance.\n\nSee the Create React App section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.\n",
    "bugtrack_url": null,
    "license": "AGPLv3",
    "summary": "OMERO Vitessce multimodal data viewer plugin for OMERO.web",
    "version": "1.2.2",
    "project_urls": {
        "Homepage": "https://github.com/MicheleBortol/omero-vitessce"
    },
    "split_keywords": [
        "omero.web",
        " omero",
        " vitessce",
        " viewer"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dbd9c17f5c5817188577dead76d5a1261e753335dbb8bd4a28f4a79fc3b0fc29",
                "md5": "b9021f220a278fb406d83879ffc6ed47",
                "sha256": "f1ded663f53635e4e3e1cbb231a3db421be472c031971d5e6fe6fb55fde6da0d"
            },
            "downloads": -1,
            "filename": "omero_vitessce-1.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b9021f220a278fb406d83879ffc6ed47",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 10493543,
            "upload_time": "2024-11-25T10:54:23",
            "upload_time_iso_8601": "2024-11-25T10:54:23.019311Z",
            "url": "https://files.pythonhosted.org/packages/db/d9/c17f5c5817188577dead76d5a1261e753335dbb8bd4a28f4a79fc3b0fc29/omero_vitessce-1.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f1cc5c5f1912c2b8c5deca70dc98a5a71ccaa90eaa33b0205b7b16ac73eb4a08",
                "md5": "c6901b0967882f5c90deb402c5061a6d",
                "sha256": "84771edeb5f65430bca68a4ba4d1460b039af7681f41c98bc37b4d1ce673ed6f"
            },
            "downloads": -1,
            "filename": "omero_vitessce-1.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "c6901b0967882f5c90deb402c5061a6d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 10384906,
            "upload_time": "2024-11-25T10:54:25",
            "upload_time_iso_8601": "2024-11-25T10:54:25.993942Z",
            "url": "https://files.pythonhosted.org/packages/f1/cc/5c5f1912c2b8c5deca70dc98a5a71ccaa90eaa33b0205b7b16ac73eb4a08/omero_vitessce-1.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-25 10:54:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MicheleBortol",
    "github_project": "omero-vitessce",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "vitessce",
            "specs": [
                [
                    "==",
                    "3.3.0"
                ]
            ]
        },
        {
            "name": "shapely",
            "specs": [
                [
                    "==",
                    "2.0.6"
                ]
            ]
        }
    ],
    "lcname": "omero-vitessce"
}
        
Elapsed time: 0.43509s