Blood manifest: 70 samples Loaded 33,067,020 rows from 70 blood samples in 40.2s GC reference: 472,386 probes Sex chrom homology mask: 1494 probes Pass 1: 4-feat blood GAM (16 workers)... 20/70 blood samples, 24s, R²=0.5114 40/70 blood samples, 39s, R²=0.5046 60/70 blood samples, 53s, R²=0.5147 70/70 blood samples, 59s, R²=0.5395 Sex: 41 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: 472,142/472,386 valid probes Preliminary 5-feat GAM on blood (16 workers)... 20/70 blood prelim 5-feat, 52s, R²=0.9278 40/70 blood prelim 5-feat, 85s, R²=0.9400 60/70 blood prelim 5-feat, 117s, R²=0.9372 70/70 blood prelim 5-feat, 124s, R²=0.9337 /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: 11,774 masked (2.5%) — 6,807 low cov, 5,885 high var, 2,569 extreme Wrote batch_reference.parquet (472,386 probes) to ./batch_reference.parquet Wrote sex_calls.csv (70 samples) to ./sex_calls.csv Wrote feature_stats.csv (70 samples) to ./feature_stats.csv Build reference complete in 437.0s total