66from anyvar import AnyVar
77from anyvar .storage .base_storage import Storage
88from anyvar .translate .translate import TranslationError , Translator
9+ from anyvar .utils .liftover_utils import ReferenceAssembly
910from anyvar .utils .types import VrsVariation
11+ from ga4gh .vrs .dataproxy import DataProxyValidationError
1012
1113from anyvlm .anyvar .base_client import BaseAnyVarClient
1214
@@ -25,7 +27,9 @@ def __init__(self, translator: Translator, storage: Storage) -> None:
2527 self .av = AnyVar (translator , storage )
2628
2729 def put_allele_expressions (
28- self , expressions : Iterable [str ], assembly : str = "GRCh38"
30+ self ,
31+ expressions : Iterable [str ],
32+ assembly : ReferenceAssembly = ReferenceAssembly .GRCH38 ,
2933 ) -> list [str | None ]:
3034 """Submit allele expressions to an AnyVar instance and retrieve corresponding VRS IDs
3135
@@ -39,12 +43,17 @@ def put_allele_expressions(
3943 translated_variation = None
4044 try :
4145 translated_variation = self .av .translator .translate_variation (
42- expression , assembly = assembly
46+ expression , assembly = assembly . value
4347 )
48+ except DataProxyValidationError :
49+ _logger .exception ("Found invalid base in expression %s" , expression )
4450 except TranslationError :
4551 _logger .exception ("Failed to translate expression: %s" , expression )
46- self .av .put_objects ([translated_variation ]) # type: ignore
47- results .append (translated_variation .id ) # type: ignore
52+ if translated_variation :
53+ self .av .put_objects ([translated_variation ]) # type: ignore
54+ results .append (translated_variation .id ) # type: ignore
55+ else :
56+ results .append (None )
4857 return results
4958
5059 def search_by_interval (
0 commit comments