diff commons/core/seq/test/Test_Bioseq.py @ 18:94ab73e8a190

Uploaded
author m-zytnicki
date Mon, 29 Apr 2013 03:20:15 -0400
parents 769e306b7933
children
line wrap: on
line diff
--- a/commons/core/seq/test/Test_Bioseq.py	Mon Apr 22 11:11:10 2013 -0400
+++ b/commons/core/seq/test/Test_Bioseq.py	Mon Apr 29 03:20:15 2013 -0400
@@ -35,6 +35,7 @@
 from commons.core.seq.Bioseq import Bioseq 
 from commons.core.utils.FileUtils import FileUtils
 from commons.core.coord.Map import Map
+from commons.core.checker.RepetException import RepetException
 
 
 class Test_Bioseq( unittest.TestCase ):
@@ -901,6 +902,39 @@
         self.assertEquals(expNucl, obsNucl)
         
         
+    def test_getATGCNFromIUPACandATGCN(self):
+        self.assertEquals("G", Bioseq().getATGCNFromIUPACandATGCN('R', 'A'))
+        self.assertEquals("A", Bioseq().getATGCNFromIUPACandATGCN('R', 'G'))
+        self.assertEquals("C", Bioseq().getATGCNFromIUPACandATGCN('Y', 'T'))
+        self.assertEquals("T", Bioseq().getATGCNFromIUPACandATGCN('Y', 'C'))
+        self.assertEquals("C", Bioseq().getATGCNFromIUPACandATGCN('M', 'A'))
+        self.assertEquals("A", Bioseq().getATGCNFromIUPACandATGCN('M', 'C'))
+        self.assertEquals("T", Bioseq().getATGCNFromIUPACandATGCN('K', 'G'))
+        self.assertEquals("G", Bioseq().getATGCNFromIUPACandATGCN('K', 'T'))
+        self.assertEquals("A", Bioseq().getATGCNFromIUPACandATGCN('W', 'T'))
+        self.assertEquals("T", Bioseq().getATGCNFromIUPACandATGCN('W', 'A'))
+        self.assertEquals("G", Bioseq().getATGCNFromIUPACandATGCN('S', 'C'))
+        self.assertEquals("C", Bioseq().getATGCNFromIUPACandATGCN('S', 'G'))
+        
+    def test_getATGCNFromIUPACandATGCN_invalid_combination(self):
+        obsMsg = ""
+        try:
+            Bioseq().getATGCNFromIUPACandATGCN('R', 'T')
+        except RepetException as e:
+            obsMsg = e.getMessage()
+            
+        self.assertEqual("IUPAC code 'R' and nucleotide 'T' are not compatible", obsMsg)
+        
+    def test_getATGCNFromIUPACandATGCN_invalid_IUPAC(self):
+        bioseq = Bioseq()
+        obsMsg = ""
+        try:
+            bioseq.getATGCNFromIUPACandATGCN('B', 'T')
+        except RepetException as e:
+            obsMsg = e.getMessage()
+            
+        self.assertEqual("Can't retrieve the third nucleotide from IUPAC code 'B' and nucleotide 'T'", obsMsg)
+        
     def test_partialIUPAC(self):
         bioseq = Bioseq()
         bioseq.sequence = "ATGCNRATGCN"