File: test_ct.py

package info (click to toggle)
python-cogent 1.5.3-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 16,424 kB
  • ctags: 24,343
  • sloc: python: 134,200; makefile: 100; ansic: 17; sh: 10
file content (120 lines) | stat: -rw-r--r-- 5,295 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/env python

from cogent.util.unit_test import TestCase, main
from cogent.core.info      import Info
from cogent.parse.ct import ct_parser

__author__ = "Shandy Wikman"
__copyright__ = "Copyright 2007-2012, The Cogent Project"
__contributors__ = ["Shandy Wikman"]
__license__ = "GPL"
__version__ = "1.5.3"
__maintainer__ = "Shandy Wikman"
__email__ = "ens01svn@cs.umu.se"
__status__ = "Development"

class CtParserTest(TestCase):
    """Provides tests for RNA secondary structure parsers"""

    def setUp(self):
        """Setup function"""
        
        #output
        self.carnac_out = CARNAC
        self.dynalign_out = DYNALIGN
        self.mfold_out = MFOLD
        self.sfold_out = SFOLD
        self.unafold_out = UNAFOLD
        self.knetfold_out = KNETFOLD
        #expected
        self.carnac_exp = [['GCAGAUGGCUUC',[(0,11),(2,9),(3,8)]]]
        self.dynalign_exp = [['GCAGAUGGCUUC',[(0,11),(2,9),(3,8)],-46.3]]
        self.mfold_exp = [['GCAGAUGGCUUC',[(0,11),(2,9),(3,8)],-23.47]]
        self.sfold_exp = [['GCAGAUGGCUUC',[(0,11),(2,9),(3,8)],-22.40]]
        self.unafold_exp = [['GCAGAUGGCUUC',[(0,11),(2,9),(3,8)],-20.5]]
        self.knetfold_exp = [['GCAGAUGGCUUC',[(0,11),(2,9),(3,8)]]]
        
    def test_carnac_output(self):
        """Test for ct_parser for carnac format"""
 
        obs = ct_parser(self.carnac_out)
        self.assertEqual(obs,self.carnac_exp)

    def test_dynalign_output(self):
        """Test for ct_parser for dynalign format"""
        
        obs = ct_parser(self.dynalign_out)
        self.assertEqual(obs,self.dynalign_exp)

    def test_mfold_output(self):
        """Test for ct_parser for mfold format"""
        
        obs = ct_parser(self.mfold_out)
        self.assertEqual(obs,self.mfold_exp)
        
    def test_sfold_output(self):
        """Test for ct_parser for sfold format"""
    
        obs = ct_parser(self.sfold_out)
        self.assertEqual(obs,self.sfold_exp)
        
    def test_unafold_output(self):
        """Test for ct_parser for unafold format"""
        
        obs = ct_parser(self.unafold_out)
        self.assertEqual(obs,self.unafold_exp)

    def test_knetfold_output(self):
        """Test for ct_parser for knetfold format"""
        
        obs = ct_parser(self.knetfold_out)
        self.assertEqual(obs,self.knetfold_exp)

CARNAC   = ['   12 seq1\n', '    1 G       0    2   12    1\n', 
'    2 C       1    3    0    2\n', '    3 A       2    4   10    3\n', 
'    4 G       3    5    9    4\n', '    5 A       4    6    0    5\n', 
'    6 U       5    7    0    6\n', '    7 G       6    8    0    7\n', 
'    8 G       7    9    0    8\n', '    9 C       8   10    4    9\n', 
'   10 U       6   11    3   10   \n', '   11 U       7   12    0   11\n', 
'   12 C       8   13    1   12\n']
DYNALIGN = ['   72   ENERGY = -46.3  seq 3\n', 
'    1 G       0    2   12    1\n', '    2 C       1    3    0    2\n', 
'    3 A       2    4   10    3\n', '    4 G       3    5    9    4\n', 
'    5 A       4    6    0    5\n', '    6 U       5    7    0    6\n', 
'    7 G       6    8    0    7\n', '    8 G       7    9    0    8\n', 
'    9 C       8   10    4    9\n', '   10 U       6   11    3   10   \n', 
'   11 U       7   12    0   11\n', '   12 C       8   13    1   12\n']
MFOLD    = ['   12   dG = -23.47    [initially -22.40] seq1 \n', 
'    1 G       0    2   12    1\n', '    2 C       1    3    0    2\n', 
'    3 A       2    4   10    3\n', '    4 G       3    5    9    4\n', 
'    5 A       4    6    0    5\n', '    6 U       5    7    0    6\n', 
'    7 G       6    8    0    7\n', '    8 G       7    9    0    8\n', 
'    9 C       8   10    4    9\n', '   10 U       6   11    3   10   \n', 
'   11 U       7   12    0   11\n', '   12 C       8   13    1   12\n']
SFOLD    = ['Structure    1     -22.40       0.63786E-01\n', 
'    1 G       0    2   12    1\n', '    2 C       1    3    0    2\n', 
'    3 A       2    4   10    3\n', '    4 G       3    5    9    4\n', 
'    5 A       4    6    0    5\n', '    6 U       5    7    0    6\n', 
'    7 G       6    8    0    7\n', '    8 G       7    9    0    8\n', 
'    9 C       8   10    4    9\n', '   10 U       6   11    3   10   \n', 
'   11 U       7   12    0   11\n', '   12 C       8   13    1   12\n']
UNAFOLD  = ['12\tdG = -20.5\tseq1\n', '    1 G       0    2   12    1\n', 
'    2 C       1    3    0    2\n', '    3 A       2    4   10    3\n', 
'    4 G       3    5    9    4\n', '    5 A       4    6    0    5\n', 
'    6 U       5    7    0    6\n', '    7 G       6    8    0    7\n', 
'    8 G       7    9    0    8\n', '    9 C       8   10    4    9\n', 
'   10 U       6   11    3   10   \n', '   11 U       7   12    0   11\n', 
'   12 C       8   13    1   12\n']
KNETFOLD = ['   12   \n', '    1 G       0    2   12    1\n', 
'    2 C       1    3    0    2\n', '    3 A       2    4   10    3\n', 
'    4 G       3    5    9    4\n', '    5 A       4    6    0    5\n', 
'    6 U       5    7    0    6\n', '    7 G       6    8    0    7\n', 
'    8 G       7    9    0    8\n', '    9 C       8   10    4    9\n', 
'   10 U       6   11    3   10   \n', '   11 U       7   12    0   11\n', 
'   12 C       8   13    1   12\n']


if __name__ == '__main__':
    main()