Blood manifest: 88 samples
Loaded 41,569,968 rows from 88 blood samples in 49.6s
GC reference: 472,386 probes
Sex chrom homology mask: 1494 probes
Pass 1: 4-feat blood GAM (16 workers)...
20/88 blood samples, 28s, R²=0.4456
40/88 blood samples, 41s, R²=0.4538
60/88 blood samples, 56s, R²=0.4597
80/88 blood samples, 69s, R²=0.4276
88/88 blood samples, 73s, R²=0.3564
Sex: 49 female, 39 male, 0 unknown
/usr/local/bin/build_norm_reference.py:247: RuntimeWarning: All-NaN slice encountered
probe_coverage_median = np.nanmedian(blood_matrix, axis=1)
/usr/local/lib/python3.12/site-packages/numpy/lib/_nanfunctions_impl.py:1593: RuntimeWarning: All-NaN slice encountered
return fnb._ureduce(a,
Probe coverage: 471,741/472,386 valid probes
Preliminary 5-feat GAM on blood (16 workers)...
20/88 blood prelim 5-feat, 45s, R²=0.9237
40/88 blood prelim 5-feat, 70s, R²=0.8925
60/88 blood prelim 5-feat, 91s, R²=0.9202
80/88 blood prelim 5-feat, 113s, R²=0.9151
88/88 blood prelim 5-feat, 128s, R²=0.9157
/usr/local/bin/build_norm_reference.py:335: RuntimeWarning: All-NaN slice encountered
prelim_median = np.nanmedian(prelim_matrix, axis=1)
/usr/local/lib/python3.12/site-packages/numpy/lib/_nanfunctions_impl.py:1593: RuntimeWarning: All-NaN slice encountered
return fnb._ureduce(a,
Probe mask: 15,669 masked (3.3%) — 10,149 low cov, 8,203 high var, 4,604 extreme
Wrote batch_reference.parquet (472,386 probes) to ./batch_reference.parquet
Wrote sex_calls.csv (88 samples) to ./sex_calls.csv
Wrote feature_stats.csv (88 samples) to ./feature_stats.csv
Build reference complete in 559.0s total