Blood manifest: 71 samples
Loaded 33,539,406 rows from 71 blood samples in 41.1s
GC reference: 472,386 probes
Sex chrom homology mask: 1494 probes
Pass 1: 4-feat blood GAM (16 workers)...
20/71 blood samples, 25s, R²=0.5407
40/71 blood samples, 39s, R²=0.5432
60/71 blood samples, 52s, R²=0.4787
71/71 blood samples, 60s, R²=0.5305
Sex: 42 female, 29 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,904/472,386 valid probes
Preliminary 5-feat GAM on blood (16 workers)...
20/71 blood prelim 5-feat, 37s, R²=0.9258
40/71 blood prelim 5-feat, 58s, R²=0.8945
60/71 blood prelim 5-feat, 79s, R²=0.8860
71/71 blood prelim 5-feat, 90s, R²=0.9117
/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: 23,998 masked (5.1%) — 5,838 low cov, 18,930 high var, 6,209 extreme
Wrote batch_reference.parquet (472,386 probes) to ./batch_reference.parquet
Wrote sex_calls.csv (71 samples) to ./sex_calls.csv
Wrote feature_stats.csv (71 samples) to ./feature_stats.csv
Build reference complete in 398.2s total