1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 from os import sep
24
25
26 from data import Relax_data_store; ds = Relax_data_store()
27 from status import Status; status = Status()
28 from test_suite.system_tests.base_classes import SystemTestCase
29
30
32 """Class for testing the sequence functions."""
33
35 """Set up for all the functional tests."""
36
37
38 self.interpreter.pipe.create('mf', 'mf')
39
40
42 """Load all aspartic acid atoms from the single residue in a loaded protein PDB file."""
43
44
45 self.interpreter.structure.read_pdb(file='Ap4Aase_res1-12.pdb', dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'structures', read_model=1)
46
47
48 self.interpreter.structure.load_spins(spin_id=':ASP')
49
50
51 self.assertEqual(len(cdp.mol), 1)
52 self.assertEqual(cdp.mol[0].name, 'Ap4Aase_res1-12_mol1')
53 self.assertEqual(len(cdp.mol[0].res), 1)
54
55
56 self.assertEqual(cdp.mol[0].res[0].num, 7)
57 self.assertEqual(cdp.mol[0].res[0].name, 'ASP')
58 self.assertEqual(len(cdp.mol[0].res[0].spin), 12)
59 self.assertEqual(cdp.mol[0].res[0].spin[0].num, 91)
60 self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'N')
61 self.assertEqual(cdp.mol[0].res[0].spin[1].num, 92)
62 self.assertEqual(cdp.mol[0].res[0].spin[1].name, 'H')
63 self.assertEqual(cdp.mol[0].res[0].spin[2].num, 93)
64 self.assertEqual(cdp.mol[0].res[0].spin[2].name, 'CA')
65 self.assertEqual(cdp.mol[0].res[0].spin[3].num, 94)
66 self.assertEqual(cdp.mol[0].res[0].spin[3].name, 'HA')
67 self.assertEqual(cdp.mol[0].res[0].spin[4].num, 95)
68 self.assertEqual(cdp.mol[0].res[0].spin[4].name, 'CB')
69 self.assertEqual(cdp.mol[0].res[0].spin[5].num, 96)
70 self.assertEqual(cdp.mol[0].res[0].spin[5].name, '1HB')
71 self.assertEqual(cdp.mol[0].res[0].spin[6].num, 97)
72 self.assertEqual(cdp.mol[0].res[0].spin[6].name, '2HB')
73 self.assertEqual(cdp.mol[0].res[0].spin[7].num, 99)
74 self.assertEqual(cdp.mol[0].res[0].spin[7].name, 'CG')
75 self.assertEqual(cdp.mol[0].res[0].spin[8].num, 100)
76 self.assertEqual(cdp.mol[0].res[0].spin[8].name, 'OD1')
77 self.assertEqual(cdp.mol[0].res[0].spin[9].num, 101)
78 self.assertEqual(cdp.mol[0].res[0].spin[9].name, 'OD2')
79 self.assertEqual(cdp.mol[0].res[0].spin[10].num, 102)
80 self.assertEqual(cdp.mol[0].res[0].spin[10].name, 'C')
81 self.assertEqual(cdp.mol[0].res[0].spin[11].num, 103)
82 self.assertEqual(cdp.mol[0].res[0].spin[11].name, 'O')
83
84
86 """Load the glycine backbone amide N and Ca spins from a loaded protein PDB file."""
87
88
89 self.interpreter.structure.read_pdb(file='Ap4Aase_res1-12.pdb', dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'structures', read_model=1)
90
91
92 self.interpreter.structure.load_spins(spin_id=':GLY@N')
93
94
95 self.interpreter.structure.load_spins(spin_id=':GLY@CA')
96
97
98 self.assertEqual(len(cdp.mol), 1)
99 self.assertEqual(cdp.mol[0].name, 'Ap4Aase_res1-12_mol1')
100 self.assertEqual(len(cdp.mol[0].res), 3)
101
102
103 self.assertEqual(cdp.mol[0].res[0].num, 1)
104 self.assertEqual(cdp.mol[0].res[0].name, 'GLY')
105 self.assertEqual(len(cdp.mol[0].res[0].spin), 2)
106 self.assertEqual(cdp.mol[0].res[0].spin[0].num, 1)
107 self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'N')
108 self.assertEqual(cdp.mol[0].res[0].spin[1].num, 2)
109 self.assertEqual(cdp.mol[0].res[0].spin[1].name, 'CA')
110
111
112 self.assertEqual(cdp.mol[0].res[1].num, 4)
113 self.assertEqual(cdp.mol[0].res[1].name, 'GLY')
114 self.assertEqual(len(cdp.mol[0].res[1].spin), 2)
115 self.assertEqual(cdp.mol[0].res[1].spin[0].num, 51)
116 self.assertEqual(cdp.mol[0].res[1].spin[0].name, 'N')
117 self.assertEqual(cdp.mol[0].res[1].spin[1].num, 53)
118 self.assertEqual(cdp.mol[0].res[1].spin[1].name, 'CA')
119
120
121 self.assertEqual(cdp.mol[0].res[2].num, 12)
122 self.assertEqual(cdp.mol[0].res[2].name, 'GLY')
123 self.assertEqual(len(cdp.mol[0].res[2].spin), 2)
124 self.assertEqual(cdp.mol[0].res[2].spin[0].num, 167)
125 self.assertEqual(cdp.mol[0].res[2].spin[0].name, 'N')
126 self.assertEqual(cdp.mol[0].res[2].spin[1].num, 169)
127 self.assertEqual(cdp.mol[0].res[2].spin[1].name, 'CA')
128
129
131 """Load the glycine backbone amide N spins from a loaded protein PDB file."""
132
133
134 self.interpreter.structure.read_pdb(file='Ap4Aase_res1-12.pdb', dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'structures', read_model=1)
135
136
137 self.interpreter.structure.load_spins(spin_id=':GLY@N')
138
139
140 self.assertEqual(len(cdp.mol), 1)
141 self.assertEqual(cdp.mol[0].name, 'Ap4Aase_res1-12_mol1')
142 self.assertEqual(len(cdp.mol[0].res), 3)
143
144
145 self.assertEqual(cdp.mol[0].res[0].num, 1)
146 self.assertEqual(cdp.mol[0].res[0].name, 'GLY')
147 self.assertEqual(len(cdp.mol[0].res[0].spin), 1)
148 self.assertEqual(cdp.mol[0].res[0].spin[0].num, 1)
149 self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'N')
150
151
152 self.assertEqual(cdp.mol[0].res[1].num, 4)
153 self.assertEqual(cdp.mol[0].res[1].name, 'GLY')
154 self.assertEqual(len(cdp.mol[0].res[1].spin), 1)
155 self.assertEqual(cdp.mol[0].res[1].spin[0].num, 51)
156 self.assertEqual(cdp.mol[0].res[1].spin[0].name, 'N')
157
158
159 self.assertEqual(cdp.mol[0].res[2].num, 12)
160 self.assertEqual(cdp.mol[0].res[2].name, 'GLY')
161 self.assertEqual(len(cdp.mol[0].res[2].spin), 1)
162 self.assertEqual(cdp.mol[0].res[2].spin[0].num, 167)
163 self.assertEqual(cdp.mol[0].res[2].spin[0].name, 'N')
164
165
167 """Load the protein backbone amide N spins from a loaded PDB file."""
168
169
170 self.interpreter.structure.read_pdb(file='Ap4Aase_res1-12.pdb', dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'structures', read_model=1)
171
172
173 self.interpreter.structure.load_spins(spin_id='@N')
174
175
176 self.assertEqual(len(cdp.mol), 1)
177 self.assertEqual(cdp.mol[0].name, 'Ap4Aase_res1-12_mol1')
178 self.assertEqual(len(cdp.mol[0].res), 12)
179
180
181 self.assertEqual(cdp.mol[0].res[0].num, 1)
182 self.assertEqual(cdp.mol[0].res[0].name, 'GLY')
183 self.assertEqual(len(cdp.mol[0].res[0].spin), 1)
184 self.assertEqual(cdp.mol[0].res[0].spin[0].num, 1)
185 self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'N')
186
187
188 self.assertEqual(cdp.mol[0].res[1].num, 2)
189 self.assertEqual(cdp.mol[0].res[1].name, 'PRO')
190 self.assertEqual(len(cdp.mol[0].res[1].spin), 1)
191 self.assertEqual(cdp.mol[0].res[1].spin[0].num, 11)
192 self.assertEqual(cdp.mol[0].res[1].spin[0].name, 'N')
193
194
195 self.assertEqual(cdp.mol[0].res[2].num, 3)
196 self.assertEqual(cdp.mol[0].res[2].name, 'LEU')
197 self.assertEqual(len(cdp.mol[0].res[2].spin), 1)
198 self.assertEqual(cdp.mol[0].res[2].spin[0].num, 28)
199 self.assertEqual(cdp.mol[0].res[2].spin[0].name, 'N')
200
201
202 self.assertEqual(cdp.mol[0].res[3].num, 4)
203 self.assertEqual(cdp.mol[0].res[3].name, 'GLY')
204 self.assertEqual(len(cdp.mol[0].res[3].spin), 1)
205 self.assertEqual(cdp.mol[0].res[3].spin[0].num, 51)
206 self.assertEqual(cdp.mol[0].res[3].spin[0].name, 'N')
207
208
209 self.assertEqual(cdp.mol[0].res[4].num, 5)
210 self.assertEqual(cdp.mol[0].res[4].name, 'SER')
211 self.assertEqual(len(cdp.mol[0].res[4].spin), 1)
212 self.assertEqual(cdp.mol[0].res[4].spin[0].num, 59)
213 self.assertEqual(cdp.mol[0].res[4].spin[0].name, 'N')
214
215
216 self.assertEqual(cdp.mol[0].res[5].num, 6)
217 self.assertEqual(cdp.mol[0].res[5].name, 'MET')
218 self.assertEqual(len(cdp.mol[0].res[5].spin), 1)
219 self.assertEqual(cdp.mol[0].res[5].spin[0].num, 71)
220 self.assertEqual(cdp.mol[0].res[5].spin[0].name, 'N')
221
222
223 self.assertEqual(cdp.mol[0].res[6].num, 7)
224 self.assertEqual(cdp.mol[0].res[6].name, 'ASP')
225 self.assertEqual(len(cdp.mol[0].res[6].spin), 1)
226 self.assertEqual(cdp.mol[0].res[6].spin[0].num, 91)
227 self.assertEqual(cdp.mol[0].res[6].spin[0].name, 'N')
228
229
230 self.assertEqual(cdp.mol[0].res[7].num, 8)
231 self.assertEqual(cdp.mol[0].res[7].name, 'SER')
232 self.assertEqual(len(cdp.mol[0].res[7].spin), 1)
233 self.assertEqual(cdp.mol[0].res[7].spin[0].num, 104)
234 self.assertEqual(cdp.mol[0].res[7].spin[0].name, 'N')
235
236
237 self.assertEqual(cdp.mol[0].res[8].num, 9)
238 self.assertEqual(cdp.mol[0].res[8].name, 'PRO')
239 self.assertEqual(len(cdp.mol[0].res[8].spin), 1)
240 self.assertEqual(cdp.mol[0].res[8].spin[0].num, 116)
241 self.assertEqual(cdp.mol[0].res[8].spin[0].name, 'N')
242
243
244 self.assertEqual(cdp.mol[0].res[9].num, 10)
245 self.assertEqual(cdp.mol[0].res[9].name, 'PRO')
246 self.assertEqual(len(cdp.mol[0].res[9].spin), 1)
247 self.assertEqual(cdp.mol[0].res[9].spin[0].num, 133)
248 self.assertEqual(cdp.mol[0].res[9].spin[0].name, 'N')
249
250
251 self.assertEqual(cdp.mol[0].res[10].num, 11)
252 self.assertEqual(cdp.mol[0].res[10].name, 'GLU')
253 self.assertEqual(len(cdp.mol[0].res[10].spin), 1)
254 self.assertEqual(cdp.mol[0].res[10].spin[0].num, 150)
255 self.assertEqual(cdp.mol[0].res[10].spin[0].name, 'N')
256
257
258 self.assertEqual(cdp.mol[0].res[11].num, 12)
259 self.assertEqual(cdp.mol[0].res[11].name, 'GLY')
260 self.assertEqual(len(cdp.mol[0].res[11].spin), 1)
261 self.assertEqual(cdp.mol[0].res[11].spin[0].num, 167)
262 self.assertEqual(cdp.mol[0].res[11].spin[0].name, 'N')
263
264
270
271
273 """Test the sequence.copy user function."""
274
275
276 self.interpreter.spin.create(spin_name='A', spin_num=1, res_num=1)
277 self.interpreter.spin.create(spin_name='A', spin_num=2, res_num=1)
278 self.interpreter.spin.create(spin_name='B', spin_num=3, res_num=1)
279 self.interpreter.spin.create(spin_name='B2', spin_num=4, res_num=1)
280 self.interpreter.spin.create(spin_name='A', spin_num=1, res_num=2)
281 self.interpreter.spin.create(spin_name='A', spin_num=2, res_num=2)
282 self.interpreter.spin.create(spin_name='B', spin_num=3, res_num=2)
283 self.interpreter.spin.create(spin_name='B2', spin_num=4, res_num=2)
284
285
286 self.interpreter.pipe.create('seq copy test', 'mf')
287
288
289 self.interpreter.sequence.copy(pipe_from='mf')
290
291
292 pipe1 = ds['mf']
293 pipe2 = ds['seq copy test']
294
295
296 self.assertEqual(len(pipe1.mol[0].res), len(pipe2.mol[0].res))
297
298
299 for i in range(len(pipe1.mol[0].res)):
300 self.assertEqual(len(pipe1.mol[0].res[i].spin), len(pipe2.mol[0].res[i].spin))
301