Blood manifest: 181 samples
Loaded 85,501,866 rows from 181 blood samples in 101.1s
GC reference: 472,386 probes
Sex chrom homology mask: 1494 probes
Pass 1: 4-feat blood GAM (16 workers)...
20/181 blood samples, 31s, R²=0.4625
40/181 blood samples, 47s, R²=0.4306
60/181 blood samples, 63s, R²=0.4804
80/181 blood samples, 79s, R²=0.4146
100/181 blood samples, 94s, R²=0.4485
120/181 blood samples, 120s, R²=0.4215
140/181 blood samples, 135s, R²=0.4540
160/181 blood samples, 149s, R²=0.4650
180/181 blood samples, 163s, R²=0.5862
181/181 blood samples, 163s, R²=0.4124
Sex: 99 female, 82 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,953/472,386 valid probes
Preliminary 5-feat GAM on blood (16 workers)...
20/181 blood prelim 5-feat, 45s, R²=0.9505
40/181 blood prelim 5-feat, 69s, R²=0.9435
60/181 blood prelim 5-feat, 91s, R²=0.9433
80/181 blood prelim 5-feat, 112s, R²=0.9379
100/181 blood prelim 5-feat, 138s, R²=0.9418
120/181 blood prelim 5-feat, 171s, R²=0.9391
140/181 blood prelim 5-feat, 195s, R²=0.9435
160/181 blood prelim 5-feat, 218s, R²=0.9403
180/181 blood prelim 5-feat, 237s, R²=0.9260
181/181 blood prelim 5-feat, 237s, R²=0.9523
/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,617 masked (5.2%) — 11,895 low cov, 19,503 high var, 4,438 extreme
Wrote batch_reference.parquet (472,386 probes) to ./batch_reference.parquet
Wrote sex_calls.csv (181 samples) to ./sex_calls.csv
Wrote feature_stats.csv (181 samples) to ./feature_stats.csv
Build reference complete in 1701.9s total