Blood manifest: 184 samples
Loaded 86,919,024 rows from 184 blood samples in 103.9s
GC reference: 472,386 probes
Sex chrom homology mask: 1494 probes
Pass 1: 4-feat blood GAM (16 workers)...
20/184 blood samples, 24s, R²=0.5780
40/184 blood samples, 38s, R²=0.4327
60/184 blood samples, 52s, R²=0.6184
80/184 blood samples, 64s, R²=0.3834
100/184 blood samples, 77s, R²=0.5140
120/184 blood samples, 89s, R²=0.5879
140/184 blood samples, 103s, R²=0.4720
160/184 blood samples, 118s, R²=0.5002
180/184 blood samples, 130s, R²=0.3799
184/184 blood samples, 130s, R²=0.4887
Sex: 113 female, 71 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,899/472,386 valid probes
Preliminary 5-feat GAM on blood (16 workers)...
20/184 blood prelim 5-feat, 38s, R²=0.9527
40/184 blood prelim 5-feat, 57s, R²=0.9547
60/184 blood prelim 5-feat, 74s, R²=0.9344
80/184 blood prelim 5-feat, 93s, R²=0.9219
100/184 blood prelim 5-feat, 114s, R²=0.9167
120/184 blood prelim 5-feat, 132s, R²=0.9480
140/184 blood prelim 5-feat, 155s, R²=0.8754
160/184 blood prelim 5-feat, 171s, R²=0.9450
180/184 blood prelim 5-feat, 188s, R²=0.9423
184/184 blood prelim 5-feat, 193s, R²=0.9552
/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: 37,257 masked (7.9%) — 9,371 low cov, 32,400 high var, 6,988 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 1607.9s total