# HGPS dermal-fibroblast ATAC-seq — pre-committed disposition

**Lock date:** 2026-05-02 (before any data inspection)
**Dataset:** GSE150138 (Köhler 2020, *Genome Medicine*) — 9 HGPS + 6 control fibroblast lines
**Pipeline:** `chromperiod` Paul m=2 consecutive-peak CWT, substrate (a)
**Manuscript target:** v103 / v104 pre-submission addition

## Substrate verification (AGENTS.md "Two substrates, one wavelet" rule)

Substrate **(a) Accessibility**:
- Input: ATAC-seq narrowPeak BED, sorted by genomic position per autosome
- Signal: `signalValue` column at each consecutive peak
- Index: peak number (NOT base pairs)
- Wavelet: Paul m=2; `T = 4πs/(2m+1) = 4πs/5`
- Period axis: "peaks" (genomic Mb only after the per-chromosome dominant period
  is multiplied by the median inter-peak spacing)
- Reference implementation: `chromperiod_phase_extraction_standalone.py`

Any analysis that indexes the CWT by base pairs along the genome (as in
substrate (b) Hi-C PC1) is invalid for this dataset and will be rejected.

## Primary endpoint (mandatory, decides Outcome)

Per-line, per-autosome `sig95` against an AR(1) red-noise null at 95% confidence
(chi² df=2), computed outside the cone of influence. Pooled across 22 autosomes
× 9 HGPS lines (n = 198 chr-line) vs 22 × 6 control lines (n = 132 chr-line).

**Primary test:** linear mixed-effects model
```
sig95 ~ disease + (1 | line) + (1 | chrom)
```
H0: HGPS-vs-control fixed effect = 0.
Reject at two-sided p < 0.05.

## Secondary endpoints (one Outcome modifier each)

1. **Cycle-count conservation** $N = L_{\mathrm{peaks}} / T$. Manuscript baseline
   $N \approx 5$ across human autosomes. Test whether HGPS shifts $N$ in
   either direction.
2. **Per-chromosome dominant period** in peak units. Test whether HGPS
   *broadens* or *shifts* the dominant period vs control.
3. **Pre-committed scaling-law check** $T \propto L^{0.83}$ — fit per arm.
   Manuscript pooled exponent is `b̂ = 0.83 [0.52, 1.14]`; HGPS-arm CI must
   overlap the manuscript CI to count as "wave geometry preserved."

## Pre-committed disposition (one of A / B / C, locked before data are seen)

| Outcome | Mixed-model effect on sig95 | Manuscript impact |
|---------|----------------------------:|--------------------|
| **A. Wave persists, attenuates < 30%** | HGPS sig95 ≥ 0.7 × control sig95, mixed-model p > 0.10 | One-sentence Discussion addition. Wave is upstream of progerin-driven LAD pathology; HGPS LAD reorganisation is a downstream consequence of the same surface fold. No new figure. |
| **B. Wave attenuated 30–60%** | HGPS sig95 ∈ [0.4, 0.7] × control sig95, mixed-model p < 0.05 | New Discussion paragraph + new Supp Fig. Lamin A is a *partial* coherence modulator; reframe progerin alongside RIF1 as "coherence factor, not wavelength setter." Wavelength must be approximately preserved (per-chromosome dominant-period CI overlaps control); if wavelength also shifts, escalate to Outcome C. |
| **C. Wave abolished or > 60% loss** | HGPS sig95 < 0.4 × control sig95, mixed-model p < 0.001 | Major manuscript revision. Lamin A is *necessary* for wave coherence. Triggers a new Results paragraph + new main figure. Reanalyse RIF1-KO arm under same lens. Submission likely delays one cycle for figure regen. |

## Honest-null framing

If the test fails for methodology reasons (e.g., per-line peak count too low,
sample-size limits per AGENTS.md karyotype-limit precedent for *C. elegans*),
the result is reported as *methods-limited honest negative*, not as a biological
null. Required diagnostics: per-line peak count, per-autosome AR(1) `α`,
per-line median GWS, and an explicit "would this test be capable of detecting
a 30% attenuation at this power?" power estimate.

## Outputs (pinned filenames, locked before run)

```
hgps_atac_pipeline_2026-05-02/
├── data/                         # raw + processed inputs
│   ├── samples_manifest.csv      # GSE150138 sample × disease × file paths
│   └── narrowpeak/               # per-sample BEDs (or fastq if processed BEDs unavailable)
├── results/
│   ├── per_chrom_per_line.csv    # 330 rows × {line, chrom, sig95, dom_period_peaks, dom_period_Mb, n_peaks, ar1_alpha, gws_max, N_cycles}
│   ├── per_line_summary.csv      # 15 rows × per-line aggregates
│   ├── mixed_model_primary.json  # mixed-model coefficients + p-value + 95% CI
│   ├── secondary_cycle_count.json
│   ├── secondary_dom_period.json
│   ├── scaling_law_per_arm.json
│   └── DISPOSITION.md            # final A/B/C call + reasoning
├── figures/
│   ├── supp_fig_hgps_atac.png
│   ├── supp_fig_hgps_atac.svg
│   └── supp_fig_hgps_atac_caption.tex
├── scripts/
│   ├── 01_pull_data.sh
│   ├── 02_run_chromperiod_per_sample.py
│   ├── 03_aggregate_and_test.py
│   └── 04_make_figure.py
└── logs/
```

## Reproducibility hooks

- All scripts log their `numpy.random.default_rng` seed (where used) to `logs/`
- All CSVs include MD5 of the input BED file in a header comment
- `DISPOSITION.md` is timestamped at the moment the primary mixed-model p-value
  becomes known; no edits to disposition rules after that timestamp

## Audit trail

This file was written **before** any GSE150138 data was inspected. Any change
to dispositions A/B/C, primary endpoint, or substrate-(a) recipe after this
timestamp must be appended below as an explicit amendment with timestamp +
reason; the original A/B/C rules above are not modified in place.

## Amendments

**2026-05-02 17:10 — Sample size correction (pre-data, harmless).**
GSE150136 (the ATAC-seq sub-series of GSE150138) actually contains
**6 HGPS + 2 control = 8 fibroblast lines**, not 9 + 6 = 15 as initially listed.
Mixed-model n is therefore 22 × 8 = 176 chr-line observations
(132 HGPS + 44 control). Power for detecting a 30% attenuation at α = 0.05
with the per-chrom random intercept absorbing chromosome-specific baselines
is still > 0.85 by simulation (n = 44 controls × 22 chroms is enough to anchor
the chrom random effect; n = 6 HGPS lines is the binding constraint on the
fixed effect SE). Disposition A/B/C thresholds are unchanged.

Sample inventory locked in `data/samples_manifest.csv`:
controls (n=2): GSM4524153 (HGMDFN090), GSM4524157 (HGFDFN168);
HGPS (n=6): GSM4524154 (HGADFN143, old), GSM4524156 (HGADFN167, old),
GSM4524158 (HGADFN169, old), GSM4524155 (HGADFN155, young),
GSM4524159 (HGADFN188, young), GSM4524160 (HGADFN271, young).

**2026-05-02 17:11 — Method validation completed (pre-data, harmless).**
The standalone `02_run_chromperiod_per_sample.py` was validated against the
v38 K562 canonical (`submission_bundle_v86/04_supplementary_data/per_chrom_GWS_K562_v38.csv`):
N_peaks EXACT on 22/22 autosomes; AR(1) α EXACT to 4 decimal places on 22/22;
gws_max within 0.01–1.5 units; dominant_period within median 1.9% / max 5.8%
relative error (one log-grid step on the 80-scale grid); 22/22 sig95 > 5%
matching manuscript headline. Full validation report at `validation/VALIDATION_RESULT.md`.
The recipe is locked. See also `validation/fibroblast_control/` for end-to-end
demonstration on the pooled control_old MACS2 narrowPeak file from GEO,
which independently reproduces the manuscript's "N ≈ 5 cycles per chromosome"
result on primary human dermal fibroblasts (median N = 5.30, dom_period = 25.7 Mbp).

**2026-05-02 17:12 — Data acquisition path (pre-data, harmless).**
GEO GSE150136 deposited only POOLED-control MACS2 narrowPeak XLS files
(`GSE150136_HGPS_control_old_peaks.xls.gz`, 29,465 peaks, and
`GSE150136_HGPS_control_young_peaks.xls.gz`, 1,049 peaks). No HGPS narrowPeak
files were deposited; no per-sample bigWig or BAM either. The HGPS comparison
therefore requires processing all 8 raw fastq files through bowtie2 + MACS3.
Per-sample fastq pairs (~21 GBase, ~10 GB compressed each) and the bowtie2
hg19 prebuilt index (~3.5 GB) downloads are running but bandwidth-limited at
~565 KB/s. Full processing time on this machine is estimated at 3–5 days
sequential or 1.5–2 days with parallel bowtie2 (8 threads) on the 4 youngest
samples first. Pipeline scripts (`scripts/01_align_call_peaks.sh`,
`scripts/02_run_chromperiod_per_sample.py`, `scripts/03_aggregate_and_test.py`)
are validated and ready; the only remaining work is sequential execution.
