Skip to content

Fix scientific data preparation, cache ownership, and heatmap geometry - #77

Merged
michael-denyer merged 3 commits into
mainfrom
fix-review-findings
Sep 19, 2026
Merged

michael-denyer merged 3 commits into
mainfrom
fix-review-findings

Conversation

@michael-denyer

@michael-denyer michael-denyer commented Sep 19, 2026

Copy link
Copy Markdown
Owner

Regional plots now resolve selected rows, column roles, LD options and one lead row before rendering. Label eligibility follows that row before ranking, and reference LD values are assigned by SNP ID without changing row order or losing coloring when an R2 column already exists. Colocalization and genome-wide plots normalize source-owned fields before composition; disabled effect coloring does not require effect columns.

GTEx and overlap calculations preserve chromosome and absolute position. Fine-mapping loaders preserve reported membership without inventing credible sets. Category, species and annotation handling preserve the supplied data and configuration.

Caller-supplied recombination directories remain read-only. Archive ingestion streams regular map files into owned paths, downloads stage privately, and gene/exon caches publish atomically. PLINK paths resolve before changing directory. Matplotlib and Bokeh use the same heatmap edges; shared genomic axes remain aligned when adding a colorbar. Example verification generates outside the checkout and explicitly accepts baselines without discarding manual changes.

Compatibility changes are documented in the changelog, user guide and ADR 0009: position-only overlap requires common_chrom, FINEMAP/CAVIAR no longer infer membership, and legacy annotation CSV caches are cold misses. LD tests are separated into command construction, output parsing and process execution, preserving all original test bodies.

Validation:

  • 1,527 default tests passed with 97% reported coverage, including regression cases for label selection, existing R2 values and inactive effect columns.
  • Full repository hooks passed, including lint, formatting, links, Markdown, Mermaid, YAML and coverage tests.
  • Wheel and source distribution built successfully.
  • The PR updates four heatmap exports. The follow-up label and LD fixes produce no further example differences; native cell bounds and shared-axis alignment are tested.

Live PLINK, Spark and external annotation services were not exercised; their boundaries use controlled process/transport fixtures.

@michael-denyer
michael-denyer marked this pull request as ready for review September 19, 2026 22:30
@michael-denyer
michael-denyer merged commit a1023e2 into main Sep 19, 2026
6 checks passed
@coldtea-pr-lens

coldtea-pr-lens Bot commented Sep 19, 2026

Copy link
Copy Markdown

◈ PR Lens

🟢 +0 new · 🟠 ~21 changed · 🔴 -0 removed · 3 flows · 25 files · commit 6df0b1e


Architecture

Architecture diagram for michael-denyer/pyLocusZoom at 6df0b1e

21 components touched across 6 lanes.

Play the interactive walkthrough


Inside the changed components — 3 views

Component view — Regional & Genome-Wide Data Preparation

Upfront column projection, lead row selection, and label filtering in regional and genome-wide plotting.

Architecture view of Component view — Regional & Genome-Wide Data Preparation in michael-denyer/pyLocusZoom

Component view — Reference Data & Cache Publication

Atomic gene/exon ZIP cache publication, safe recombination map streaming, and path-resolved PLINK execution.

Architecture view of Component view — Reference Data & Cache Publication in michael-denyer/pyLocusZoom

Component view — Rendering Panels & Backend Geometry

Shared heatmap cell edge geometry, panel-owned drawing, and inset colorbars preserving genomic coordinate scale.

Architecture view of Component view — Rendering Panels & Backend Geometry in michael-denyer/pyLocusZoom

Data flow

Data flow diagram for michael-denyer/pyLocusZoom at 6df0b1e

Regional data preparation and lead resolution · Gene annotation fetch and atomic archive publication · Colocalization input projection and scatter preparation

Follow each request, response and payload


The other flows — 2 sequences

Gene annotation fetch and atomic archive publication

Sequence diagram of Gene annotation fetch and atomic archive publication in michael-denyer/pyLocusZoom

Colocalization input projection and scatter preparation

Sequence diagram of Colocalization input projection and scatter preparation in michael-denyer/pyLocusZoom

View

  • Architecture lens
  • Data flow lens
  • Expand every detail

Tip

Switch GitHub to dark mode and the diagrams follow. The moving dots are this pull request's data in motion

🪧 More tips
  • Run npx skills add coldteadotai/pr-lens, then tell your coding agent: "Diagram the change you just made with PR Lens and attach it to the pull request."
  • Run npx @coldtea/pr-lens-cli analyze --base origin/main on a branch, then npx @coldtea/pr-lens-cli render .pr-lens/graph.json. Same lenses, your own model key, before the pull request exists
  • Untick Architecture lens or Data flow lens under View to hide a diagram, or tick Expand every detail to open every section. The comment redraws in a few seconds
  • Click the link under each diagram to open it on a canvas you can zoom, pan and step through
  • The diagrams are links. Click one to open it on the canvas, then press W or click play to walk through the change
  • Open a diagram on the canvas, then press W or click play to walk through the change one step at a time
  • The CLI's render reads .github/pr-lens.yml and applies your renames, exclusions and lane pins at draw time
  • Set github.comment.collapsed: true in .github/pr-lens.yml to fold the comment behind one View architecture and data flow row. Drawing still runs on every push
  • Set github.draw: on-demand in .github/pr-lens.yml and PR Lens stops drawing every push. Comment @pr-lens draw on a pull request when you want that one drawn
  • Add .github/workflows/pr-lens.yml with coldteadotai/pr-lens/packages/action@v0 and your model provider's key as its api-key to run PR Lens from your own CI. Any /chat/completions endpoint works
  • Push a commit and the comment redraws for the new head. A slow older run never overwrites a newer one

Thanks for using PR Lens! It's built by Coldtea, free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

@michael-denyer
michael-denyer deleted the fix-review-findings branch September 19, 2026 22:30
@michael-denyer michael-denyer mentioned this pull request Sep 19, 2026
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