Skip to content

Commit 3deeeaf

Browse files
committed
fix: vrs_ref_allele_seq extension could potentially have an empty string as its sequence
1 parent a75d55a commit 3deeeaf

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

src/dcd_mapping/annotate.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ def _get_vrs_ref_allele_seq(
140140
metadata: TargetGene,
141141
urn: str,
142142
tx_select_results: TxSelectResult | None,
143-
) -> Extension:
143+
) -> Extension | None:
144144
"""Create `vrs_ref_allele_seq` property."""
145145
start, end = _offset_allele_ref_seq(urn, allele.location.start, allele.location.end)
146146
if (
@@ -161,8 +161,12 @@ def _get_vrs_ref_allele_seq(
161161
seq = f"ga4gh:{allele.location.sequenceReference.refgetAccession}" # type: ignore
162162
sr = get_seqrepo()
163163
ref = sr.get_sequence(seq, start, end)
164-
if ref is None:
165-
raise ValueError
164+
165+
if not ref:
166+
msg = f"Could not retrieve reference sequence for allele {allele.id} in urn {urn} with start {start} and end {end}"
167+
_logger.warning(msg)
168+
return None
169+
166170
return Extension(type="Extension", name="vrs_ref_allele_seq", value=ref)
167171

168172

@@ -256,9 +260,11 @@ def _annotate_allele_mapping(
256260
post_mapped: Allele = mapped_score.post_mapped
257261

258262
# get vrs_ref_allele_seq for pre-mapped variants
259-
pre_mapped.extensions = [
260-
_get_vrs_ref_allele_seq(pre_mapped, metadata, urn, tx_results)
261-
]
263+
ref_allele_seq_extension = _get_vrs_ref_allele_seq(
264+
pre_mapped, metadata, urn, tx_results
265+
)
266+
if ref_allele_seq_extension is not None:
267+
pre_mapped.extensions = [ref_allele_seq_extension]
262268

263269
if post_mapped:
264270
# Determine reference sequence
@@ -313,9 +319,14 @@ def _annotate_haplotype_mapping(
313319
"""Perform annotations and, if necessary, create VRS 1.3 equivalents for haplotype mappings."""
314320
pre_mapped: Haplotype = mapped_score.pre_mapped # type: ignore
315321
post_mapped: Haplotype = mapped_score.post_mapped # type: ignore
322+
316323
# get vrs_ref_allele_seq for pre-mapped variants
317324
for allele in pre_mapped.members:
318-
allele.extensions = [_get_vrs_ref_allele_seq(allele, metadata, urn, tx_results)]
325+
ref_allele_seq_extension = _get_vrs_ref_allele_seq(
326+
allele, metadata, urn, tx_results
327+
)
328+
if ref_allele_seq_extension is not None:
329+
allele.extensions = [ref_allele_seq_extension]
319330

320331
if post_mapped:
321332
# Determine reference sequence

0 commit comments

Comments
 (0)