Skip to content

Commit 1a034e5

Browse files
committed
feat: add code for getting values needed for hl7 v2 from a va-spec statement
1 parent d8d2981 commit 1a034e5

File tree

1 file changed

+45
-3
lines changed

1 file changed

+45
-3
lines changed
Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,53 @@
1-
"""Converter for GKS <-> HL7"""
1+
"""Converter for GKS <-> HL7 v2"""
22

33
import logging
4+
from ga4gh.va_spec.base.core import (
5+
Statement,
6+
)
47

58
_logger = logging.getLogger(__name__)
69

710

8-
def convert_gks_to_hl7(statement) -> dict:
9-
"""convert GKS to HL7"""
11+
def convert_gks_to_hl7_v2(statement: Statement) -> dict:
12+
"""convert GKS to HL7 v2"""
13+
14+
proposition = statement.proposition
15+
subject_variant = proposition.subjectVariant
16+
17+
# 504 - Variant Name
18+
variant_name = subject_variant.name
19+
20+
# 505 - Discrete Genetic Variant
21+
# wait for types and models for this
22+
23+
# 510 - Chromosome
24+
members = subject_variant.members
25+
genomic_allele = None
26+
genomic_location = None
27+
for allele in members:
28+
# get member where the allele's location's sequence reference's moleculeType is genomic
29+
genomic_location = allele.location
30+
sequence_reference = genomic_location.sequenceReference
31+
if sequence_reference.moleculeType == "genomic":
32+
genomic_allele = allele
33+
break
34+
# get chromosome from allele
35+
expressions = genomic_allele.expressions
36+
expression = None
37+
for expr in expressions:
38+
if expr.get("syntax") == "hgvs.g":
39+
expression = expr
40+
break
41+
g_dot_hgvs = expression.get("value")
42+
g_dot_split = g_dot_hgvs.split(":", 2)
43+
chromosome = g_dot_split[0]
44+
g_dot = g_dot_split[1]
45+
46+
# 511 - Allele start/end
47+
allele_start = genomic_location.start
48+
allele_end = genomic_location.end
49+
50+
# TODO: finish tomorrow? :-)
51+
1052

1153
return {}

0 commit comments

Comments
 (0)