Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

HistomicsUI

Build Status codecov.io doi-badge

Organize, visualize, and analyze histology images.

HistomicsUI organizes and manages whole slide image (WSI) files using Girder. It has a dedicated interface to select WSI, add annotations manually, and to run analysis and algorithms on all or parts of images.

Girder provides authentication, access control, and diverse storage options, including using local file systems and Amazon S3. WSI images are read and displayed via the large_image module. Algorithms are containerized using Docker and are run using the slicer_cli_web Girder plugin. These can be run on multiple worker machines via Girder Worker and celery.

A set of common algorithms are provided by HistomicsTK.

License

HistomicsUI is made available under the Apache License, Version 2.0. For more details, see LICENSE

Community

Discussions | Issues | Contact Us

Installation

Linux

In linux with Python 3.9 or newer:

Prerequisites:

  • MongoDB must be installed and running.

  • An appropriate version of Python must be installed.

HistomicsUI uses large_image sources to read different image file formats. You need to install appropriate sources for the files that will be used.

# install all sources from the main repo
pip install large-image[sources] --find-links https://girder.github.io/large_image_wheels

or

# install openslide and tiff sources
pip install large-image-source-tiff large-image-source-openslide --find-links https://girder.github.io/large_image_wheels

Now install the histomicsui package, have Girder build its UI, and start the Girder server. Note that at Girder may still require an old version of node (14.x) to build correctly – nvm can be used to manage multiple versions of node.

pip install histomicsui[analysis]
girder build
girder serve

Note that girder serve should only be used in development. In production, use a WSGI server such as gunicorn, e.g.:

.. code-block:: bash

gunicorn girder.wsgi:app –bind=localhost:8080 –workers=4 –preload

To use Girder Worker:

pip install girder_slicer_cli_web[worker]
GW_DIRECT_PATHS=true girder-worker -l info -Ofair --prefetch-multiplier=1

Girder Worker needs the rabbitmq message service to be running to communicate with Girder. Both Girder and Girder Worker should be run as a user that is a member of the docker group.

The first time you start HistomicsUI, you’ll also need to configure Girder with at least one user and one assetstore (see the Girder documentation). Additionally, it is recommended that you install the HistomicsTK algorithms. This can be done going to the Admin Console, Plugins, Slicer CLI Web settings. Set a default task upload folder, then import the dsarchive/histomicstk:latest docker image.

Reference Deployment

The standard deployment of HistomicsUI is the Digital Slide Archive. The associated repository has tools for readily installing via Docker, VirtualBox, or shell scripts on Ubuntu.

Development

The most convenient way to develop on HistomicsUI is in conjunction with the Digital Slide Archive. Once both repos have been cloned locally, mount your local HistomicsUI directory to the DSA docker container:

# /devops/ver5/docker-compose.local.yml
services:

  girder:
    volumes:
      - ../../../HistomicsUI:/opt/HistomicsUI

Then use the devops scripts from the Digital Slide Archive.

If you are making changes to the HistomicsUI frontend, you can have the Girder instance watch the local HistomicsUI source code and perform hot reloads on changes by running npm run build then npm run watch from histomicsui/web_client/. See the Girder docs for more information.

Annotations and Metadata from Jobs

This handles ingesting annotations and metadata that are uploaded and associating them with existing large image items in the Girder database. These annotations and metadata are commonly generated through jobs, such as HistomicTK tasks, but can also be added manually.

If a file is uploaded to the Girder system that includes a reference record, and that reference record contains an identifier field and at least one of a fileId and an itemId field, specific identifiers can be used to ingest the results. If a userId is specified in the reference record, permissions for adding the annotation or metadata are associated with that user.

Metadata

Identifiers ending in ItemMetadata are loaded and then set as metadata on the associated item that contains the specified file. Conceptually, this is the same as calling the PUT item/{id}/metadata endpoint.

Annotations

Identifiers ending in AnnotationFile are loaded as annotations, associated with the item that contains the specified file. Conceptually, this is the same as uploaded the file via the annotation endpoints for the item associated with the specified fileId or itemId.

If the annotation file contains any annotations with elements that contain girderId values, the girderId values can be identifier values from files that were uploaded with a reference record that contains a matching uuid field. The uuid field is required for this, but is treated as an arbitrary string.

Funding

This work was funded in part by the NIH grant U24-CA194362-01.

Metadata

Release files for histomicsui 1.8.1.dev158

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for histomicsui 1.8.1.dev158
File Size Uploaded Provenance Actions
histomicsui-1.8.1.dev158.tar.gz 24.1 MB Without provenance Details for histomicsui-1.8.1.dev158.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for histomicsui 1.8.1.dev158
File Interpreter ABI Platform Actions
histomicsui-1.8.1.dev158-py2.py3-none-any.whl Python 2, Python 3 none any Details for histomicsui-1.8.1.dev158-py2.py3-none-any.whl

Total release size: 24.2 MB

Release files / histomicsui-1.8.1.dev158.tar.gz

Download URL histomicsui-1.8.1.dev158.tar.gz
Size 24.1 MB
Tags Source
SHA-256 checksum
How to use checksums
0830dfe71c24151ae9973eb768e8c99f4208331fff3e93f9280715f339a7b0f8
BLAKE2b-256 checksum
How to use checksums
8047ed1951f983fa743e431ca08b18c20a3051fa75d1baebb4765ce77b16033a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / histomicsui-1.8.1.dev158-py2.py3-none-any.whl

Download URL histomicsui-1.8.1.dev158-py2.py3-none-any.whl
Size 86.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
3c780ac402c572292ad2a4d7192a4b89a0938092a39699e2d668fd8a79fb1d77
BLAKE2b-256 checksum
How to use checksums
8c226f79f448a9e26d72b134ed2ee494cdfabc08a2a740b02fb3cbc77cb6825b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Security for histomicsui 1.8.1.dev158

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page