1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 from os import sep
25
26
27 from data_store import Relax_data_store; ds = Relax_data_store()
28 from pipe_control.mol_res_spin import spin_loop
29 from status import Status; status = Status()
30 from test_suite.system_tests.base_classes import SystemTestCase
31
32
34 """Class for testing the sequence functions."""
35
41
42
44 """Catch U{bug #23372<https://web.archive.org/web/https://gna.org/bugs/?23372>}, the sequence.read failure with CSV files."""
45
46
47 self.interpreter.sequence.read('Sam.csv', dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', res_num_col=1, sep=',')
48
49
50 seq = [":330", ":331"]
51 i = 0
52 self.assertEqual(len(cdp.mol[0].res), 2)
53 for spin, spin_id in spin_loop(return_id=True):
54 self.assertEqual(spin_id, seq[i])
55 i += 1
56
57
59 """Load all aspartic acid atoms from the single residue in a loaded protein PDB file."""
60
61
62 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)
63
64
65 self.interpreter.structure.load_spins(spin_id=':ASP')
66
67
68 self.assertEqual(len(cdp.mol), 1)
69 self.assertEqual(cdp.mol[0].name, 'Ap4Aase_res1-12_mol1')
70 self.assertEqual(len(cdp.mol[0].res), 1)
71
72
73 self.assertEqual(cdp.mol[0].res[0].num, 7)
74 self.assertEqual(cdp.mol[0].res[0].name, 'ASP')
75 self.assertEqual(len(cdp.mol[0].res[0].spin), 12)
76 self.assertEqual(cdp.mol[0].res[0].spin[0].num, 78)
77 self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'N')
78 self.assertEqual(cdp.mol[0].res[0].spin[1].num, 79)
79 self.assertEqual(cdp.mol[0].res[0].spin[1].name, 'H')
80 self.assertEqual(cdp.mol[0].res[0].spin[2].num, 80)
81 self.assertEqual(cdp.mol[0].res[0].spin[2].name, 'CA')
82 self.assertEqual(cdp.mol[0].res[0].spin[3].num, 81)
83 self.assertEqual(cdp.mol[0].res[0].spin[3].name, 'HA')
84 self.assertEqual(cdp.mol[0].res[0].spin[4].num, 82)
85 self.assertEqual(cdp.mol[0].res[0].spin[4].name, 'CB')
86 self.assertEqual(cdp.mol[0].res[0].spin[5].num, 83)
87 self.assertEqual(cdp.mol[0].res[0].spin[5].name, '1HB')
88 self.assertEqual(cdp.mol[0].res[0].spin[6].num, 84)
89 self.assertEqual(cdp.mol[0].res[0].spin[6].name, '2HB')
90 self.assertEqual(cdp.mol[0].res[0].spin[7].num, 85)
91 self.assertEqual(cdp.mol[0].res[0].spin[7].name, 'CG')
92 self.assertEqual(cdp.mol[0].res[0].spin[8].num, 86)
93 self.assertEqual(cdp.mol[0].res[0].spin[8].name, 'OD1')
94 self.assertEqual(cdp.mol[0].res[0].spin[9].num, 87)
95 self.assertEqual(cdp.mol[0].res[0].spin[9].name, 'OD2')
96 self.assertEqual(cdp.mol[0].res[0].spin[10].num, 88)
97 self.assertEqual(cdp.mol[0].res[0].spin[10].name, 'C')
98 self.assertEqual(cdp.mol[0].res[0].spin[11].num, 89)
99 self.assertEqual(cdp.mol[0].res[0].spin[11].name, 'O')
100
101
103 """Load the glycine backbone amide N and Ca spins from a loaded protein PDB file."""
104
105
106 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)
107
108
109 self.interpreter.structure.load_spins(spin_id=':GLY@N')
110
111
112 self.interpreter.structure.load_spins(spin_id=':GLY@CA')
113
114
115 self.assertEqual(len(cdp.mol), 1)
116 self.assertEqual(cdp.mol[0].name, 'Ap4Aase_res1-12_mol1')
117 self.assertEqual(len(cdp.mol[0].res), 3)
118
119
120 self.assertEqual(cdp.mol[0].res[0].num, 1)
121 self.assertEqual(cdp.mol[0].res[0].name, 'GLY')
122 self.assertEqual(len(cdp.mol[0].res[0].spin), 2)
123 self.assertEqual(cdp.mol[0].res[0].spin[0].num, 1)
124 self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'N')
125 self.assertEqual(cdp.mol[0].res[0].spin[1].num, 2)
126 self.assertEqual(cdp.mol[0].res[0].spin[1].name, 'CA')
127
128
129 self.assertEqual(cdp.mol[0].res[1].num, 4)
130 self.assertEqual(cdp.mol[0].res[1].name, 'GLY')
131 self.assertEqual(len(cdp.mol[0].res[1].spin), 2)
132 self.assertEqual(cdp.mol[0].res[1].spin[0].num, 43)
133 self.assertEqual(cdp.mol[0].res[1].spin[0].name, 'N')
134 self.assertEqual(cdp.mol[0].res[1].spin[1].num, 45)
135 self.assertEqual(cdp.mol[0].res[1].spin[1].name, 'CA')
136
137
138 self.assertEqual(cdp.mol[0].res[2].num, 12)
139 self.assertEqual(cdp.mol[0].res[2].name, 'GLY')
140 self.assertEqual(len(cdp.mol[0].res[2].spin), 2)
141 self.assertEqual(cdp.mol[0].res[2].spin[0].num, 144)
142 self.assertEqual(cdp.mol[0].res[2].spin[0].name, 'N')
143 self.assertEqual(cdp.mol[0].res[2].spin[1].num, 146)
144 self.assertEqual(cdp.mol[0].res[2].spin[1].name, 'CA')
145
146
148 """Load the glycine backbone amide N spins from a loaded protein PDB file."""
149
150
151 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)
152
153
154 self.interpreter.structure.load_spins(spin_id=':GLY@N')
155
156
157 self.assertEqual(len(cdp.mol), 1)
158 self.assertEqual(cdp.mol[0].name, 'Ap4Aase_res1-12_mol1')
159 self.assertEqual(len(cdp.mol[0].res), 3)
160
161
162 self.assertEqual(cdp.mol[0].res[0].num, 1)
163 self.assertEqual(cdp.mol[0].res[0].name, 'GLY')
164 self.assertEqual(len(cdp.mol[0].res[0].spin), 1)
165 self.assertEqual(cdp.mol[0].res[0].spin[0].num, 1)
166 self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'N')
167
168
169 self.assertEqual(cdp.mol[0].res[1].num, 4)
170 self.assertEqual(cdp.mol[0].res[1].name, 'GLY')
171 self.assertEqual(len(cdp.mol[0].res[1].spin), 1)
172 self.assertEqual(cdp.mol[0].res[1].spin[0].num, 43)
173 self.assertEqual(cdp.mol[0].res[1].spin[0].name, 'N')
174
175
176 self.assertEqual(cdp.mol[0].res[2].num, 12)
177 self.assertEqual(cdp.mol[0].res[2].name, 'GLY')
178 self.assertEqual(len(cdp.mol[0].res[2].spin), 1)
179 self.assertEqual(cdp.mol[0].res[2].spin[0].num, 144)
180 self.assertEqual(cdp.mol[0].res[2].spin[0].name, 'N')
181
182
184 """Load the protein backbone amide N spins from a loaded PDB file."""
185
186
187 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)
188
189
190 self.interpreter.structure.load_spins(spin_id='@N')
191
192
193 self.assertEqual(len(cdp.mol), 1)
194 self.assertEqual(cdp.mol[0].name, 'Ap4Aase_res1-12_mol1')
195 self.assertEqual(len(cdp.mol[0].res), 12)
196
197
198 self.assertEqual(cdp.mol[0].res[0].num, 1)
199 self.assertEqual(cdp.mol[0].res[0].name, 'GLY')
200 self.assertEqual(len(cdp.mol[0].res[0].spin), 1)
201 self.assertEqual(cdp.mol[0].res[0].spin[0].num, 1)
202 self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'N')
203
204
205 self.assertEqual(cdp.mol[0].res[1].num, 2)
206 self.assertEqual(cdp.mol[0].res[1].name, 'PRO')
207 self.assertEqual(len(cdp.mol[0].res[1].spin), 1)
208 self.assertEqual(cdp.mol[0].res[1].spin[0].num, 10)
209 self.assertEqual(cdp.mol[0].res[1].spin[0].name, 'N')
210
211
212 self.assertEqual(cdp.mol[0].res[2].num, 3)
213 self.assertEqual(cdp.mol[0].res[2].name, 'LEU')
214 self.assertEqual(len(cdp.mol[0].res[2].spin), 1)
215 self.assertEqual(cdp.mol[0].res[2].spin[0].num, 24)
216 self.assertEqual(cdp.mol[0].res[2].spin[0].name, 'N')
217
218
219 self.assertEqual(cdp.mol[0].res[3].num, 4)
220 self.assertEqual(cdp.mol[0].res[3].name, 'GLY')
221 self.assertEqual(len(cdp.mol[0].res[3].spin), 1)
222 self.assertEqual(cdp.mol[0].res[3].spin[0].num, 43)
223 self.assertEqual(cdp.mol[0].res[3].spin[0].name, 'N')
224
225
226 self.assertEqual(cdp.mol[0].res[4].num, 5)
227 self.assertEqual(cdp.mol[0].res[4].name, 'SER')
228 self.assertEqual(len(cdp.mol[0].res[4].spin), 1)
229 self.assertEqual(cdp.mol[0].res[4].spin[0].num, 50)
230 self.assertEqual(cdp.mol[0].res[4].spin[0].name, 'N')
231
232
233 self.assertEqual(cdp.mol[0].res[5].num, 6)
234 self.assertEqual(cdp.mol[0].res[5].name, 'MET')
235 self.assertEqual(len(cdp.mol[0].res[5].spin), 1)
236 self.assertEqual(cdp.mol[0].res[5].spin[0].num, 61)
237 self.assertEqual(cdp.mol[0].res[5].spin[0].name, 'N')
238
239
240 self.assertEqual(cdp.mol[0].res[6].num, 7)
241 self.assertEqual(cdp.mol[0].res[6].name, 'ASP')
242 self.assertEqual(len(cdp.mol[0].res[6].spin), 1)
243 self.assertEqual(cdp.mol[0].res[6].spin[0].num, 78)
244 self.assertEqual(cdp.mol[0].res[6].spin[0].name, 'N')
245
246
247 self.assertEqual(cdp.mol[0].res[7].num, 8)
248 self.assertEqual(cdp.mol[0].res[7].name, 'SER')
249 self.assertEqual(len(cdp.mol[0].res[7].spin), 1)
250 self.assertEqual(cdp.mol[0].res[7].spin[0].num, 90)
251 self.assertEqual(cdp.mol[0].res[7].spin[0].name, 'N')
252
253
254 self.assertEqual(cdp.mol[0].res[8].num, 9)
255 self.assertEqual(cdp.mol[0].res[8].name, 'PRO')
256 self.assertEqual(len(cdp.mol[0].res[8].spin), 1)
257 self.assertEqual(cdp.mol[0].res[8].spin[0].num, 101)
258 self.assertEqual(cdp.mol[0].res[8].spin[0].name, 'N')
259
260
261 self.assertEqual(cdp.mol[0].res[9].num, 10)
262 self.assertEqual(cdp.mol[0].res[9].name, 'PRO')
263 self.assertEqual(len(cdp.mol[0].res[9].spin), 1)
264 self.assertEqual(cdp.mol[0].res[9].spin[0].num, 115)
265 self.assertEqual(cdp.mol[0].res[9].spin[0].name, 'N')
266
267
268 self.assertEqual(cdp.mol[0].res[10].num, 11)
269 self.assertEqual(cdp.mol[0].res[10].name, 'GLU')
270 self.assertEqual(len(cdp.mol[0].res[10].spin), 1)
271 self.assertEqual(cdp.mol[0].res[10].spin[0].num, 129)
272 self.assertEqual(cdp.mol[0].res[10].spin[0].name, 'N')
273
274
275 self.assertEqual(cdp.mol[0].res[11].num, 12)
276 self.assertEqual(cdp.mol[0].res[11].name, 'GLY')
277 self.assertEqual(len(cdp.mol[0].res[11].spin), 1)
278 self.assertEqual(cdp.mol[0].res[11].spin[0].num, 144)
279 self.assertEqual(cdp.mol[0].res[11].spin[0].name, 'N')
280
281
283 """The sequence.read() test."""
284
285
286 self.interpreter.sequence.read(file='test_seq', dir=status.install_path + sep+'test_suite'+sep+'shared_data', res_num_col=1, res_name_col=2)
287
288
289 self.assertEqual(len(cdp.mol), 1)
290 self.assertEqual(cdp.mol[0].name, None)
291 self.assertEqual(len(cdp.mol[0].res), 5)
292
293
294 self.assertEqual(cdp.mol[0].res[0].num, -2)
295 self.assertEqual(cdp.mol[0].res[0].name, 'Gly')
296 self.assertEqual(len(cdp.mol[0].res[0].spin), 1)
297 self.assertEqual(cdp.mol[0].res[0].spin[0].num, None)
298 self.assertEqual(cdp.mol[0].res[0].spin[0].name, None)
299
301 """Test the sequence.copy user function."""
302
303
304 self.interpreter.spin.create(spin_name='A', spin_num=1, res_num=1)
305 self.interpreter.spin.create(spin_name='A', spin_num=2, res_num=1)
306 self.interpreter.spin.create(spin_name='B', spin_num=3, res_num=1)
307 self.interpreter.spin.create(spin_name='B2', spin_num=4, res_num=1)
308 self.interpreter.spin.create(spin_name='A', spin_num=1, res_num=2)
309 self.interpreter.spin.create(spin_name='A', spin_num=2, res_num=2)
310 self.interpreter.spin.create(spin_name='B', spin_num=3, res_num=2)
311 self.interpreter.spin.create(spin_name='B2', spin_num=4, res_num=2)
312
313
314 self.interpreter.pipe.create('seq copy test', 'mf')
315
316
317 self.interpreter.sequence.copy(pipe_from='mf')
318
319
320 pipe1 = ds['mf']
321 pipe2 = ds['seq copy test']
322
323
324 self.assertEqual(len(pipe1.mol[0].res), len(pipe2.mol[0].res))
325
326
327 for i in range(len(pipe1.mol[0].res)):
328 self.assertEqual(len(pipe1.mol[0].res[i].spin), len(pipe2.mol[0].res[i].spin))
329