From 2809d839548b10f66ddd50bef87bc724d6040cbf Mon Sep 17 00:00:00 2001
From: Martijn Vermaat <martijn@vermaat.name>
Date: Wed, 14 Dec 2011 08:51:57 +0000
Subject: [PATCH] Do not crash on EX positioning (fixes #79)

git-svn-id: https://humgenprojects.lumc.nl/svn/mutalyzer/trunk@435 eb6bd6ab-9ccd-42b9-aceb-e2899b4a52f1
---
 mutalyzer/variantchecker.py  | 2 +-
 tests/test_variantchecker.py | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/mutalyzer/variantchecker.py b/mutalyzer/variantchecker.py
index d438e6c7..c905aff4 100644
--- a/mutalyzer/variantchecker.py
+++ b/mutalyzer/variantchecker.py
@@ -1137,7 +1137,7 @@ def process_raw_variant(mutator, variant, record, transcript, output):
     # Deletion or duplication.
     if variant.MutationType in ['del', 'dup']:
         # The fuzzy flags are to support deletions of the form c.a-?_b+?del.
-        first_fuzzy = variant.StartLoc.PtLoc.Offset == '?'
+        first_fuzzy = variant.StartLoc and variant.StartLoc.PtLoc.Offset == '?'
         last_fuzzy = variant.EndLoc and variant.EndLoc.PtLoc.Offset == '?'
         apply_deletion_duplication(first, last, variant.MutationType, mutator,
                                    record, output, first_fuzzy=first_fuzzy,
diff --git a/tests/test_variantchecker.py b/tests/test_variantchecker.py
index 76e0d0e6..247d3283 100644
--- a/tests/test_variantchecker.py
+++ b/tests/test_variantchecker.py
@@ -435,3 +435,11 @@ class TestVariantchecker():
         check_variant('NM_003002.2:c.274G>T', self.output)
         assert_equal(self.output.getIndexedOutput('rawVariantsChromosomal', 0),
                      ('chr11', '+', [('274G>T', (111959695, 111959695))]))
+
+    def test_ex_notation(self):
+        """
+        Variant description using EX notation should not crash but deletion of
+        one exon should delete two splice sites.
+        """
+        check_variant('NM_002001.2:c.EX1del', self.output)
+        assert_equal(len(self.output.getMessagesWithErrorCode('IDELSPLICE')), 1)
-- 
GitLab