Both 0|1 and 1|0 collapse to dosage 1 today. The carrier entry is (sample_idx, dosage: u8) with no phase bit.
This blocks compound heterozygosity detection, haplotype-based tests (STAAR-H), and cis-eQTL phasing. Also a prerequisite for any real VCF round-trip (#65).
The carrier entry should encode phase: change dosage: u8 to gt_code: u8 where the code distinguishes 0|1 from 1|0. Zero storage cost increase since dosage is already u8.
Touches sparse_g.rs, builder.rs, encoding.rs, gt_to_dosage.
Both
0|1and1|0collapse to dosage 1 today. The carrier entry is(sample_idx, dosage: u8)with no phase bit.This blocks compound heterozygosity detection, haplotype-based tests (STAAR-H), and cis-eQTL phasing. Also a prerequisite for any real VCF round-trip (#65).
The carrier entry should encode phase: change
dosage: u8togt_code: u8where the code distinguishes0|1from1|0. Zero storage cost increase since dosage is already u8.Touches
sparse_g.rs,builder.rs,encoding.rs,gt_to_dosage.