Skip to content

Intelligent heatmap#1063

Merged
alexvpickering merged 14 commits into
masterfrom
intelligent-heatmap
May 28, 2026
Merged

Intelligent heatmap#1063
alexvpickering merged 14 commits into
masterfrom
intelligent-heatmap

Conversation

@alexvpickering

@alexvpickering alexvpickering commented May 28, 2026

Copy link
Copy Markdown
Contributor

Description

implement downsampleSettings for heatmap expression to enable scalable but fast heatmap rendering. Uses bucketing approach (~1000cells per bucket formed by groupedTracks) for most large datasets. If sum of bucket sizes is >50K it will instead directly determine ~5K cells needed for heatmap and run an expression work request for just required cells.

Details

URL to issue

N/A

Link to staging deployment URL (or set N/A)

N/A

Links to any PRs or resources related to this PR

Integration test branch

master

Merge checklist

Your changes will be ready for merging after all of the steps below have been completed.

Code updates

Have best practices and ongoing refactors being observed in this PR

  • Migrated any selector / reducer used to the new format.
  • All new dependency licenses have been checked for compatibility.

Manual/unit testing

  • Tested changes using InfraMock locally or no tests required for change, e.g. Kubernetes chart updates.
  • Validated that current unit tests for code work as expected and are sufficient for code coverage or no unit tests required for change, e.g. documentation update.
  • Unit tests written or no unit tests required for change, e.g. documentation update.

Integration testing

You must check the box below to run integration tests on the latest commit on your PR branch.
Integration tests have to pass before the PR can be merged. Without checking the box, your PR
will not pass the required status checks for merging.

  • Started end-to-end tests on the latest commit.

Documentation updates

  • Relevant Github READMEs updated or no GitHub README updates required.
  • Relevant Wiki pages created/updated or no Wiki updates required.

Optional

  • Staging environment is unstaged before merging.
  • Photo of a cute animal attached to this PR.

Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
…eHiddenCellSets

Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
@alexvpickering alexvpickering added the safe to run Sensitive jobs are safe to be run label May 28, 2026
@dbmi-svc-checkmarx

dbmi-svc-checkmarx commented May 28, 2026

Copy link
Copy Markdown

Logo
Checkmarx One – Scan Summary & Detailsf7ec7303-3875-4dd9-acc5-90ac82f358b3


New Issues (1) Checkmarx found the following issues in this Pull Request
# Severity Issue Source File / Package Checkmarx Insight
1 HIGH CVE-2026-44705 Npm-tmp-0.0.33
detailsRecommended version: 0.2.6
Description: The tmp npm package contains a path traversal vulnerability that allows escaping the intended temporary directory when untrusted data flows into th...
Attack Vector: NETWORK
Attack Complexity: LOW
Vulnerable Package

Use @Checkmarx to interact with Checkmarx PR Assistant.
Examples:
@Checkmarx how are you able to help me?
@Checkmarx rescan this PR

@github-actions

Copy link
Copy Markdown
Contributor

📦 Next.js Bundle Analysis for ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 685.37 KB (🟡 +506 B)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Nine Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/experiments/[experimentId]/data-exploration 1.47 MB (🟡 +1.77 KB) 2.14 MB
/experiments/[experimentId]/data-processing 490.42 KB (🟢 -194 B) 1.15 MB
/experiments/[experimentId]/plots-and-tables/dot-plot 447.62 KB (🟡 +1.82 KB) 1.11 MB
/experiments/[experimentId]/plots-and-tables/embedding-categorical 446.18 KB (🟢 -160 B) 1.11 MB
/experiments/[experimentId]/plots-and-tables/embedding-continuous 468.98 KB (🟡 +2.35 KB) 1.13 MB
/experiments/[experimentId]/plots-and-tables/marker-heatmap 536.89 KB (🟡 +924 B) 1.19 MB
/experiments/[experimentId]/plots-and-tables/spatial-categorical 895.48 KB (🟡 +1.77 KB) 1.54 MB
/experiments/[experimentId]/plots-and-tables/spatial-feature 898.07 KB (🟡 +2.52 KB) 1.55 MB
/experiments/[experimentId]/plots-and-tables/violin 470.25 KB (🟡 +2.51 KB) 1.13 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

…n it

Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
Signed-off-by: Alex Pickering <alexvpickering@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

📦 Next.js Bundle Analysis for ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 685.37 KB (🟡 +506 B)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Nine Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/experiments/[experimentId]/data-exploration 1.47 MB (🟡 +1.77 KB) 2.14 MB
/experiments/[experimentId]/data-processing 490.42 KB (🟢 -194 B) 1.15 MB
/experiments/[experimentId]/plots-and-tables/dot-plot 447.62 KB (🟡 +1.82 KB) 1.11 MB
/experiments/[experimentId]/plots-and-tables/embedding-categorical 446.18 KB (🟢 -160 B) 1.11 MB
/experiments/[experimentId]/plots-and-tables/embedding-continuous 468.98 KB (🟡 +2.35 KB) 1.13 MB
/experiments/[experimentId]/plots-and-tables/marker-heatmap 536.89 KB (🟡 +924 B) 1.19 MB
/experiments/[experimentId]/plots-and-tables/spatial-categorical 895.48 KB (🟡 +1.77 KB) 1.54 MB
/experiments/[experimentId]/plots-and-tables/spatial-feature 898.07 KB (🟡 +2.52 KB) 1.55 MB
/experiments/[experimentId]/plots-and-tables/violin 470.25 KB (🟡 +2.51 KB) 1.13 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

@alexvpickering
alexvpickering merged commit 3f5699b into master May 28, 2026
14 checks passed
@alexvpickering
alexvpickering deleted the intelligent-heatmap branch May 28, 2026 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to run Sensitive jobs are safe to be run

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants