Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 34 commits into
base: main
Choose a base branch
from

Conversation

sehilyi
Copy link
Member

@sehilyi sehilyi commented Aug 12, 2021

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

  • selection of tilesets seems a bit off
  • 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 higlass/higlass#1042
Fix #160

@sehilyi sehilyi force-pushed the sehilyi/two-independent-x-axes branch 2 times, most recently from 890e0b5 to 5940b38 Compare August 27, 2021 17:38
@sehilyi sehilyi force-pushed the sehilyi/two-independent-x-axes branch from bacefc6 to f0c00c8 Compare August 28, 2021 23:27
@sehilyi sehilyi force-pushed the sehilyi/two-independent-x-axes branch from 5e5e883 to 19b5e69 Compare August 30, 2021 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support vertical band connection with independent scales on top and bottom axes
2 participants