UNPKG

3.3 kBMarkdownView Raw
1# Viv [![npm version](https://badge.fury.io/js/%40hms-dbmi%2Fviv.svg)](https://badge.fury.io/js/%40hms-dbmi%2Fviv)
2
3A library for multiscale visualization of high-resolution multiplexed tissue data on the web. Directly renders Bio-Formats-compatible Zarr and OME-TIFF.
4Written in JavaScript and built on Deck.gl with modern web technologies.
5
6## Installation
7
8```bash
9$ npm install @hms-dbmi/viv
10```
11
12## About
13
14Viv is a JavaScript library providing utilities for rendering primary imaging data. Viv supports WebGL-based multi-channel rendering of both pyramidal and non-pyramidal images. The rendering components of Viv are provided as Deck.gl layers, making it easy to compose images with existing layers and efficiently update rendering properties within a reactive paradigm.
15
16More details can be found in our preprint describing the Viv library and related work. Please cite this preprint in your research:
17
18> 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 Tissue Data on the Web." **OSF Preprints** (2020), [doi:10.31219/osf.io/wd2gu](https://doi.org/10.31219/osf.io/wd2gu)
19
20## Avivator
21
22Also included in this repository is [`Avivator`](http://avivator.gehlenborglab.org), a lightweight "batteries-included"
23WebGL viewer for remote imaging data. Avivator is a purely client-side program that only requires access to
24Bio-Formats "raw" Zarr or OME-TIFF data over HTTP. To use Avivator with your own data, please see the data preparation
25[tutorial](tutorial/README.md). Initial load time for OME-TIFFs can be optimized by generating a special `offsets.json`
26file containing byte offsets for the associated binary data. For more information, see the
27[documentation](http://viv.gehlenborglab.org/#ome-tiff-loading).
28
29
30
31## Development
32
33```bash
34$ git clone https://github.com/hms-dbmi/viv.git
35$ cd viv && npm install # install deps for viv library
36$ npm run install:avivator # install deps for avivator app
37$ npm start # Starts rollup build (for Viv) & dev server for Avivator
38```
39
40Please install the [Prettier plug-in](https://prettier.io/docs/en/editors.html) for your preferred editor.
41(Badly formatted code will fail on Travis.)
42
43Due to [difficulties](https://github.com/hms-dbmi/viv/issues/103) around compiling shaders on Travis, unit tests and layer lifecycle
44tests are run locally as a pre-push hook. Travis runs a test build, linting, and prettier.
45
46To run unit and integration tests locally, use `npm test`. For full prodcution test (including linting and formatting checks),
47use `npm run test:prod`.
48
49## Build
50
51- `@hms-dbmi/viv` library: `npm run build`
52- `Avivator` viewer: `npm run build:avivator`
53
54## Publish
55
56To bump the version number, clean up/update the CHANGELOG.md, and push the tag to Github,
57please run `npm version [major | minor | patch]` depending on which you want. Then run `./publish.sh` to publish the package/demo.
58
59## Browser Support
60
61We support both WebGL1 and WebGL2 contexts, which should give near universal coverage. Please file an issue if you find a browser in which we don't work.
62
63## Documentation
64
65Please navigate to [viv.gehlenborglab.org](http://viv.gehlenborglab.org) to see full documenation.