diff --git a/mutalyzer/mapping.py b/mutalyzer/mapping.py index 584541f5aa993d315eaeef7cf52b8901f3416d80..d772f4b24b05762ba4b9a74668dc749750f037f0 100644 --- a/mutalyzer/mapping.py +++ b/mutalyzer/mapping.py @@ -581,8 +581,14 @@ class Converter(object) : if revc : # todo: if var.Arg1 is unicode, this crashes - arg1 = reverse_complement(var.Arg1 or "") #imported from Bio.Seq - arg2 = reverse_complement(var.Arg2 or "") + try: + arg1 = str(int(var.Arg1)) + except ValueError: + arg1 = reverse_complement(var.Arg1 or "") + try: + arg2 = str(int(var.Arg2)) + except ValueError: + arg2 = reverse_complement(var.Arg2 or "") #if else : arg1 = var.Arg1 diff --git a/tests/test_mapping.py b/tests/test_mapping.py index 5c7b38c69e77fce9965841c189f52c58c076812d..3180d521a79a053501ee4fa34e357e0d0ee1a62b 100644 --- a/tests/test_mapping.py +++ b/tests/test_mapping.py @@ -50,3 +50,13 @@ class TestConverter(): assert_equal(genomic, 'NC_000006.11:g.32006291C>T') coding = converter.chrom2c(genomic, 'list') assert 'NM_000500.5:c.92C>T' in coding + + def test_converter_del_length_reverse(self): + """ + Position converter on deletion (denoted by length) on transcripts + located on the reverse strand. + """ + converter = self._converter('hg19') + coding = converter.chrom2c('NC_000022.10:g.51016285_51017117del123456789', 'list') + assert 'NM_001145134.1:c.-138-u21_60del123456789' in coding + assert 'NR_021492.1:c.1-u5170_1-u4338del123456789' in coding