viv
Library for multiscale visualization of high-resolution multiplexed bioimaging data on the web. Directly renders Zarr and OME-TIFF.
Science Score: 85.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: nature.com -
✓Committers with academic emails
1 of 19 committers (5.3%) from academic institutions -
✓Institutional organization owner
Organization hms-dbmi has institutional domain (dbmi.hms.harvard.edu) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.3%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Library for multiscale visualization of high-resolution multiplexed bioimaging data on the web. Directly renders Zarr and OME-TIFF.
Basic Info
- Host: GitHub
- Owner: hms-dbmi
- License: mit
- Language: JavaScript
- Default Branch: main
- Homepage: http://avivator.gehlenborglab.org
- Size: 14.6 MB
Statistics
- Stars: 316
- Watchers: 13
- Forks: 51
- Open Issues: 64
- Releases: 15
Topics
Metadata Files
README.md
Viv

A WebGL-powered toolkit for interactive visualization of high-resolution, multiplexed bioimaging datasets.
About
Viv is a JavaScript library for rendering OME-TIFF and OME-NGFF (Zarr) directly in the browser. The rendering components of Viv are packaged as deck.gl layers, making it easy to compose with existing layers to create rich interactive visualizations.
More details and related work can be found in our paper and original preprint. Please cite our paper 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." Nature Methods (2022), doi:10.31219/10.1038/s41592-022-01482-7
💻 Related Software
| Screenshot | Description |
:-------------------------:|:-------------------------:
| Avivator
A lightweight viewer for local and remote datasets. The source code is include in this repository under avivator/. See our 🎥 video tutorial to learn more.
| Vizarr
A minimal, purely client-side program for viewing OME-NGFF and other Zarr-based images. Vizarr supports a Python backend using the imjoy-rpc, allowing it to not only function as a standalone application but also directly embed in Jupyter or Google Colab Notebooks.
💥 In Action
- Vitessce visualization framework
- HuBMAP Common Coordination Framework Exploration User Interface (CCF EUI)
- OME-Blog OME-NGFF and OME-NGFF HCS announcements
- ImJoy I2K Tutorial
- Galaxy Project includes Avivator as default viewer for OME-TIFF files
- 10x Genomics uses Viv in their viewer for Xenium In Situ Analysis Technology: demo
💾 Supported Data Formats
Viv's data loaders support OME-NGFF (Zarr), OME-TIFF, and Indexed OME-TIFF*.
We recommend converting proprietrary file formats to open standard formats via the
bioformats2raw + raw2ometiff pipeline. Non-pyramidal datasets 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.
*We describe Indexed OME-TIFF in our paper as an optional enhancement to provide efficient random chunk access for OME-TIFF. Our approach substantially improves chunk load times for OME-TIFF datasets with large Z, C, or T dimensions that otherwise may incur long latencies due to seeking. More information on generating an IFD index (JSON) can be found in our tutorial or documentation.
💽 Installation
bash
$ npm install @hms-dbmi/viv
You will also need to install deck.gl and other peerDependencies manually.
This step prevent users from installing multiple versions of deck.gl in their projects.
bash
$ npm install deck.gl @luma.gl/core
Breaking changes may happen on the minor version update. Please see the changelog for information.
📖 Documentation
Detailed API information and example sippets can be found in our documentation.
🏗️ Development
This repo is a monorepo using pnpm workspaces. The package manager used to install and link dependencies must be pnpm.
Each folder under packages/ are a published as a separate packages on npm under the @vivjs scope. The top-level package @hms-dbmi/viv exports from these dependencies.
To develop and test the @hms-dbmi/viv package:
- Run
pnpm installinvivroot folder - Run
pnpm devto start a development server - Run
pnpm testto run all tests (or specific, e.g.,pnpm test --filter=@vivjs/layers)
🛠️ Build
To build viv's documentation and the Avivator website (under sites/), run:
sh
pnpm build # all packages, avivator, and documentation
pnpm -r build --filter=avivator # build a specific package or site
📄 Sending PRs and making releases
For changes to be reflected in package changelogs, run npx changeset and follow the prompts.
Note not every PR requires a changeset. Since changesets are focused on releases and changelogs, changes to the repository that don't effect these won't need a changeset (e.g., documentation, tests).
The Changesets GitHub Action will create and update a PR that applies changesets versions of @vivjs/ packages to NPM.
🌎 Browser Support
Viv supports coverage across Safari, Firefox, Chrome, and Edge. Please file an issue if you find a browser in which Viv does not work.
Owner
- Name: Harvard Medical School - Department of Biomedical Informatics
- Login: hms-dbmi
- Kind: organization
- Location: Boston
- Website: http://dbmi.hms.harvard.edu/
- Repositories: 354
- Profile: https://github.com/hms-dbmi
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it using these metadata."
title: "Viv"
authors:
- given-names: "Trevor"
family-names: "Manz"
orcid: "https://orcid.org/0000-0001-7694-5164"
affiliation: "Harvard Medical School"
- given-names: "Ilan"
family-names: "Gold"
orcid: "https://orcid.org/0000-0002-5823-1026"
affiliation: "Harvard Medical School"
url: "https://github.com/hms-dbmi/viv"
preferred-citation:
type: article
title: "Viv: multiscale visualization of high-resolution multiplexed bioimaging data on the web"
authors:
- given-names: "Trevor"
family-names: "Manz"
orcid: "https://orcid.org/0000-0001-7694-5164"
affiliation: "Harvard Medical School"
- given-names: "Ilan"
family-names: "Gold"
orcid: "https://orcid.org/0000-0002-5823-1026"
affiliation: "Harvard Medical School"
- given-names: "Nathan Heath"
family-names: "Patterson"
affiliation: "Vanderbilt University"
orcid: "https://orcid.org/0000-0002-0064-1583"
- given-names: "Chuck"
family-names: "McCallum"
affiliation: "Harvard Medical School"
orcid: "https://orcid.org/0000-0003-4039-9768"
- given-names: "Mark S."
family-names: "Keller"
affiliation: "Harvard Medical School"
orcid: "https://orcid.org/0000-0003-3003-874X"
- given-names: "Bruce W."
family-names: "Herr"
name-suffix: "II"
affiliation: "Indiana University"
orcid: "https://orcid.org/0000-0002-6703-7647"
- given-names: "Kay"
family-names: "Börner"
affiliation: "Indiana University"
orcid: "https://orcid.org/0000-0002-3321-6137"
- given-names: "Jeffrey M."
family-names: "Spraggins"
affiliation: "Vanderbilt University"
orcid: "https://orcid.org/0000-0001-9198-5498"
- given-names: "Nils"
family-names: "Gehlenborg"
affiliation: "Harvard Medical School"
orcid: "https://orcid.org/0000-0003-0327-8297"
doi: "10.1038/s41592-022-01482-7"
journal: "Nature Methods"
month: 5
year: 2022
GitHub Events
Total
- Issues event: 17
- Watch event: 31
- Delete event: 68
- Issue comment event: 94
- Push event: 61
- Pull request review comment event: 20
- Pull request review event: 25
- Pull request event: 92
- Fork event: 6
- Create event: 52
Last Year
- Issues event: 17
- Watch event: 31
- Delete event: 68
- Issue comment event: 94
- Push event: 61
- Pull request review comment event: 20
- Pull request review event: 25
- Pull request event: 92
- Fork event: 6
- Create event: 52
Committers
Last synced: 8 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| ilan-gold | i****d@g****m | 289 |
| Trevor Manz | t****z@g****m | 106 |
| dependabot[bot] | 4****] | 70 |
| Chuck McCallum | m****c | 16 |
| Andreas Girgensohn | a****3 | 8 |
| Mark Keller | 7****k | 7 |
| github-actions[bot] | 4****] | 7 |
| Nils Gehlenborg | n****s@h****u | 5 |
| Robert Schiemann | b****d@g****m | 3 |
| Peter Todd | x****e | 2 |
| EricMoerthVis | 4****s | 1 |
| HongKee Moon | h****n@m****m | 1 |
| Nathan Drezner | 3****n | 1 |
| Nikolay Akhmetov | n****v@g****m | 1 |
| Roger Trullo | r****o@h****m | 1 |
| Wei Ouyang | o****7@g****m | 1 |
| Yi Sun | i****s@g****e | 1 |
| anton-slashm | 1****m | 1 |
| s-n-i | 1****i | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 91
- Total pull requests: 327
- Average time to close issues: almost 2 years
- Average time to close pull requests: about 1 month
- Total issue authors: 29
- Total pull request authors: 18
- Average comments per issue: 2.95
- Average comments per pull request: 1.09
- Merged pull requests: 181
- Bot issues: 1
- Bot pull requests: 175
Past Year
- Issues: 16
- Pull requests: 94
- Average time to close issues: 6 days
- Average time to close pull requests: 18 days
- Issue authors: 9
- Pull request authors: 7
- Average comments per issue: 0.44
- Average comments per pull request: 0.67
- Merged pull requests: 36
- Bot issues: 0
- Bot pull requests: 72
Top Authors
Issue Authors
- ilan-gold (22)
- manzt (13)
- xinaesthete (8)
- ngehlenborg (7)
- keller-mark (6)
- yarikoptic (4)
- rj3d (3)
- alexeykurbako (3)
- dependabot[bot] (2)
- CameronFRWatson (2)
- JohnGrime (2)
- s-n-i (2)
- Dev-Lan (2)
- aliaksandr-voranau (2)
- vadzimvashchanka (2)
Pull Request Authors
- dependabot[bot] (181)
- manzt (80)
- ilan-gold (48)
- github-actions[bot] (13)
- xinaesthete (7)
- keller-mark (4)
- rj3d (3)
- EricMoerthVis (2)
- mccalluc (2)
- anton-slashm (1)
- haxiomic (1)
- alexeykurbako (1)
- hkmoon (1)
- ndrezn (1)
- s-n-i (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 10
-
Total downloads:
- npm 76,561 last-month
-
Total dependent packages: 34
(may contain duplicates) -
Total dependent repositories: 45
(may contain duplicates) - Total versions: 309
- Total maintainers: 5
npmjs.org: @hms-dbmi/viv
> A WebGL-powered toolkit for interactive visualization of high-resolution, multiplexed bioimaging datasets.
- Homepage: https://github.com/hms-dbmi/viv#readme
- License: MIT
-
Latest release: 0.18.0
published 7 months ago
Rankings
Maintainers (4)
npmjs.org: @vivjs/constants
> **Warning** Internal module
- Homepage: https://github.com/hms-dbmi/viv#readme
- License: MIT
-
Latest release: 0.18.0
published 7 months ago
Rankings
Maintainers (1)
npmjs.org: @vivjs/types
> Basic types used by Viv
- Homepage: https://github.com/hms-dbmi/viv#readme
- License: MIT
-
Latest release: 0.18.0
published 7 months ago
Rankings
Maintainers (1)
npmjs.org: @vivjs/extensions
> A collection of Deck.gl [`LayerExtension`](https://deck.gl/docs/developer-guide/custom-layers/layer-extensions#layerextension-interface) modules for `@vivjs/layers`
- Homepage: https://github.com/hms-dbmi/viv#readme
- License: MIT
-
Latest release: 0.18.0
published 7 months ago
Rankings
Maintainers (1)
npmjs.org: @vivjs/loaders
> Utilities for loading multiscale imaging datasets in Viv
- Homepage: https://github.com/hms-dbmi/viv#readme
- License: MIT
-
Latest release: 0.18.0
published 7 months ago
Rankings
Maintainers (1)
npmjs.org: @vivjs/layers
> A collection of custom Deck.gl layers for bioimaging datasets
- Homepage: https://github.com/hms-dbmi/viv#readme
- License: MIT
-
Latest release: 0.18.0
published 7 months ago
Rankings
Maintainers (1)
npmjs.org: @vivjs/views
> Deck.gl [`View`](https://deck.gl/docs/api-reference/core/view) implementations for Viv
- Homepage: https://github.com/hms-dbmi/viv#readme
- License: MIT
-
Latest release: 0.18.0
published 7 months ago
Rankings
Maintainers (1)
npmjs.org: @vivjs/viewers
> Drop-in React components for Viv
- Homepage: https://github.com/hms-dbmi/viv#readme
- License: MIT
-
Latest release: 0.18.0
published 7 months ago
Rankings
Maintainers (1)
proxy.golang.org: github.com/hms-dbmi/viv
- Documentation: https://pkg.go.dev/github.com/hms-dbmi/viv#section-documentation
- License: mit
-
Latest release: v0.14.2
published over 2 years ago
Rankings
npmjs.org: zelibobla-viv
High bit depth, high resolution, many channels, low overhead
- Homepage: https://github.com/hms-dbmi/viv#readme
- License: MIT
- Status: deprecated
-
Latest release: 0.10.63
published over 4 years ago
Rankings
Maintainers (1)
Dependencies
- @deck.gl/test-utils ^8.6.7 development
- @luma.gl/core ^8.5.10 development
- @luma.gl/gltools ^8.5.10 development
- @luma.gl/test-utils ^8.5.10 development
- @probe.gl/test-utils ^3.4.1 development
- @rollup/plugin-node-resolve ^10.0.0 development
- @rollup/plugin-sucrase ^3.1.0 development
- @vitejs/plugin-react ^1.0.1 development
- abortcontroller-polyfill ^1.5.0 development
- browserify ^17.0.0 development
- deck.gl ^8.6.7 development
- documentation ^13.1.0 development
- eslint ^7.12.1 development
- eslint-config-airbnb ^18.2.0 development
- eslint-config-prettier ^6.15.0 development
- eslint-plugin-import ^2.22.1 development
- eslint-plugin-react ^7.21.5 development
- eslint-plugin-react-app ^6.2.2 development
- gl ^4.4.1 development
- glsl-colormap ^1.0.1 development
- prettier ^2.2.1 development
- promise.prototype.finally ^3.1.2 development
- rollup ^2.32.1 development
- rollup-plugin-glslify ^1.2.0 development
- serve-static ^1.14.1 development
- tap-spec ^5.0.0 development
- tape ^5.0.1 development
- tape-catch ^1.0.6 development
- tape-run ^8.0.0 development
- typescript ^4.1.3 development
- vite ^2.8.6 development
- @math.gl/culling ^3.4.2
- fast-deep-equal ^3.1.3
- fast-xml-parser ^3.16.0
- geotiff ^2.0.5
- lzw-tiff-decoder ^0.1.1
- math.gl ^3.3.0
- quickselect ^2.0.0
- zarr ^0.5.1
- @luma.gl/constants ~8.5.16
- @vivjs/types workspace:* development
- glsl-colormap ^1.0.1 development
- @vivjs/constants workspace:*
- @math.gl/core ^3.5.7
- @math.gl/culling ^3.5.7
- @vivjs/constants workspace:*
- @vivjs/extensions workspace:*
- @vivjs/loaders workspace:*
- @vivjs/types workspace:*
- @vivjs/types workspace:*
- fast-xml-parser ^3.16.0
- geotiff ^2.0.5
- lzw-tiff-decoder ^0.1.1
- quickselect ^2.0.0
- zarr ^0.5.1
- @vivjs/constants workspace:*
- @vivjs/extensions workspace:*
- @vivjs/layers workspace:*
- @vivjs/loaders workspace:*
- @vivjs/types workspace:*
- @vivjs/viewers workspace:*
- @vivjs/views workspace:*
- @vivjs/constants workspace:*
- math.gl ^3.5.7
- @vivjs/constants workspace:*
- @vivjs/extensions workspace:*
- @vivjs/views workspace:*
- fast-deep-equal ^3.1.3
- @math.gl/core ^3.5.7
- @vivjs/layers workspace:*
- @vivjs/loaders workspace:*
- math.gl ^3.5.7
- 1339 dependencies
- @vitejs/plugin-react ^1.3.2 development
- serve-static ^1.15.0 development
- vite ^2.9.9 development
- @hms-dbmi/viv workspace:*
- @material-ui/core ^4.11.0
- @material-ui/icons ^4.9.1
- @material-ui/lab ^4.0.0-alpha.56
- @math.gl/core ^3.5.7
- geotiff ^2.0.5
- lodash ^4.17.21
- react ^16.8.0 || ^17.0.0
- react-dom ^16.8.0 || ^17.0.0
- react-dropzone ^11.2.3
- react-router-dom ^5.2.0
- zustand ^3.4.1
- @rollup/plugin-node-resolve ^13.3.0 development
- documentation ^13.2.5 development
- rollup ^2.75.7 development
- @hms-dbmi/viv workspace:*
- @rollup/plugin-sucrase ^4.0.4
- actions/checkout v4 composite
- actions/setup-node v3 composite
- pnpm/action-setup v2 composite
- actions/checkout v4 composite
- changesets/action v1 composite
- pnpm/action-setup v2 composite
- actions/checkout v4 composite
- actions/deploy-pages v2 composite
- actions/upload-pages-artifact v2 composite
- pnpm/action-setup v2 composite