gosling.js
gosling.js copied to clipboard
API to support utility visualizations in Gosling
Utility visualizations (or metadata visualizations) include tables, trees, and other summary visualizations that are often visualized together with genome-mapped data visualizations (often with coordinated interactions). We want to determine the best way to support this.
Option 1 - Extending Gosling Grammar
The user only has to write a single spec, so good for reusability. Nesting utility views and genomic views can be made possible. The challenges are to unify the grammar.
{
type: 'genomics', tracks: [...]
},
{
type: 'vega-lite', ...
},
{
type: 'table', ...
}
Option 2 - Optional Spec for Utility Visualization in Gosling Component
This is similar to how we support Gosling theme specs in Gosling Component:
<GoslingComponent spec={...} utility={...}/>
The user does not have to switch to another component. We can have an entry for adding/editing a spec for utility visualization on the editor.
Option 3 - Create React Component around Gosling for Utility Visualization
<GoslingUtilityComponent spec={...} utility={...}/>
I initially was leaning towards the third option (before thinking about Option 2), but I like the second option more, given that it supports rendering utility visualization using the same component. I am also open to Option 1 or other alternatives.
cc @ThHarbig (feel free to edit/add this directly!)