More details can be found in our preprint describing the Viv library and related work. Please cite this preprint in your research:
Trevor Manz, Ilan Gold, Nathan Heath Patterson, Chuck McCallum, Mark S Keller, Bruce W Herr II, Katy Börner, Jeffrey M Spraggins, Nils Gehlenborg, "Viv: Multiscale Visualization of High-resolution Multiplexed Bioimaging Data on the Web." OSF Preprints (2020), doi:10.31219/osf.io/wd2gu
Avivator Included in this repository is
Avivator, a lightweight viewer for remote imaging data. Avivator is a purely client-side program that only requires access to Bio-Formats-compatiable Zarr or OME-TIFF data over HTTP or on local disk.
- Vizarr Vizarr is a minimal, purely client-side program for viewing Zarr-based images built with Viv. It exposes a Python API using the imjoy-rpc and can be directly embedded in Jupyter Notebooks or Google Colab Notebooks.
- Viv benchmark A set of scripts to benchmark Viv's retrieval of image tiles from pyramidal OME-TIFF files and Zarr stores via HTTP1 and HTTP2.
Tools Built with Viv
- The Avivator image viewer will be included as the default visualization for OME-TIFF files: https://github.com/galaxyproject/galaxy/pull/10534
HuBMAP CCF EUI:
Supported Data Formats
Viv supports a subset of formats that can be generated with the
- OME-TIFF files (pyramidal)
- Bioformats-compatible Zarr stores (pyramidal)
For OME-TIFF, Viv supports any pyramid that implements the OME design spec for TIFF pyramids(which the
raw2ometiff pipeline provides).
Non-pyramidal images are also supported provided the individual texture can be uploaded to the GPU (<
4096 x 4096 in pixel size).
Please see the tutorial for more information on these formats.
Initial load time for OME-TIFFs can be optimized by generating a special
offsets.json file containing byte offsets for the associated binary data. For more information, see the documentation.
$ npm install @hms-dbmi/viv
You will also need to install deck.gl (and its companion luma.gl) dependencies as they are listed as
This is in order to prevent users from installing multiple versions of deck.gl.
$ npm install deck.gl @luma.gl/core
$ git clone https://github.com/hms-dbmi/viv.git $ cd viv && npm install # install deps for viv library $ npm run install:avivator # install deps for avivator app $ npm start # Starts rollup build (for Viv) & dev server for Avivator
Please install the Prettier plug-in for your preferred editor. Badly formatted code will fail on Travis.
To run unit and integration tests locally, use
npm test. For full prodcution test (including linting and formatting checks),
npm run test:prod.
npm run build
npm run build:avivator
To bump the version number, clean up/update the CHANGELOG.md, and push the tag to Github,
npm version [major | minor | patch] depending on which you want. Then run
./publish.sh to publish the package/demo.
Please navigate to viv.gehlenborglab.org to see the full documenation.