Skip to content

HomoeoGWAS v2.1.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 16:54
· 16 commits to main since this release

HomoeoGWAS v2.1.0 adds a heteroscedasticity-robust bootstrap null for group
omniB, chunk-parallel streaming scans and agent-facing audit and summary
tools.

Highlights:

  • interact.calibration.null_variance: smooth_pc4 (canonical group omniB).
    The parametric bootstrap draws null phenotypes whose residual variance is a
    smooth function of the leading genotype principal components, fitted by
    IRLS. When residual variance tracks population structure, the homoscedastic
    bootstrap can be anti-conservative; smooth_pc4 restored familywise
    calibration in the tested settings. On real data it can reject fewer units
    than the homoscedastic null. Results record
    smooth_variance_parametric_bootstrap_minp_plus_one and the fitted
    weights. The low-level config default stays homoscedastic; report it as a
    sensitivity analysis. smooth_pc4 requires bootstrap checkpointing.
  • scan.n_jobs for streaming single-locus scans (plain and LOCO). Chunks keep
    the serial chunk boundaries and batches and are scored by forked workers;
    each worker uses one native thread, and the decompressed summary statistics
    are byte-identical to the serial scan run with one BLAS thread (verified on
    1.9 million wheat markers). Each worker holds about
    chunk_size × n_samples × 20 bytes (about 3.3 GB at the default chunk size
    and 827 samples); lower scan.chunk_size or scan.n_jobs if memory is
    limited. A worker that dies stops the scan with an error. scan.n_jobs has
    no effect on in-memory or GPU scans. Gzip output is a standard multi-member
    gzip stream.
  • MCP tools audit_results and summarize_results. run_interaction
    exposes null_variance (default smooth_pc4, with checkpointing enabled in
    the generated config) and run_gwas exposes scan_jobs.
  • Batched interact cases share phenotype-independent panel preparation, and
    an opt-in hash-keyed GRM cache reuses relationship matrices across runs with
    identical inputs.
  • interact.burden.feature_seed separates gene-feature randomness from the
    bootstrap seed (default: the bootstrap seed).

Behaviour changes:

  • In group-unit (and joint) families, a homoeolog group is eligible only when
    every declared pair edge is estimable; groups with an unestimable edge are
    marked unestimable instead of being scored on a partial edge set, which can
    reduce the number of tested groups. Edge-unit families are unchanged.
  • Partial omniB response errors fail closed.

Reproducibility note: REML variance components depend on the BLAS thread count
in the last digits (about 1e-6 in PVE), which propagates to per-marker
statistics. Bit-identical reproduction requires the same thread settings; the
formal interaction path fixes one native thread per worker.

Upgrade guidance: existing configs run unchanged. To use the robust null, add
null_variance: smooth_pc4 and checkpoint: {enabled: true, root: <dir>}
under interact.calibration.