statgen / locuszoom

A Javascript/d3 embeddable plugin for interactively visualizing statistical genetic data from customizable sources.
https://statgen.github.io/locuszoom/
MIT License
156 stars 29 forks source link

Intervals data layer performance enhancements #221

Closed abought closed 3 years ago

abought commented 3 years ago

Ticket: #219

Purpose

The intervals track is subject to significant performance issues when given large amounts of data. This rewrites the intervals track positioning logic to improve performance in a mostly backwards compatible manner.

TODO

Summary of changes

Additional

Future work

There are some issues with the self-resizing behavior, which relies on an unfortunate number of sequential re-renders. This would require a significant rework of internal positioning and height logic throughout LocusZoom: we may be able to unlock a further 25-75% speedup but this is outside the scope of the ticket.

We may also wish to add a separate ID field to the spec for some sites, like the T2D portal. If a dataset has many overlapping intervals, the start field is a bad ID field because it won't always be unique. (d3 enter/exit selections won't necessarily work as intended)