Skip to content

Give the H1 example the H3 example's five views - #15

Merged
jbloom merged 1 commit into
mainfrom
h1-five-views
Aug 29, 2026
Merged

jbloom merged 1 commit into
mainfrom
h1-five-views

Conversation

@jbloom

@jbloom jbloom commented Aug 29, 2026

Copy link
Copy Markdown
Member

examples/9gsp_antigenic_regions was a single antigenic-region view with a long caption. It now follows examples/8faw_antigenic_regions view for view:

  1. antigenic regions w glycans — HA1 colored by classical antigenic region, N-glycans in gold, and the only view that pins a camera
  2. antigenic regions — the same with glycans: hide
  3. California/2009 to D.3.1 — the 37 modeled sites that differ between A/California/07/2009 and subclade D.3.1, in red
  4. D.3.1 to D.3.1.1 — the four that differ between the two subclades
  5. D.3.1.1 with G155E — those four again, plus HA1 155 in the indigo the first two views give region Sa

Where the sequences come from

A/California/07/2009 (FJ966974) comes from the flu-seqneut-cellular-therapy library. Each subclade is represented by the one strain flu-seqneut-2026 assigns that subclade as its whole derived_haplotype — A/Missouri/11/2025 (PV886191, the 2026 and 2026-2027 cell-based vaccine strain) and A/Andalucia/PMC-00977/2025 (PX399795) — which is the same rule the H3 example used to pick subclade K.

Those libraries store the H1 ectodomain starting at HA1 site 4, not site 1. flu-seqneut-2026's config.yml says so where it builds its alignment (H1N1: DTL # add these three amino acids as HAs in viral barcode miss first 3 ectodomain aas), and all 258 haplotype names in the 2026 H1N1 library agree with it. Reading the sequences in the H3 example's frame would have painted every site three residues off, so the offset is recorded in the script's docstring. HA2 E172K is dropped from the 2009 comparison because 9GSP does not model it, as the H3 script drops its own unmodeled sites.

Both mutation lists were re-derived from the library CSVs and checked against the transcribed ones.

Notable differences from the H3 example

  • 9GSP deposits the whole trimer, so every CSV names all three protomers rather than relying on symmetry — the four-site subclade comparison is twelve rows.
  • Drawn labels are gone, so this page also has no Labels button; the substitution is a tooltip.
  • There is no receptor analogue here, so no black rows and no black bullet.

Verified

  • Regenerating from make_coloring_csv.py reproduces all five CSVs; the two antigenic-region ones carry the same color, label and note for every residue as the coloring.csv they replace.
  • scripts/check.sh green; scripts/build_docs.sh rebuilt all three copies of the page.
  • Headless Chromium: all five deep links select their own view and caption, no console exceptions, the opening camera reads back the spec's numbers exactly, and canvas sampling finds red only in views 3-5, indigo only in view 5 and in the two region views, gold only in view 1.

🤖 Generated with Claude Code

The 9GSP example was one antigenic-region view with a long caption; it now
follows the 8FAW example view for view: the classical antigenic regions of H1
HA1, the same with the N-glycans hidden, the sites that differ between
A/California/07/2009 and subclade D.3.1, the four that differ between D.3.1 and
D.3.1.1, and that last comparison again with HA1 155 -- where G155E arises on
the D.3.1.1 background -- in the same indigo the first two views give region Sa.

The sequences come from the lab's own libraries: A/California/07/2009
(FJ966974) from flu-seqneut-cellular-therapy, and each subclade represented by
the one strain flu-seqneut-2026 assigns that subclade as its whole
derived_haplotype -- A/Missouri/11/2025 (PV886191) and A/Andalucia/PMC-00977/2025
(PX399795). Those libraries store the H1 ectodomain starting at HA1 site 4, not
site 1, which flu-seqneut-2026's config.yml states outright and which every
haplotype name in the library confirms; the offset is written into the script's
docstring because getting it wrong would silently paint the wrong residues.
Both mutation lists were re-derived from the libraries and checked against the
transcribed ones before this commit.

9GSP deposits the whole trimer, so every CSV names all three protomers rather
than relying on symmetry. Drawn labels are gone, as in the H3 example, so this
page also has no Labels button -- the substitution is a tooltip instead. Only
the first view pins a camera.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jbloom
jbloom merged commit 67745d9 into main Aug 29, 2026
4 checks passed
@jbloom
jbloom deleted the h1-five-views branch August 29, 2026 13:25
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