2020from mavehgvs .util import parse_variant_strings
2121from mavehgvs .variant import Variant
2222
23+ from dcd_mapping .exceptions import (
24+ MissingSequenceIdError ,
25+ UnsupportedReferenceSequenceNameSpaceError ,
26+ UnsupportedReferenceSequencePrefixError ,
27+ )
2328from dcd_mapping .lookup import (
2429 cdot_rest ,
2530 get_chromosome_identifier ,
3742)
3843from dcd_mapping .transcripts import TxSelectError
3944
40- __all__ = ["vrs_map" , "VrsMapError" ]
45+ __all__ = ["vrs_map" ]
4146
4247
4348_logger = logging .getLogger (__name__ )
4449
4550
46- class VrsMapError (Exception ):
47- """Raise in case of VRS mapping errors."""
48-
49-
5051def _hgvs_variant_is_valid (hgvs_string : str ) -> bool :
5152 return not hgvs_string .endswith ((".=" , ")" , "X" ))
5253
@@ -612,11 +613,8 @@ def _map_genomic(
612613 error_message = str (e ),
613614 )
614615 else :
615- return MappedScore (
616- accession_id = row .accession ,
617- score = row .score ,
618- error_message = f"Reference sequence namespace not supported: { namespace } " ,
619- )
616+ msg = f"Unsupported reference sequence namespace: { namespace } "
617+ raise UnsupportedReferenceSequenceNameSpaceError (msg )
620618
621619 return MappedScore (
622620 accession_id = row .accession ,
@@ -789,14 +787,8 @@ def _map_accession(
789787 variations : list [MappedScore ] = []
790788 sequence_id = metadata .target_accession_id
791789 if sequence_id is None :
792- return [
793- MappedScore (
794- accession_id = row .accession ,
795- score = row .score ,
796- error_message = "Could not generate mapped allele objects. No sequence id was provided." ,
797- )
798- for row in records
799- ]
790+ msg = " No target_accession_id was provided by target gene metadata. Target gene metadata must have a target_accession_id to map to VRS."
791+ raise MissingSequenceIdError (msg )
800792
801793 store_accession (sequence_id )
802794
@@ -815,14 +807,8 @@ def _map_accession(
815807 hgvs_nt_mappings = _map_genomic (row , sequence_id , align_result )
816808 variations .append (hgvs_nt_mappings )
817809 else :
818- [
819- MappedScore (
820- accession_id = row .accession ,
821- score = row .score ,
822- error_message = f"Unrecognized accession prefix for accession id { metadata .target_accession_id } " ,
823- )
824- for row in records
825- ]
810+ msg = f"Unrecognized accession prefix for accession id: { metadata .target_accession_id } "
811+ raise UnsupportedReferenceSequencePrefixError (msg )
826812
827813 return variations
828814
0 commit comments