gosling.js
gosling.js copied to clipboard
feat: support vertical band connection between top and bottom axes with independent scales
!! This is a draft and not ready to review or merge !!
Updates (Draft)
Added yDomain
xDomain: { chromosome: '1' },
yDomain: { chromosome: '1' },
tracks: [...]
An open issue is that since we do not distort the scale between x and y axes, yDomain
is dependent on xDomain
, and the actual domain of the y-axis is adjusted internally. For example, showing chromosome 1 on the x-axis and showing the entire genome on the y-axis is not possible. Instead, the y-axis uses the same scale of the x-axis and zooms to the center position of the original yDomain
.
Renamed linkingId
to xLinkingId
and added yLinkingId
Grammar-wise, the differentiation of the x and y axes allows more flexibility for linking, e.g., cross-axes linking.
Ability to use yScale
for the second x-axis in the "gosling-2d-track"
This applies when betweenLink
mark is used and different xLinkingId
s are applied between x
and x1
.
Design Decisions
- Zoom levels are synced between indirectly linked axes. E.g., In the band connection example with three views, the top and bottom views are locked with the same zoom level. Therefore, it is not possible to show band connections between a whole-genome-scale view and a few-bp view.
- Disallow zoom & pan interactions in a band connection view and do not show crosshairs. However, this can be supported in the future with intuitive interactions.
To Do
- [x] selection of tilesets seems a bit off
- [x] compile higlass viewconfig programmatically
- [ ] Implement GIVE example again
- [ ] Circular version of GIVE (mid-band in circular layouts)
- [ ] vertical GIVE (horizontal band connections)
- [ ] Use actual MizBee datasets
- [ ] edge bundling
- [ ] Allow independent zoom scales of two axes in a single track
- [ ] allow interactions in the band connection view
- [ ] band connection view should contain only one track (itself), considering it a special view.
- [ ] 2D brushing
- [ ] Allow fetching a single data uising multiple assemblies
Screenshots
Experimental

Based on an ideogram.js example
Dependent on https://github.com/higlass/higlass/pull/1042 Fix #160