Introduction¶
GenomeSpy is a toolkit for interactive visualization of genomic and other data. It enables tailored visualizations by providing a declarative grammar, which allows for mapping data to visual channels (position, color, etc.) and composing complex visualization from primitive graphical marks (points, rectangles, etc.). The grammar is heavily inspired by Vega-Lite, providing partial compatibility and extending it with features essential in genome visualization.
The visualizations are rendered using a carefully crafted WebGL-based engine, enabling fluid interaction and smooth animation for datasets comprising several million data points. The high interactive performance is achieved using GPU shader programs for all scale transformations and rendering of marks. However, shaders are an implementation detail hidden from the end users.
The toolkit comprises two JavaScript packages:
- The core library implements the visualization grammar and rendering engine and can be embedded in web pages or applications.
- The app extends the core library with support for interactive analysis of large sample collections. It broadens the grammar by introducing a facet operator that repeats a visualization for multiple samples. The app also provides interactions for filtering, sorting, and grouping these samples.
Check the Getting Started page to get started with GenomeSpy and make your own tailored visualizations.
An interactive example¶
The example below is interactive. You can zoom in using the mouse wheel.
{
"data": {
"sequence": { "start": 0, "stop": 200000, "as": "x" }
},
"transform": [
{ "type": "formula", "expr": "random() * 0.682", "as": "u" },
{
"type": "formula",
"expr": "((datum.u % 1e-8 > 5e-9 ? 1 : -1) * (sqrt(-log(max(1e-9, datum.u))) - 0.618)) * 1.618 + sin(datum.x / 10000)",
"as": "y"
}
],
"mark": {
"type": "point",
"geometricZoomBound": 10.5
},
"encoding": {
"x": { "field": "x", "type": "quantitative", "scale": { "zoom": true } },
"y": { "field": "y", "type": "quantitative" },
"size": { "value": 200 },
"opacity": { "value": 0.6 }
}
}
About¶
GenomeSpy is developed by Kari Lavikka 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. 667403 (HERCULES) and No. 965193 (DECIDER)