Package: histomicsui
Organize, visualize, and analyze histology images.HistomicsUIorganizes and manages whole slide image (WSI) files usingGirder.  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 thelarge_imagemodule.  Algorithms are containerized usingDockerand are run using theslicer_cli_webGirder plugin.  These can be run on multiple worker machines viaGirder Workerandcelery.A set of common algorithms are provided byHistomicsTK.LicenseHistomicsUI is made available under the Apache License, Version 2.0. For more details, seeLICENSECommunityDiscussions|Issues|Contact UsInstallationLinuxIn linux with Python 3.8 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 repopipinstalllarge-image[sources]--find-linkshttps://girder.github.io/large_image_wheelsor# install openslide and tiff sourcespipinstalllarge-image-source-tifflarge-image-source-openslide--find-linkshttps://girder.github.io/large_image_wheelsNow 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.pipinstallhistomicsui[analysis]girderbuildgirderserveTo use Girder Worker:pipinstallgirder_slicer_cli_web[worker]GW_DIRECT_PATHS=truegirder-worker-linfo-Ofair--prefetch-multiplier=1Girder 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 theGirderdocumentation).  Additionally, it is recommended that you install theHistomicsTKalgorithms.  This can be done going to the Admin Console, Plugins, Slicer CLI Web settings.  Set a default task upload folder, then import thedsarchive/histomicstk:latestdocker image.Reference DeploymentThe standard deployment of HistomicsUI is theDigital Slide Archive.  The associated repository has tools for readily installing via Docker, VirtualBox, or shell scripts on Ubuntu.DevelopmentThe most convenient way to develop on HistomicsUI is to use thedevops scripts from the Digital Slide Archive.If you are making changes to the HistomicsUI frontend, you can make Girder watch the source code and perform hot reloads on changes using the--watch-pluginargument togirder build. See theGirder docsfor more information.Annotations and Metadata from JobsThis handles ingesting annotations and metadata that are uploaded and associating them with existing large image items in the Girder database.  These annotations and metadata re 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 areferencerecord, and thatreferencerecord contains anidentifierfield and at least one of afileIdand anitemIdfield, specific identifiers can be used to ingest the results.  If auserIdis specified in thereferencerecord, permissions for adding the annotation or metadata are associated with that user.MetadataIdentifiers ending inItemMetadataare loaded and then set as metadata on the associated item that contains the specified file.  Conceptually, this is the same as calling thePUTitem/{id}/metadataendpoint.AnnotationsIdentifiers ending inAnnotationFileare 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 specifiedfileIdoritemId.If the annotation file contains any annotations with elements that containgirderIdvalues, thegirderIdvalues can beidentifiervalues from files that were uploaded with areferencerecord that contains a matchinguuidfield.  Theuuidfield is required for this, but is treated as an arbitrary string.FundingThis work was funded in part by the NIH grantU24-CA194362-01.