diff --git a/hail/python/hail/vds/methods.py b/hail/python/hail/vds/methods.py index 1bc532e2a80..ac8a7eb9615 100644 --- a/hail/python/hail/vds/methods.py +++ b/hail/python/hail/vds/methods.py @@ -983,7 +983,7 @@ def truncate_reference_blocks(ds, *, max_ref_block_base_pairs=None, ref_block_wi # we've changed LEN so we need to make sure that END is correct. if 'END' in new_rd.entry: - new_rd = VariantDataset._add_end(new_rd.drop('END')) + new_rd = new_rd.annotate_entries(END=new_rd.LEN + new_rd.locus.position - 1) if isinstance(ds, hl.vds.VariantDataset): return VariantDataset(reference_data=new_rd, variant_data=ds.variant_data) diff --git a/hail/python/test/hail/vds/test_vds.py b/hail/python/test/hail/vds/test_vds.py index 3879808e414..d785f855d74 100644 --- a/hail/python/test/hail/vds/test_vds.py +++ b/hail/python/test/hail/vds/test_vds.py @@ -895,11 +895,12 @@ def test_ref_block_does_not_densify_to_next_contig(): ref = vds.reference_data var = vds.variant_data.filter_entries(False) # max out all chr1 refblocks, and truncate all chr2 refblocks so that nothing in chr2 should be densified + chr1_end = hl.parse_locus_interval('chr1', reference_genome=ref.locus.dtype.reference_genome).end.position ref = ref.annotate_entries( - END=hl.if_else( + LEN=hl.if_else( ref.locus.contig == 'chr1', - hl.parse_locus_interval('chr1', reference_genome=ref.locus.dtype.reference_genome).end.position, - ref.locus.position, + chr1_end - ref.locus.position + 1, + 1, ) ) vds = hl.vds.VariantDataset(reference_data=ref, variant_data=var)