gosling.js icon indicating copy to clipboard operation
gosling.js copied to clipboard

feat: support vertical band connection between top and bottom axes with independent scales

Open sehilyi opened this issue 3 years ago • 0 comments

!! 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 xLinkingIds 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

Screen Shot 2021-08-30 at 4 35 44 PM

Based on an ideogram.js example

gosling-visualization (1)

Aug-13-2021 15-56-20

Dependent on https://github.com/higlass/higlass/pull/1042 Fix #160

sehilyi avatar Aug 12 '21 20:08 sehilyi