Fix scientific data preparation, cache ownership, and heatmap geometry - #77
Conversation
◈ PR Lens
Architecture 21 components touched across 6 lanes. Play the interactive walkthrough Inside the changed components — 3 viewsComponent view — Regional & Genome-Wide Data Preparation Upfront column projection, lead row selection, and label filtering in regional and genome-wide plotting. Component view — Reference Data & Cache Publication Atomic gene/exon ZIP cache publication, safe recombination map streaming, and path-resolved PLINK execution. Component view — Rendering Panels & Backend Geometry Shared heatmap cell edge geometry, panel-owned drawing, and inset colorbars preserving genomic coordinate scale. Data flow
Follow each request, response and payload The other flows — 2 sequences
View
Tip Switch GitHub to dark mode and the diagrams follow. The moving dots are this pull request's data in motion 🪧 More tips
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. |
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
R2column 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:
R2values and inactive effect columns.Live PLINK, Spark and external annotation services were not exercised; their boundaries use controlled process/transport fixtures.