🤖 Written by Claude
bcftools norm left-aligns a symbolic <DEL> whether its length comes from INFO/SVLEN or INFO/END, and a <DUP> when INFO/SVLEN is present. A <DUP> described only by INFO/END, though, is left where it is. Follow-up to #2145.
Using the norm.symbolic.3.fa test reference (ACTCACAAAGGGATTACAGATTACAGATTACAGGGGATCCAGAT):
#CHROM POS ID REF ALT QUAL FILTER INFO
1 26 . G GATTACAG . PASS SVTYPE=DUP
1 26 . G <DUP> . PASS SVTYPE=DUP;END=33
1 26 . G <DUP> . PASS SVTYPE=DUP;SVLEN=7;END=33
bcftools norm -f norm.symbolic.3.fa (1.24, and develop at 347c273):
1 11 . G GGATTACA . PASS SVTYPE=DUP
1 11 . G <DUP> . PASS SVTYPE=DUP;SVLEN=7;END=18
1 26 . G <DUP> . PASS SVTYPE=DUP;END=33
The explicit allele and the SVLEN <DUP> move to position 11, but the END-only <DUP> stays at 26. The same happens on real data (GRCh37 NC_000003.11:128200306, SVTYPE=DUP;END=128201507), whereas the equivalent <DEL> with only END is realigned.
In realign(), a <DUP> takes its length only from INFO/SVLEN; without it sv_len is 0 and the record returns ERR_SYMBOLIC unchanged. VCF 4.2/4.3 callers commonly write END without SVLEN.
🤖 Written by Claude
bcftools normleft-aligns a symbolic<DEL>whether its length comes fromINFO/SVLENorINFO/END, and a<DUP>whenINFO/SVLENis present. A<DUP>described only byINFO/END, though, is left where it is. Follow-up to #2145.Using the
norm.symbolic.3.fatest reference (ACTCACAAAGGGATTACAGATTACAGATTACAGGGGATCCAGAT):bcftools norm -f norm.symbolic.3.fa(1.24, anddevelopat 347c273):The explicit allele and the
SVLEN<DUP>move to position 11, but theEND-only<DUP>stays at 26. The same happens on real data (GRCh37NC_000003.11:128200306,SVTYPE=DUP;END=128201507), whereas the equivalent<DEL>with onlyENDis realigned.In
realign(), a<DUP>takes its length only fromINFO/SVLEN; without itsv_lenis 0 and the record returnsERR_SYMBOLICunchanged. VCF 4.2/4.3 callers commonly writeENDwithoutSVLEN.