genome-spy

A visualization grammar and GPU-accelerated toolkit for genomic data

https://github.com/genome-spy/genome-spy

Science Score: 67.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: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.6%) to scientific vocabulary

Keywords

bioinformatics cancer-genomics data-visualization genome genome-visualization graphics visual-analytics visualization webgl

Keywords from Contributors

mesh interpretability sequences generic projection interactive optim hacking network-simulation
Last synced: 4 months ago · JSON representation ·

Repository

A visualization grammar and GPU-accelerated toolkit for genomic data

Basic Info
  • Host: GitHub
  • Owner: genome-spy
  • License: mit
  • Language: JavaScript
  • Default Branch: master
  • Homepage: http://genomespy.app/
  • Size: 14.4 MB
Statistics
  • Stars: 183
  • Watchers: 4
  • Forks: 11
  • Open Issues: 75
  • Releases: 101
Topics
bioinformatics cancer-genomics data-visualization genome genome-visualization graphics visual-analytics visualization webgl
Created about 7 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

GenomeSpy

Teaser

npm version DOI

GenomeSpy is a visualization toolkit for genomic (and other) data. It features a visualization grammar inspired by Vega-Lite and a high-performance, WebGL-powered graphics renderer.

Documentation and examples can be found at https://genomespy.app/

Monorepo

GenomeSpy is split into several packages, two of which, core and app, are the most important:

Core

The core library provides the visualization grammar and a WebGL-powered rendering engine.

Cohort App

The app builds upon the core, extending the visualization grammar with support for faceting multiple (up to thousands of) patient samples. It provides a user interface for interactive analysis of the samples, which can be filtered, sorted, and grouped flexibly. The app includes session handling with provenance, URL hashes, and bookmarks.

Embed Examples

The embed-examples package contains examples of how to embed GenomeSpy in web applications and use the API for advanced use cases.

Contributing

Bootstrapping and running

  1. git clone git@github.com:genome-spy/genome-spy.git
  2. cd genome-spy
  3. npm install (use npm7!)
  4. npm start (starts a development server with the app package)

The packages/core/examples directory contains some random view specification that can be accessed through urls like http://localhost:8080/?spec=examples/first.json.

The packages/core/private/ directory is in .gitignore and served by the development server: http://localhost:8080/?spec=private/foo.json. Use it for experiments that should not go into version control.

If you want to use or develop the core library, launch a single-page app using: npm -w @genome-spy/core run dev

Contributing guidelines

Please see the CONTRIBUTING.md file for more information.

Citing

If you use GenomeSpy in your research, please cite the following paper:
Kari Lavikka, Jaana Oikkonen, Yilin Li, Taru Muranen, Giulia Micoli, Giovanni Marchi, Alexandra Lahtinen, Kaisa Huhtinen, Rainer Lehtonen, Sakari Hietanen, Johanna Hynninen, Anni Virtanen, Sampsa Hautaniemi, Deciphering cancer genomes with GenomeSpy: a grammar-based visualization toolkit, GigaScience, Volume 13, 2024, giae040, https://doi.org/10.1093/gigascience/giae040

About

Copyright (c) 2019-2024 Kari Lavikka. See LICENSE for details.

GenomeSpy is developed in The Systems Biology of Drug Resistance in Cancer group at the University of Helsinki.

This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. 965193 (DECIDER) and No. 847912 (RESCUER), as well as from the Biomedicum Helsinki Foundation, the Sigrid Juslius Foundation, and the Cancer Foundation Finland.

Contains some code copied and adapted from the following projects:

Owner

  • Name: GenomeSpy
  • Login: genome-spy
  • Kind: organization
  • Location: Finland

A GPU-powered visualization toolkit for genomic and other data

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: GenomeSpy
message: >-
  If you use this software in your research, please
  cite it as below.
type: software
authors:
  - given-names: Kari
    family-names: Lavikka
    email: kari.lavikka@helsinki.fi
    affiliation: University of Helsinki
    orcid: 'https://orcid.org/0000-0002-4163-4945'
url: "https://genomespy.app/"

GitHub Events

Total
  • Create event: 14
  • Issues event: 18
  • Release event: 8
  • Watch event: 7
  • Delete event: 4
  • Issue comment event: 5
  • Push event: 46
  • Pull request review event: 2
  • Pull request review comment event: 3
  • Pull request event: 7
  • Fork event: 2
Last Year
  • Create event: 14
  • Issues event: 18
  • Release event: 8
  • Watch event: 7
  • Delete event: 4
  • Issue comment event: 5
  • Push event: 46
  • Pull request review event: 2
  • Pull request review comment event: 3
  • Pull request event: 7
  • Fork event: 2

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 1,881
  • Total Committers: 5
  • Avg Commits per committer: 376.2
  • Development Distribution Score (DDS): 0.004
Past Year
  • Commits: 119
  • Committers: 1
  • Avg Commits per committer: 119.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Kari Lavikka k****a@h****i 1,873
dependabot[bot] 4****] 4
Lavikka k****a@l****l 2
trentfridey t****2@g****m 1
Lavikka k****a@l****i 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 157
  • Total pull requests: 81
  • Average time to close issues: 7 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 6
  • Total pull request authors: 4
  • Average comments per issue: 0.63
  • Average comments per pull request: 0.3
  • Merged pull requests: 54
  • Bot issues: 0
  • Bot pull requests: 22
Past Year
  • Issues: 13
  • Pull requests: 17
  • Average time to close issues: 29 days
  • Average time to close pull requests: 2 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.06
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 7
Top Authors
Issue Authors
  • tuner (148)
  • mattjvincent (3)
  • EddyGenome (2)
  • razsultana (2)
  • slobentanzer (1)
  • okunator (1)
Pull Request Authors
  • tuner (63)
  • dependabot[bot] (31)
  • razsultana (2)
  • trentfridey (2)
Top Labels
Issue Labels
core (87) enhancement (51) bug (33) Improvement (32) app (32) good first issue (22) UX (21) performance (15) WebGL (12) refactor (9) help wanted (4) playground (3) documentation (3) wontfix (1)
Pull Request Labels
dependencies (31) enhancement (2) app (2)

Dependencies

package-lock.json npm
  • 904 dependencies
package.json npm
  • @commitlint/cli ^16.2.4 development
  • @commitlint/config-conventional ^16.2.4 development
  • eslint ^8.1.0 development
  • eslint-config-prettier ^8.3.0 development
  • express ^4.17.2 development
  • husky ^8.0.1 development
  • lerna ^4.0.0 development
  • lint-staged ^12.4.1 development
  • node-sass ^7.0.1 development
  • prettier ^2.5.1 development
  • pretty-quick ^3.1.3 development
  • regenerator-runtime ^0.13.9 development
  • rollup-plugin-glsl ^1.3.0 development
  • rollup-plugin-minify-html-literals ^1.2.6 development
  • sass ^1.49.7 development
  • ts-json-schema-generator ^1.0.0 development
  • typescript ^4.6.0-dev.20211122 development
  • vite ^2.8.0 development
  • vite-raw-plugin ^1.0.1 development
  • vitest ^0.12.4 development
packages/app/package.json npm
  • @floating-ui/dom ^0.5.0
  • @fortawesome/fontawesome-free ^6.1.1
  • @fortawesome/fontawesome-svg-core ^6.1.1
  • @fortawesome/free-solid-svg-icons ^6.1.1
  • @genome-spy/core ^0.22.1
  • @reduxjs/toolkit ^1.6.2
  • idb ^7.0.1
  • lit ^2.0.2
  • lz-string ^1.4.4
  • mapsort ^1.0.5
  • redux-batched-actions ^0.5.0
  • redux-undo ^1.0.1
  • snarkdown ^2.0.0
packages/core/package.json npm
  • @types/d3-array ^3.0.2
  • @types/d3-dsv ^3.0.0
  • @types/d3-ease ^3.0.0
  • @types/d3-format ^3.0.1
  • @types/d3-interpolate ^3.0.1
  • @types/d3-scale ^4.0.2
  • d3-array ^3.1.1
  • d3-color ^3.0.1
  • d3-ease ^3.0.1
  • d3-format ^3.0.1
  • flatqueue ^2.0.3
  • internmap ^2.0.3
  • lit-html ^2.0.2
  • twgl.js ^4.19.1
  • vega-expression ^5.0.0
  • vega-loader ^4.4.0
  • vega-scale ^7.1.1
  • vega-util ^1.16.0
packages/doc-embed/package.json npm
  • @genome-spy/core ^0.22.1
  • lit ^2.0.0-rc.2
packages/embed-examples/package.json npm
  • @genome-spy/core ^0.22.1
  • lit ^2.0.0-rc.2
packages/playground/package.json npm
  • @fortawesome/fontawesome-free ^6.1.1
  • @fortawesome/fontawesome-svg-core ^6.1.1
  • @fortawesome/free-solid-svg-icons ^6.1.1
  • @genome-spy/core ^0.22.1
  • lit ^2.0.2
  • monaco-editor ^0.30.1
  • vega-loader ^4.4.0
.github/workflows/docs-and-playground.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2 composite
  • actions/setup-python v2 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/node.js.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2 composite
utils/markdown_extension/setup.py pypi