Blood manifest: 183 samples
Loaded 86,446,638 rows from 183 blood samples in 106.4s
GC reference: 472,386 probes
Sex chrom homology mask: 1494 probes
Pass 1: 4-feat blood GAM (16 workers)...
20/183 blood samples, 33s, R²=0.5542
40/183 blood samples, 50s, R²=0.5178
60/183 blood samples, 68s, R²=0.4501
80/183 blood samples, 84s, R²=0.4753
100/183 blood samples, 101s, R²=0.4415
120/183 blood samples, 120s, R²=0.5641
140/183 blood samples, 133s, R²=0.4323
160/183 blood samples, 150s, R²=0.4425
180/183 blood samples, 165s, R²=0.4614
183/183 blood samples, 165s, R²=0.4421
Sex: 65 female, 118 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,932/472,386 valid probes
Preliminary 5-feat GAM on blood (16 workers)...
20/183 blood prelim 5-feat, 61s, R²=0.9370
40/183 blood prelim 5-feat, 86s, R²=0.9488
60/183 blood prelim 5-feat, 107s, R²=0.9230
80/183 blood prelim 5-feat, 126s, R²=0.9456
100/183 blood prelim 5-feat, 147s, R²=0.9294
120/183 blood prelim 5-feat, 168s, R²=0.9495
140/183 blood prelim 5-feat, 188s, R²=0.9481
160/183 blood prelim 5-feat, 212s, R²=0.9369
180/183 blood prelim 5-feat, 230s, R²=0.9436
183/183 blood prelim 5-feat, 232s, R²=0.9300
/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: 24,521 masked (5.2%) — 10,275 low cov, 19,523 high var, 3,861 extreme
Wrote batch_reference.parquet (472,386 probes) to ./batch_reference.parquet
Wrote sex_calls.csv (183 samples) to ./sex_calls.csv
Wrote feature_stats.csv (183 samples) to ./feature_stats.csv
Build reference complete in 1884.4s total