Skip to content

feat(components): add gs-mutation-cooccurrence component#1130

Draft
fhennig wants to merge 7 commits into
mainfrom
feat/mutation-cooccurrence
Draft

feat(components): add gs-mutation-cooccurrence component#1130
fhennig wants to merge 7 commits into
mainfrom
feat/mutation-cooccurrence

Conversation

@fhennig

@fhennig fhennig commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Adds a new gs-mutation-cooccurrence web component that visualizes mutation co-occurrence patterns across time periods as a heatmap.

Each row represents a unique combination of alleles at the specified positions (using LAPIS aggregated field syntax: [501], S[501], ORF1a[501]). Left columns show the allele at each position; right columns show the proportion of sequences with that pattern per time period, colored by frequency.

Implementation follows the 3-layer architecture:

  • CooccurrenceOverTimeDataMap (Map2dBase subclass with own serializer)
  • queryMutationCooccurrence (fetchAggregated with position fields)
  • CooccurrenceOverTimeGrid (new grid sharing ProportionCell etc.)
  • gs-mutation-cooccurrence Lit wrapper

Shared grid pieces (ProportionCell, FeaturesOverTimeGridDisplay, styleGridHeader, getTooltipPosition) extracted from features-over-time-grid into features-over-time-grid-shared so both grids can use them.

resolves #

Summary

Screenshot

PR Checklist

  • All necessary documentation has been adapted.
  • The implemented feature is covered by an appropriate test.

Adds a new `gs-mutation-cooccurrence` web component that visualizes
mutation co-occurrence patterns across time periods as a heatmap.

Each row represents a unique combination of alleles at the specified
positions (using LAPIS aggregated field syntax: `[501]`, `S[501]`,
`ORF1a[501]`). Left columns show the allele at each position; right
columns show the proportion of sequences with that pattern per time
period, colored by frequency.

Implementation follows the 3-layer architecture:
- CooccurrenceOverTimeDataMap (Map2dBase subclass with own serializer)
- queryMutationCooccurrence (fetchAggregated with position fields)
- CooccurrenceOverTimeGrid (new grid sharing ProportionCell etc.)
- gs-mutation-cooccurrence Lit wrapper

Shared grid pieces (ProportionCell, FeaturesOverTimeGridDisplay,
styleGridHeader, getTooltipPosition) extracted from features-over-time-grid
into features-over-time-grid-shared so both grids can use them.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dashboard-components Ready Ready Preview, Comment Jul 15, 2026 1:30pm

Request Review

Felix Hennig and others added 3 commits July 15, 2026 14:46
…ooccurrence

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…occurrence stories

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…eaders

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Felix Hennig and others added 3 commits July 15, 2026 15:22
…gs-mutation-cooccurrence-over-time

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… tooltip duplication

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

1 participant