/
test_mapper.py
executable file
·133 lines (110 loc) · 5.51 KB
/
test_mapper.py
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
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/usr/bin/env python
# encoding: utf-8
import unittest
import mapper
class TestFileIO(unittest.TestCase):
def setUp(self):
self.lines = open('sequence.hhr').readlines()
self.line_ranges = mapper.find_line_ranges(self.lines)
def test_find_line_ranges_gives_correct_ranges(self):
self.assertEqual(self.line_ranges[0], (114, 140))
self.assertEqual(self.line_ranges[1], (140, 166))
def test_find_line_ranges_gives_correct_number_of_matches(self):
self.assertEqual(len(self.line_ranges), 104)
def test_parse_match_number_is_correct(self):
match_number = mapper.parse_match_number(
self.lines[self.line_ranges[0][0]])
self.assertEqual(match_number, 1)
def test_parse_description_gives_correct_information(self):
pdb, chain, desc = mapper.parse_description(
self.lines[self.line_ranges[0][0] + 1])
self.assertEqual(pdb, '4fr9')
self.assertEqual(chain, 'A')
self.assertIn('Uncharacterized', desc)
def test_gather_query_sequence_lines_gets_correct_lines(self):
lines = mapper.get_query_sequence_lines(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
self.assertEqual(len(lines), 2)
self.assertTrue(lines[0].startswith('Q T0644'))
self.assertTrue(lines[1].startswith('Q T0644'))
def test_gather_template_sequence_lines_gets_correct_lines(self):
lines = mapper.get_template_sequence_lines(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
self.assertEqual(len(lines), 2)
self.assertTrue(lines[0].startswith('T 4fr9_A'))
self.assertTrue(lines[1].startswith('T 4fr9_A'))
def test_extract_residue_numbers_has_correct_start_and_end(self):
lines = mapper.get_query_sequence_lines(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
start1, end1 = mapper.extract_residue_range_from_sequence_line(lines[0])
start2, end2 = mapper.extract_residue_range_from_sequence_line(lines[1])
self.assertEqual(start1, 30)
self.assertEqual(end1, 109)
self.assertEqual(start2, 110)
self.assertEqual(end2, 166)
def test_extract_sequence_from_sequence_line_has_correct_sequence(self):
lines = mapper.get_query_sequence_lines(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
seq = mapper.extract_sequence_from_sequence_line(lines[0])
self.assertTrue(seq.startswith('GYL'))
self.assertTrue(seq.endswith('SYN'))
def test_gather_query_ss_pred_gets_correct_lines(self):
lines = mapper.get_query_ss_pred_lines(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
self.assertEqual(len(lines), 2)
self.assertTrue(lines[0].startswith('Q ss_pred'))
self.assertTrue(lines[1].startswith('Q ss_pred'))
def test_gather_tempate_ss_pred_gets_correct_lines(self):
lines = mapper.get_template_ss_pred_lines(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
self.assertEqual(len(lines), 2)
self.assertTrue(lines[0].startswith('T ss_pred'))
self.assertTrue(lines[1].startswith('T ss_pred'))
def test_gather_tempate_dssp_gets_correct_lines(self):
lines = mapper.get_template_dssp_lines(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
self.assertEqual(len(lines), 2)
self.assertTrue(lines[0].startswith('T ss_dssp'))
self.assertTrue(lines[1].startswith('T ss_dssp'))
def test_extract_ss_from_ss_line_has_correct_sequence(self):
lines = mapper.get_query_ss_pred_lines(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
ss = mapper.extract_ss_from_ss_line(lines[0])
self.assertTrue(ss.startswith('CCC'))
self.assertTrue(ss.endswith('CCC'))
def test_get_query_ss_pred_gets_correct_ss_string(self):
ss = mapper.get_query_ss(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
self.assertEqual(len(ss), 137)
self.assertTrue(ss.startswith('CCCCCH'))
self.assertTrue(ss.endswith('CCCCC'))
def test_get_template_ss_pred_gets_correct_ss_string(self):
ss = mapper.get_template_ss(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
self.assertEqual(len(ss), 137)
self.assertTrue(ss.startswith('CccCCH'))
self.assertTrue(ss.endswith('ccCCCC'))
def test_get_template_dssp_gets_correct_ss_string(self):
ss = mapper.get_template_dssp(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
self.assertEqual(len(ss), 137)
self.assertTrue(ss.startswith('TCCCC'))
self.assertTrue(ss.endswith('CCCCC'))
def test_get_query_sequence_is_correct(self):
seq, start, end = mapper.get_query_sequence(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
self.assertEqual(len(seq), 137)
self.assertEqual(start, 30)
self.assertEqual(end, 166)
self.assertTrue(seq.startswith('GYL'))
self.assertTrue(seq.endswith('PRV'))
def test_get_template_sequence_is_correct(self):
seq, start, end = mapper.get_template_sequence(
self.lines[self.line_ranges[0][0]:self.line_ranges[0][1]])
self.assertEqual(len(seq), 137)
self.assertEqual(start, 8)
self.assertEqual(end, 144)
self.assertTrue(seq.startswith('GYL'))
self.assertTrue(seq.endswith('PRV'))
if __name__ == '__main__':
unittest.main()