{"id":18454742,"url":"https://github.com/vitessce/vitessce","last_synced_at":"2025-04-14T08:53:33.488Z","repository":{"id":37466663,"uuid":"161811262","full_name":"vitessce/vitessce","owner":"vitessce","description":"Vitessce is a visual integration tool for exploration of spatial single-cell experiments. ","archived":false,"fork":false,"pushed_at":"2025-04-10T13:51:26.000Z","size":56223,"stargazers_count":202,"open_issues_count":404,"forks_count":46,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-13T18:53:18.220Z","etag":null,"topics":["data-visualization","gehlenborglab","hidivelab","hubmap","imaging","kharchenkolab","single-cell","vitessce","zarr"],"latest_commit_sha":null,"homepage":"http://vitessce.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vitessce.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-12-14T16:19:48.000Z","updated_at":"2025-04-03T22:28:00.000Z","dependencies_parsed_at":"2024-01-22T00:32:38.475Z","dependency_job_id":"4f019632-a734-4293-a865-5afa357b9938","html_url":"https://github.com/vitessce/vitessce","commit_stats":{"total_commits":1166,"total_committers":21,"mean_commits":"55.523809523809526","dds":0.6063464837049743,"last_synced_commit":"ffa8d5ff6f97badaee99c3ca33acdbbccf640734"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitessce%2Fvitessce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitessce%2Fvitessce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitessce%2Fvitessce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitessce%2Fvitessce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vitessce","download_url":"https://codeload.github.com/vitessce/vitessce/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248766733,"owners_count":21158301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-visualization","gehlenborglab","hidivelab","hubmap","imaging","kharchenkolab","single-cell","vitessce","zarr"],"created_at":"2024-11-06T08:05:57.746Z","updated_at":"2025-04-14T08:53:33.460Z","avatar_url":"https://github.com/vitessce.png","language":"JavaScript","readme":"\u003ca href=\"http://vitessce.io\"\u003e\n    \u003cimg src=\"./img/logo-transparent.png\" alt=\"Vitessce logo\" title=\"Vitessce\" /\u003e\n\u003c/a\u003e\n\nVisual Integration Tool for Exploration of Spatial Single-Cell Experiments\n\n- [Latest demos and documentation](http://vitessce.io/)\n- [Sandbox environment](http://vitessce.io/#?edit=true)\n- [Older demos](DEMOS.md)\n- [Older releases on NPM](https://www.npmjs.com/package/vitessce?activeTab=versions)\n\n\u003ctable\u003e\u003ctr\u003e\n\u003ctd\u003e    \n\u003cimg src=\"https://user-images.githubusercontent.com/1216518/93336741-2b60c880-f7f6-11ea-8b82-7e1e0ea45e43.png\" width=\"500\" alt=\"Screenshot of Vitessce with Linnarsson data\" /\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/1216518/93337080-a4f8b680-f7f6-11ea-9e53-2c73cc661b94.png\" width=\"500\" alt=\"Same data, zoomed in to cellular scale\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\u003c/table\u003e\n\n## Why Vitessce\n\n### Interactive\n\nVitessce consists of reusable interactive views including a scatterplot, spatial+imaging plot, genome browser tracks, statistical plots, and control views, built on web technologies such as WebGL.\n\n### Integrative\n\nVitessce enables visual analysis of multi-modal assay types which probe biological systems through techniques such as microscopy, genomics, and transcriptomics.\n\n### Serverless\n\nVisualize large datasets stored in static cloud object stores such as AWS S3. No need to manage or pay for expensive compute infrastructure for visualization purposes.\n\n## Usage\n\nVitessce can be used in React projects by installing the package from NPM:\n\n```sh\nnpm install vitessce\n```\n\nFor more details, please visit the [documentation](http://vitessce.io/docs/js-overview/).\n\n## How to Contribute\n\nWe welcome contributions! Please check out our [Contributing Guide](CONTRIBUTING.md) for detailed instructions.\n\n\n## Development\n\nFirst install [PNPM](https://pnpm.io/installation) v9.5. We develop and test against NodeJS `v18.6.0` and NPM `8.13.2`.\n\n\u003e **Note**\n\u003e NodeJS may require the [`max_old_space_size`](https://stackoverflow.com/a/59572966) value to be increased.\n  ```sh\n  . ./scripts/set-node-options.sh\n  ```\n\nCheckout the project, `cd`, and then:\n\n```sh\npnpm install\npnpm run build\npnpm run start-demo\n```\n\nThe development server will refresh the browser as you edit the code.\n\nFurther details for internal developers can be found within [dev-docs](./dev-docs/).\n\n### Changesets\n\nWe use [changesets](https://github.com/changesets/changesets) to manage the changelog.\nTherefore, when making code changes, do not edit `CHANGELOG.md` directly.\nInstead, run `pnpm changeset`, follow the prompts, and commit the resulting markdown files along with the code changes.\n\n### Branches\n\nPlease use one of the following naming conventions for new branches:\n- `{github-username}/{feature-name}`\n- `{github-username}/fix-{issue-num}`\n\n### Pull requests\n\nWe use squash merging for pull requests.\n\n### Monorepo organization\n\nSee `pnpm-workspace.yaml` for more information.\nWe are using PNPM [catalogs](https://pnpm.io/catalogs) which are available from v9.5.0 of PNPM.\n\n### Testing\n\nFor the end-to-end tests, they depend on \n```sh\ncd sites/demo \u0026\u0026 pnpm run build-demo\n```\n\n- To run all the tests, both unit and e2e: `./scripts/test.sh`\n- To run just the unit tests: `pnpm run test`\n\n### Linting\n\n```sh\npnpm run lint\n```\n\nTo allow the linter to perform automated fixes during linting: `pnpm run lint-fix`\n\n### Troubleshooting\n\nThe following commands can be helpful in case the local environment gets into a broken state:\n\n- `pnpm install`\n- `pnpm run clean`: removes build/bundle directories and all `tsconfig.tsbuildinfo` files (used by TypeScript's Project References). \n  - `pnpm run build`: need to re-build subpackages after this type of cleanup.\n- `pnpm run clean-deps`: removes all `node_modules` directories, including those nested inside subpackages.\n  - `pnpm install`: need to re-install dependencies after this type of cleanup.\n\n## Deployment\n\nBefore running any of the deployment scripts, confirm that you have installed the AWS CLI and are in the appropriate AWS account:\n```\n$ aws iam list-account-aliases --query 'AccountAliases[0]'\n\"gehlenborglab\"\n```\n\n### Staging\n\nTo build the current branch and push the \"minimal\" demo and docs sites to S3, run this script:\n```sh\n./scripts/push-demos.sh\n```\n\nThis will build the demo and docs, push both to S3, and finally open the docs deployment in your browser.\n\n#### Publish staged development site\n\nAfter doing a [manual test](TESTING.md) of the deployment of the dev site,\nif it looks good, copy it to dev.vitessce.io:\n\n```sh\n./scripts/copy-dev.sh https://{url returned by scripts/deploy-release.sh or scripts/push-demos.sh}\n```\n\nNote: if you need to obtain this URL later:\n\n```\nCopy dev to https://legacy.vitessce.io/demos/$DATE/$HASH/index.html\n```\n\n#### Publish staged docs to vitessce.io\n\nAfter doing a manual test of the deployment of the docs,\nif it looks good, copy it to vitessce.io:\n\n```sh\n./scripts/copy-docs.sh https://{url returned by scripts/deploy-release.sh or scripts/push-demos.sh}\n```\n\nNote: if you need to obtain this URL later:\n\n```\nCopy docs to https://data-1.vitessce.io/docs-root/$DATE/$HASH/index.html\n```\n\n## Release\n\nReleasing refers to publishing all sub-packages to NPM and creating a corresponding GitHub release.\n\nNote: releasing does not currently result in automatic deployment of the documentation or development sites (see the [Deployment](#deployment) section above).\n\n### From GitHub Actions\n\nWhen there are changesets on the `main` branch, the [`changesets/action`](https://github.com/changesets/action) bot will run `./scripts/changeset-version.sh --action` and make a pull request titled \"Create release\".\n\n- This pull request remains open until ready to make a release. The bot will update the pull request as new changesets are added to `main`.\n\nOnce this \"Create release\" pull request is merged, the next time `release.yml` is executed on GitHub Actions, the following will occur:\n- [`changesets/action`](https://github.com/changesets/action) will run `./scripts/changeset-publish.sh --action`, which:\n  - publishes to NPM\n  - creates a new git tag for the release\n- [`softprops/action-gh-release`](https://github.com/softprops/action-gh-release) will generate a GitHub release based on the git tag, using the latest changelog entries for the release notes.\n\n### From local machine\n\n```sh\npnpm run build\npnpm run bundle\npnpm run build-json-schema\n\n./scripts/changeset-version.sh\n./scripts/changeset-publish.sh # runs pnpm publish internally\n```\n\n## Version bumps\n\nIn this project we try to follow semantic versioning.\nThe following are examples of things that would require a major, minor, or patch type of bump.\n\n### Patch version bumps\n\nBug fixes, minor feature improvements, additional view types, additional coordination types, and additional file type implementations are possible in a patch version bump.\n\nWhen a coordination type is added, it must be reflected by a new view config JSON schema with an incremented `version` property, and a new view config upgrade function to enable previous view config versions to remain compatible.\nThe default schema version parameter of the `VitessceConfig` constructor may also change to reflect the new schema version.\n\n### Minor version bumps\n\nAn exported helper function or React component for plugin views had a change in props or function signature.\nMajor feature improvements or additions.\n\n### Major version bumps\n\nThe exported constant values changed, such as view types and coordination types, such that previous code using these values may no longer run successfully.\nReact props of the main `\u003cVitessce /\u003e` component changed.\nMajor behavior changes or interface updates.\nChanges to the directory structure or filenames in the `dist/` directory that could result in broken import statements.\n\n\n## Related repositories\n\n- [Viv](https://github.com/hms-dbmi/viv): A library for multiscale visualization of high-resolution multiplexed tissue data on the web.\n- [HiGlass](https://github.com/higlass/higlass): A library for multiscale visualization of genomic data on the web.\n- [vitessce-python](https://github.com/vitessce/vitessce-python): Python API and Jupyter widget.\n- [vitessce-r](https://github.com/vitessce/vitessce-r): R API and R htmlwidget.\n- [vitessce-data](https://github.com/hms-dbmi/vitessce-data): Scripts to generate sample data\n\n## Old presentations\n\n- [May 2022: Mark Keller's lab meeting update](https://docs.google.com/presentation/d/1qfd0rc6bF9nFIvOMp2YacpbJ7F8_UYhSYjLn26AlH7k/edit?usp=sharing)\n- [February 2022: Mark Keller's lab meeting update](https://docs.google.com/presentation/d/1J4lcWxD1GRGLBm0RLkGmEGcuQvXX9yBVBsQo2rXPTVM/edit?usp=sharing)\n- [October 2021: Mark Keller's lab meeting update](https://docs.google.com/presentation/d/1bibMLiR5aW_MgXn6ydhXWJsEN3tG5gJSw9xuYa49x5U/edit?usp=sharing)\n- [September 2021: HuBMAP Consortium Sci-Tech Webinar (Mark)](https://docs.google.com/presentation/d/1iPXSGEGT9HNNSrXT5uu0x_9Jq6L3cnhrpaz1Pge5O50/edit?usp=sharing)\n- [June 2021: Mark Keller's lab meeting update](https://docs.google.com/presentation/d/1P--F_MLeWK2n3JrY21mGn9FBgI2u60nQGN_XZtniSnc/edit?usp=sharing)\n- [April 2021: Spatial Biology Europe (Mark)](https://docs.google.com/presentation/d/1s33dKMCdE3LtC43IWBw48ZDmmtYJarDPtUOhH9T3D6Q/edit?usp=sharing)\n- [January 2021: Ilan Gold's lab meeting update](https://docs.google.com/presentation/d/10kmjLxQh5ji-4TVMq06KRpXek3uje_fQpTXBqjFj0p4/edit?usp=sharing)\n- [December 2020: Mark Keller's lab meeting update](https://docs.google.com/presentation/d/1rG0s5eH_NrFSk3_7lpmc9dsaUPFvnakYD59ff9D-G1M/edit?usp=sharing)\n- [November 2020: Ilan Gold's lab meeting update](https://docs.google.com/presentation/d/1egAwCR8UwdRCWiGYVRelebwNDH9boBX1nJIX5auvf1w/edit?usp=sharing)\n- [October 2020: Mark Keller's lab meeting update](https://docs.google.com/presentation/d/1M8dGbIGA_cfa3uZnGLnk3iMzMNVbxzza33OKBqwwlNQ/edit?usp=sharing)\n- [July 2020: Ilan Gold's lab meeting update](https://docs.google.com/presentation/d/1QzKYP6sXPefBMNfY4PW4H0AMoWVbw9HeNoweLmJg17Y/edit?usp=sharing)\n- [June 2020: NLM Informatics Training Conference (Trevor)](https://docs.google.com/presentation/d/1eYslI4y1LbnEGwj4XHXxqYcRKpYgqc9Y2mZTd5iCzMc/edit?usp=sharing)\n- [May 2020: Trevor Manz's overview of multimodal imaging in Vitessce](https://docs.google.com/presentation/d/1NPYZPduymN7wzgN-NYRQwd15D-nUZYILJTgBR2oNb04/edit?usp=sharing)\n- [January 2020: Ilan Gold's overview of IF Imagery](https://docs.google.com/presentation/d/1BSz2JefN2WSF_RwVpOrIhYD2V8D7ZLc5b21VTy2Xmlo/edit#slide=id.p)\n- [January 2020: Trevor Manz's wrap-up on Arrow, Zarr, and IMS](https://docs.google.com/presentation/d/1H2hff-bW4SZ3KFD5_q0iN-Dv1yew7pVe0MbdMsA2gko/edit)\n- [September 2019: HuBMAP Poster](https://drive.google.com/open?id=1pRiTN99-wZ6QuEMWzorcD4fA2Fi-7eW4)\n- [August 2019: SIBMI Presentations](https://docs.google.com/presentation/d/1IRWDofdvKS3qbLY-s0a1EUijha3m-JopMYgmETOIHq0/edit?usp=sharing)\n- [July 2019: Intern progress reports and HuBMAP collaboration](https://docs.google.com/presentation/d/10zanc_cHh-OcFvBeuJdKBpLnazjVh64pbbdD4kJQ7GY/edit?usp=sharing)\n- [May 2019: Harvard IT Summit](https://docs.google.com/presentation/d/1eYDMedzhQtcClB2cIBo17hlaSSAu_-vzkG4LY_mGGQ8/edit#slide=id.p)\n- [May 2019: Misc. tools](https://docs.google.com/presentation/d/1TaC68-r6bosnwi05BZ5bNh9tzeXsxyqmBo1gFZDxhGM/edit#slide=id.p)\n- [April 2019: Software engineering](https://docs.google.com/presentation/d/1uW3J83LYaa67M9ZKe15AQw_h06QiFJBzpBickbRFcCY/edit#slide=id.p)\n\n## Citation\n\nTo cite Vitessce in your work, please use:\n\n```bibtex\n@article{keller2024vitessce,\n  title = {{Vitessce: integrative visualization of multimodal and spatially resolved single-cell data}},\n  author = {Keller, Mark S. and Gold, Ilan and McCallum, Chuck and Manz, Trevor and Kharchenko, Peter V. and Gehlenborg, Nils},\n  journal = {Nature Methods},\n  year = {2024},\n  month = sep,\n  doi = {10.1038/s41592-024-02436-x}\n}\n```\n\nIf you use the image rendering functionality, please additionally cite Viv:\n\n```bibtex\n@article{manz2022viv,\n  title = {{Viv: multiscale visualization of high-resolution multiplexed bioimaging data on the web}},\n  author = {Manz, Trevor and Gold, Ilan and Patterson, Nathan Heath and McCallum, Chuck and Keller, Mark S. and Herr, II, Bruce W. and Börner, Kay and Spraggins, Jeffrey M. and Gehlenborg, Nils},\n  journal = {Nature Methods},\n  year = {2022},\n  month = may,\n  doi = {10.1038/s41592-022-01482-7}\n}\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitessce%2Fvitessce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvitessce%2Fvitessce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitessce%2Fvitessce/lists"}