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
[x] QA using highly heterogeneous portal datasets
Summary of changes
Rework internal rendering to reduce DOM size by 75%, preventing total browser hangs with extremely large datasets
Always render "merged tracks" mode in a single row- do not attempt to lay things out to avoid collisions. If two elements occupy the same space only the "last" item will be visible.
If users would like this feature back, the code to handle it is available and can be exposed as a config option. However, the original behavior was buggy, and most datasets with collisions will probably have far more rows than people had originally expected.
Additional
Move the forest plot to an extension because it has no active users at present
Loaders will be present by default and can now be added via the declarative API
Bugfixes for link behavior on clickable tooltips, and add unit tests
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)
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
link
behavior on clickable tooltips, and add unit testsFuture 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)