From 5366cb35562212da52678e1f81fdcbee521c9f27 Mon Sep 17 00:00:00 2001
From: Martijn Vermaat <martijn@vermaat.name>
Date: Wed, 11 Jul 2012 14:33:41 +0000
Subject: [PATCH] Fix position converter for delins with explicit sequences

git-svn-id: https://humgenprojects.lumc.nl/svn/mutalyzer/trunk@570 eb6bd6ab-9ccd-42b9-aceb-e2899b4a52f1
---
 mutalyzer/Retriever.py |  2 +-
 mutalyzer/mapping.py   |  2 ++
 tests/test_mapping.py  | 36 ++++++++++++++++++++++++++++++++++++
 3 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/mutalyzer/Retriever.py b/mutalyzer/Retriever.py
index 613bd789..48750a93 100644
--- a/mutalyzer/Retriever.py
+++ b/mutalyzer/Retriever.py
@@ -300,7 +300,7 @@ class Retriever(object) :
             return []
         except IndexError:
             # The expected root element is not present.
-            self._output.addMessage(__file__, 4, 'EENTREZ', 'Unkown dbSNP ' \
+            self._output.addMessage(__file__, 4, 'EENTREZ', 'Unknown dbSNP ' \
                                     'error. Result XML was not as expected.')
             self._output.addMessage(__file__, -1, 'INFO',
                                     'Result from dbSNP: %s' % response_text)
diff --git a/mutalyzer/mapping.py b/mutalyzer/mapping.py
index 4abd3edf..4e4e595e 100644
--- a/mutalyzer/mapping.py
+++ b/mutalyzer/mapping.py
@@ -651,6 +651,8 @@ class Converter(object) :
 
         if var.MutationType == "subst" :
             change = "%s>%s" % (arg1, arg2)
+        elif var.MutationType == 'delins' and arg2:
+            change = "%s%s" % (var.MutationType, arg2)
         else :
             change = "%s%s" % (var.MutationType, arg1 or arg2 or "")
         return change
diff --git a/tests/test_mapping.py b/tests/test_mapping.py
index 3dbdfbf3..69b29415 100644
--- a/tests/test_mapping.py
+++ b/tests/test_mapping.py
@@ -148,3 +148,39 @@ class TestConverter():
         assert_equal(coding, None)
         erange = self.output.getMessagesWithErrorCode('ERANGE')
         assert_equal(len(erange), 1)
+
+    def test_delins_large_ins_c2chrom(self):
+        """
+        Delins with multi-base insertion c. to chrom.
+        """
+        converter = self._converter('hg19')
+        genomic = converter.c2chrom('NM_003002.2:c.274delinsTAAA')
+        assert_equal(genomic, 'NC_000011.9:g.111959695delinsTAAA')
+        coding = converter.chrom2c(genomic, 'list')
+        assert 'NM_003002.2:c.274delinsTAAA' in coding
+
+    def test_delins_large_ins_explicit_c2chrom(self):
+        """
+        Delins with multi-base insertion and explicit deleted sequence c. to chrom.
+        """
+        converter = self._converter('hg19')
+        genomic = converter.c2chrom('NM_003002.2:c.274delGinsTAAA')
+        assert_equal(genomic, 'NC_000011.9:g.111959695delinsTAAA')
+        coding = converter.chrom2c(genomic, 'list')
+        assert 'NM_003002.2:c.274delinsTAAA' in coding
+
+    def test_delins_large_ins_chrom2c(self):
+        """
+        Delins with multi-base insertion chrom to c.
+        """
+        converter = self._converter('hg19')
+        coding = converter.chrom2c('NC_000011.9:g.111959695delinsTAAA', 'list')
+        assert 'NM_003002.2:c.274delinsTAAA' in coding
+
+    def test_delins_large_ins_explicit_chrom2c(self):
+        """
+        Delins with multi-base insertion and explicit deleted sequence chrom to c.
+        """
+        converter = self._converter('hg19')
+        coding = converter.chrom2c('NC_000011.9:g.111959695delGinsTAAA', 'list')
+        assert 'NM_003002.2:c.274delinsTAAA' in coding
-- 
GitLab