Blood manifest: 184 samples
Loaded 86,919,024 rows from 184 blood samples in 103.7s
GC reference: 472,386 probes
Sex chrom homology mask: 1494 probes
Pass 1: 4-feat blood GAM (16 workers)...
20/184 blood samples, 28s, R²=0.5001
40/184 blood samples, 41s, R²=0.4056
60/184 blood samples, 56s, R²=0.4696
80/184 blood samples, 69s, R²=0.3719
100/184 blood samples, 81s, R²=0.4502
120/184 blood samples, 98s, R²=0.4804
140/184 blood samples, 110s, R²=0.4429
160/184 blood samples, 123s, R²=0.4851
180/184 blood samples, 137s, R²=0.4556
184/184 blood samples, 140s, R²=0.5043
Sex: 158 female, 26 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,926/472,386 valid probes
Preliminary 5-feat GAM on blood (16 workers)...
20/184 blood prelim 5-feat, 39s, R²=0.9587
40/184 blood prelim 5-feat, 56s, R²=0.9289
60/184 blood prelim 5-feat, 76s, R²=0.8590
80/184 blood prelim 5-feat, 96s, R²=0.9426
100/184 blood prelim 5-feat, 118s, R²=0.9499
120/184 blood prelim 5-feat, 135s, R²=0.9457
140/184 blood prelim 5-feat, 153s, R²=0.9526
160/184 blood prelim 5-feat, 179s, R²=0.9416
180/184 blood prelim 5-feat, 196s, R²=0.8070
184/184 blood prelim 5-feat, 197s, R²=0.9396
/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: 22,612 masked (4.8%) — 10,496 low cov, 17,465 high var, 3,569 extreme
Wrote batch_reference.parquet (472,386 probes) to ./batch_reference.parquet
Wrote sex_calls.csv (184 samples) to ./sex_calls.csv
Wrote feature_stats.csv (184 samples) to ./feature_stats.csv
Build reference complete in 1633.4s total