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 math import pi
25 from numpy import array, float64
26 from numpy.linalg import norm
27 from os import listdir, sep
28 from tempfile import mkdtemp
29
30
31 from data_store import Relax_data_store; ds = Relax_data_store()
32 import dep_check
33 from pipe_control.align_tensor import calc_chi_tensor
34 from pipe_control.interatomic import interatomic_loop, return_interatom
35 from pipe_control.mol_res_spin import return_spin, spin_index_loop, spin_loop
36 from pipe_control.pipes import get_pipe
37 from pipe_control.rdc import return_rdc_data
38 from status import Status; status = Status()
39 from test_suite.system_tests.base_classes import SystemTestCase
40
41
43 """Class for testing various aspects specific to the N-state model."""
44
45 - def __init__(self, methodName='runTest'):
46 """Skip some tests if scipy is not installed.
47
48 @keyword methodName: The name of the test.
49 @type methodName: str
50 """
51
52
53 super(N_state_model, self).__init__(methodName)
54
55
56 if not dep_check.scipy_module and methodName == 'test_frame_order_align_fit':
57
58 status.skipped_tests.append([methodName, 'Scipy', self._skip_type])
59
60
62 """Auxiliary method for checking the correct loading of bond vectors."""
63
64
65 ds.order_new = array([ds.order_struct[ds.order_model[ds.order_model[0]]],
66 ds.order_struct[ds.order_model[ds.order_model[1]]],
67 ds.order_struct[ds.order_model[ds.order_model[2]]]])
68
69
70 C_pos = []
71 C_pos.append(array([6.250, 0.948, 1.968]))
72 C_pos.append(array([6.438, -0.139, 1.226]))
73 C_pos.append(array([6.108, -0.169, 0.378]))
74
75 H_pos = []
76 H_pos.append(array([7.243, 0.580, 1.676]))
77 H_pos.append(array([7.271, -0.291, 0.525]))
78 H_pos.append(array([5.735, 0.003, -0.639]))
79
80
81 vect = []
82 for i in range(3):
83 vect.append(H_pos[i] - C_pos[i])
84
85
86 for i in range(3):
87 vect[i] = vect[i] / norm(vect[i])
88
89
90 print("Structure order: %s" % ds.order_struct)
91 print("Model order: %s" % ds.order_model)
92 print("New order: %s" % ds.order_new)
93 for i in range(3):
94 print("\ni = %i" % i)
95 print("The real vector: %s" % vect[i])
96 print("The reordered vector: %s" % vect[ds.order_new[i]])
97 print("The loaded vector: %s" % cdp.interatomic[0].vector[i])
98
99
100 for i in range(3):
101 self.assertAlmostEqual(norm(C_pos[ds.order_new[i]] - cdp.mol[0].res[0].spin[0].pos[i]), 0.0)
102 self.assertAlmostEqual(norm(H_pos[ds.order_new[i]] - cdp.mol[0].res[0].spin[1].pos[i]), 0.0)
103 for i in range(3):
104 self.assertAlmostEqual(norm(vect[ds.order_new[i]] - cdp.interatomic[0].vector[i]), 0.0)
105
106
108 """A 5-state model in the xz-plane (no pivotting of alpha).
109
110 The 5 states correspond to the Euler angles (z-y-z notation):
111 - State 1: {0, pi/4, 0}
112 - State 2: {0, pi/8, 0}
113 - State 3: {0, 0, 0}
114 - State 4: {0, -pi/8, 0}
115 - State 5: {0, -pi/4, 0}
116 """
117
118
119 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'5_state_xz.py')
120
121
122 self.assertAlmostEqual(cdp.probs[0], 0.2)
123 self.assertAlmostEqual(cdp.probs[1], 0.2)
124 self.assertAlmostEqual(cdp.probs[2], 0.2)
125 self.assertAlmostEqual(cdp.probs[3], 0.2)
126 self.assertAlmostEqual(cdp.probs[4], 0.2)
127
128
129 self.assertAlmostEqual(cdp.alpha[0], 0.0)
130 self.assertAlmostEqual(cdp.alpha[1], 0.0)
131 self.assertAlmostEqual(cdp.alpha[2], 0.0)
132 self.assertAlmostEqual(cdp.alpha[3], 0.0)
133 self.assertAlmostEqual(cdp.alpha[4], 0.0)
134
135
136 self.assertAlmostEqual(cdp.beta[0], pi/4)
137 self.assertAlmostEqual(cdp.beta[1], pi/8)
138 self.assertAlmostEqual(cdp.beta[2], 0.0)
139 self.assertAlmostEqual(cdp.beta[3], -pi/8)
140 self.assertAlmostEqual(cdp.beta[4], -pi/4)
141
142
143 self.assertAlmostEqual(cdp.gamma[0], 0.0)
144 self.assertAlmostEqual(cdp.gamma[1], 0.0)
145 self.assertAlmostEqual(cdp.gamma[2], 0.0)
146 self.assertAlmostEqual(cdp.gamma[3], 0.0)
147 self.assertAlmostEqual(cdp.gamma[4], 0.0)
148
149
150 self.assertAlmostEqual(cdp.chi2, 3.15009916529e-32)
151
152
154 """Test the conversion of the alignment tensor to the chi tensor."""
155
156
157 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'A_to_chi.py')
158
159
160 for i in range(3):
161 self.assertAlmostEqual(cdp.chi[i, i] * 1e32, cdp.chi_ref[i] * 1e32, 2)
162
163
165 """Test the fitting of 5 alignment tensors for the published CaM-IQ RDC and PCS data."""
166
167
168 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'CaM_IQ_tensor_fit.py')
169
170
171 ids = ['dy', 'tb', 'tm', 'er', 'yb', 'ho']
172 A = [
173 [ -5.961228899750e-04, 4.522953035367e-06, 6.168887153854e-04, 7.863257718395e-04, -2.695142351742e-04],
174 [ -1.383036217378e-04, -4.939409871651e-04, 4.130289107370e-04, 7.687580236309e-04, -3.692016717764e-04],
175 [ -9.960927192978e-05, 4.477678617640e-04, -4.062486453226e-04, -4.332178003608e-04, 3.806525171855e-04],
176 [ -1.703610649220e-05, 2.102104571469e-04, -2.836097445400e-04, -2.989888174606e-04, 1.326155627753e-04],
177 [ 6.087542827320e-05, 1.644473726436e-05, -1.804561551839e-04, -1.544765971220e-04, 1.354612889609e-04],
178 [ -1.902819219985e-04, -1.267359074456e-04, 2.303672688393e-04, 3.019676781386e-04, -2.255708108877e-04]
179 ]
180 for i in range(len(A)):
181 print("Checking tensor '%s'." % ids[i])
182 self.assertAlmostEqual(cdp.align_tensors[i].Axx * 1e4, A[i][0] * 1e4)
183 self.assertAlmostEqual(cdp.align_tensors[i].Ayy * 1e4, A[i][1] * 1e4)
184 self.assertAlmostEqual(cdp.align_tensors[i].Axy * 1e4, A[i][2] * 1e4)
185 self.assertAlmostEqual(cdp.align_tensors[i].Axz * 1e4, A[i][3] * 1e4)
186 self.assertAlmostEqual(cdp.align_tensors[i].Ayz * 1e4, A[i][4] * 1e4)
187
188
189 centre = [ 6.328315298868965, 8.951353997015001, 12.311128147383837]
190 self.assertAlmostEqual(cdp.paramagnetic_centre[0], centre[0])
191 self.assertAlmostEqual(cdp.paramagnetic_centre[1], centre[1])
192 self.assertAlmostEqual(cdp.paramagnetic_centre[2], centre[2])
193
194
195 self.assertAlmostEqual(cdp.chi2, 496.36267335850528)
196 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.142825408910208)
197 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.07265356890310298)
198
199
201 """Test the fitting of signless RDCs."""
202
203
204 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'absolute_rdcs.py')
205
206
207 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.351261/2000)
208 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.556994/2000)
209 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.506392/2000)
210 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.560544/2000)
211 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.286367/2000)
212 self.assertAlmostEqual(cdp.chi2, 0.0)
213 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0)
214
215
216 rdcs = [5.59633342475, 13.31357940769, 7.03826972130, 3.39286328073, 2.09118060289, 11.44314950665, 9.06351706695, 2.33713806872, 5.81432510092, 13.10212128419, 2.52845064335, 4.70528375938, 4.07965480340, 6.28030444828, 4.69179757106, 2.34216201798, 3.89567105101, 5.51427513007, 0.72184322202, 3.81502890358, 10.88354253947, 1.66151988717, 4.29930397984, 4.46950447650, 6.99742077188, 2.27879506276, 3.64303288709, 6.83945430255, 3.19585334782]
217
218
219 self.interpreter.rdc.back_calc('abs')
220
221
222 i = 0
223 for spin in spin_loop():
224
225 if not hasattr(spin, 'rdc'):
226 continue
227
228
229 self.assertAlmostEqual(spin.rdc['abs'], abs(rdcs[i]))
230 self.assertAlmostEqual(spin.rdc_bc['abs'], abs(rdcs[i]))
231
232
233 i += 1
234
235
237 """Test the fitting of signless RDCs for menthol."""
238
239
240 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'absolute_rdcs_menthol.py')
241
242
243 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -2.183595975281820e-04)
244 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, -7.014379141006286e-05)
245 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -1.744959310458587e-05)
246 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 3.646699595026552e-05)
247 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, 2.592895195459969e-04)
248 self.assertAlmostEqual(cdp.chi2, 728.32717233107246)
249 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0)
250 self.assertAlmostEqual(cdp.q_rdc_norm_squared_sum, 0.7547452273747645)
251
252
254 """Test the fitting of signless T values (J+D)."""
255
256
257 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'absolute_T.py')
258
259
260 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -1.436586299657e-04)
261 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, -5.004443735044e-04)
262 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -5.017832275009e-05)
263 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 1.366097786433e-04)
264 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -1.614772175671e-04)
265 self.assertAlmostEqual(cdp.chi2, 311.70348701353225)
266 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0)
267 self.assertAlmostEqual(cdp.q_rdc_norm_squared_sum, 0.086891848854541404)
268
269
270 T = [195.2, 205.9, 109.4, 113.8, 127.4, 156.0, 92.1, 173.2, 183.0, 174.3, 152.2, 97.3, 136.0, 129.2, 145.5, 156.0, 121.6, 128.0, 154.5, 94.2]
271 T_bc = [
272 195.009353539915281,
273 205.456622836526037,
274 112.285085032859712,
275 113.628896345578610,
276 127.440986667041187,
277 155.505017063790831,
278 94.332271833299316,
279 172.408496922639102,
280 181.972859458051403,
281 173.655640981746103,
282 153.402585241137388,
283 92.115389822570464,
284 139.743303992644570,
285 131.399101601878243,
286 146.219317894376132,
287 153.945261372587538,
288 119.541444938794172,
289 126.620471670822312,
290 155.940753902549545,
291 90.813638474619523
292 ]
293
294
295 self.interpreter.rdc.back_calc('Gel')
296
297
298 i = 0
299 for interatom in interatomic_loop():
300
301 if not hasattr(interatom, 'rdc'):
302 continue
303
304
305 self.assertAlmostEqual(interatom.rdc['Gel'], T[i])
306 self.assertAlmostEqual(interatom.rdc_bc['Gel'], T_bc[i], 5)
307
308
309 i += 1
310
311
313 """Test the use of RDCs and PCSs to find the alignment tensor."""
314
315
316 ds.mode = 'all'
317 tag = 'synth'
318
319
320 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'align_fit.py')
321
322
323 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.351261/2000)
324 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.556994/2000)
325 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.506392/2000)
326 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.560544/2000)
327 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.286367/2000)
328 self.assertAlmostEqual(cdp.chi2, 0.0)
329 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0)
330 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.0)
331
332
333 pcs = [1.0261275236, 0.75832284646, 0.65377417467, 0.88410306916, 0.83665620282, 1.887881182, 1.6564530832, 1.8489841033, -1.1143070855, -0.52863087918, -0.67600660991, -0.36996952054, -0.50720205688, -0.39889489474, -0.41237130008, -0.71313422816, -0.58642013802, -1.2160818959, -1.3990341569, -1.4084215541, -1.2007391713, -2.1392542193, -2.0165726596, -1.7623442985, -1.6437792517, -1.2415832517, -1.3008765368, -1.5872391105, -1.8060331465, -1.9063640494, -1.9817787999, -0.85264936663, -0.98332177588, -0.13370651687, -0.41762890604, -0.038212181921, -0.37986098085, 0.63582157322, 0.48346482178, 1.7566240094, 1.5694652222, 1.9914499872, 2.5316890107, 1.4559940851, 1.8661428328, 0.65003087965, 0.91690449156, 3.2096229388, 3.5547526651, 3.0579308183, 3.5933428117, 2.9062016872, 3.3750576279, 2.1848555929, 2.4769802024, 1.6466129291, 1.7719619979, 1.1373876736, 1.2182451528]
334 i = 0
335 for spin in spin_loop():
336
337 if not hasattr(spin, 'pcs'):
338 continue
339
340
341 self.assertAlmostEqual(spin.pcs[tag], pcs[i])
342
343
344 self.assertAlmostEqual(spin.pcs_bc[tag], pcs[i])
345
346
347 for sim_index in range(cdp.sim_number):
348 self.assert_(abs(spin.pcs_sim[tag][sim_index] - spin.pcs[tag]) < 6.0*spin.pcs_err[tag])
349
350
351 i += 1
352
353
354 self.interpreter.pcs.back_calc(tag)
355
356
357 i = 0
358 for spin in spin_loop():
359
360 if not hasattr(spin, 'pcs'):
361 continue
362
363
364 self.assertAlmostEqual(spin.pcs_bc[tag], pcs[i])
365
366
367 i += 1
368
369
371 """Test the use of randomised RDCs and PCSs to find the alignment tensor."""
372
373
374 ds.mode = 'all'
375
376
377 ds.rand = True
378
379
380 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'align_fit.py')
381
382
383 tag = 'synth'
384
385
386 for i in range(4):
387
388 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.000189412096996)
389 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.000271130087923)
390 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.000264898401302)
391 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.000284115871058)
392 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.000152207413184)
393 self.assertAlmostEqual(cdp.chi2, 783.530808266)
394 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.063345784112045375)
395 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.084926009099013003)
396
397
398 spin = return_spin(':114@N')
399 interatom = return_interatom(':114@N', ':114@H')
400
401
402 self.assertAlmostEqual(interatom.rdc[tag], -8.9193269604999994)
403 self.assertAlmostEqual(interatom.rdc_bc[tag], -9.1030018792821394)
404 self.assertAlmostEqual(spin.pcs[tag], -0.41430390310999998)
405 self.assertAlmostEqual(spin.pcs_bc[tag], -0.39723010845807194)
406
407
408 if i == 0:
409
410 for interatom in interatomic_loop():
411 interatom.rdc_err = {tag: 1.0}
412 for spin in spin_loop():
413 spin.pcs_err = {tag: 0.1}
414
415
416 self.interpreter.monte_carlo.setup(number=3)
417 self.interpreter.monte_carlo.create_data()
418 self.interpreter.monte_carlo.initial_values()
419 self.interpreter.minimise.execute('simplex', constraints=False, max_iter=5)
420 self.interpreter.monte_carlo.error_analysis()
421
422
423 if i == 2:
424 self.interpreter.rdc.back_calc(tag)
425 self.interpreter.pcs.back_calc(tag)
426
427
428 if i == 1:
429 self.interpreter.rdc.calc_q_factors()
430 self.interpreter.pcs.calc_q_factors()
431
432
434 """Test the use of PCSs to find the alignment tensor."""
435
436
437 ds.mode = 'pcs'
438
439
440 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'align_fit.py')
441
442
443 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.351261/2000)
444 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.556994/2000)
445 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.506392/2000)
446 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.560544/2000)
447 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.286367/2000)
448 self.assertAlmostEqual(cdp.chi2, 0.0)
449 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.0)
450
451
453 """Test the use of randomised PCSs to find the alignment tensor."""
454
455
456 ds.mode = 'pcs'
457
458
459 ds.rand = True
460
461
462 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'align_fit.py')
463
464
465 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.000189165581069)
466 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.000271897288335)
467 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.000264627388896)
468 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.000284180080857)
469 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.00015165641132)
470 self.assertAlmostEqual(cdp.chi2, 756.268087443)
471 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.063341567973121266)
472
473
475 """Test the use of RDCs to find the alignment tensor."""
476
477
478 ds.mode = 'rdc'
479
480
481 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'align_fit.py')
482
483
484 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.351261/2000)
485 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.556994/2000)
486 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.506392/2000)
487 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.560544/2000)
488 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.286367/2000)
489 self.assertAlmostEqual(cdp.chi2, 0.0)
490 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0)
491
492
494 """Test the use of randomised RDCs to find the alignment tensor."""
495
496
497 ds.mode = 'rdc'
498
499
500 ds.rand = True
501
502
503 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'align_fit.py')
504
505
506
507
508 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.00017045)
509 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.00024905)
510 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.00027502)
511 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.00029833)
512 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.00015125)
513 self.assertAlmostEqual(cdp.chi2, 23.5877482365)
514 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.078460000413257444)
515 self.assertAlmostEqual(cdp.q_rdc_norm_squared_sum, 0.14049691097282743)
516
517
519 """The copying of RDC and PCS data from one pipe to another."""
520
521
522 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'data_copying.py')
523
524
525 orig = get_pipe('orig')
526 new = get_pipe('new')
527
528
529 self.assertEqual(orig.rdc_ids, new.rdc_ids)
530 self.assertEqual(orig.pcs_ids, new.pcs_ids)
531 self.assertEqual(orig.align_ids, new.align_ids)
532
533
534 for mol_index, res_index, spin_index in spin_index_loop():
535
536 spin_orig = orig.mol[mol_index].res[res_index].spin[spin_index]
537 spin_new = new.mol[mol_index].res[res_index].spin[spin_index]
538
539
540 if not spin_orig.select:
541 continue
542
543
544 for id in orig.align_ids:
545
546 if hasattr(spin_orig, 'rdc'):
547
548 self.assertEqual(sorted(spin_orig.rdc.keys()), sorted(spin_new.rdc.keys()))
549
550
551 if id in spin_orig.rdc:
552 self.assertEqual(spin_orig.rdc[id], spin_new.rdc[id])
553
554
555 if hasattr(spin_orig, 'pcs'):
556
557 self.assertEqual(sorted(spin_orig.pcs.keys()), sorted(spin_new.pcs.keys()))
558
559
560 if id in spin_orig.pcs:
561 self.assertEqual(spin_orig.pcs[id], spin_new.pcs[id])
562
563
565 """Test the use of alignment tensors, RDCs and PCSs from a frame order data pipe for the N-state model."""
566
567
568 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'frame_order_align_fit.py')
569
570
571 A_5D = []
572 A_5D.append([1.42219822168827662867e-04, -1.44543001566521341940e-04, -7.07796211648713973798e-04, -6.01619494082773244303e-04, 2.02008007072950861996e-04])
573 A_5D.append([3.56720663040924505435e-04, -2.68385787902088840916e-04, -1.69361406642305853832e-04, 1.71873715515064501074e-04, -3.05790155096090983822e-04])
574 A_5D.append([2.32088908680377300801e-07, 2.08076808579168379617e-06, -2.21735465435989729223e-06, -3.74311563209448033818e-06, -2.40784858070560310370e-06])
575 A_5D.append([-2.62495279588228071048e-04, 7.35617367964106275147e-04, 6.39754192258981332648e-05, 6.27880171180572523460e-05, 2.01197582457700226708e-04])
576
577
578 for i in range(1):
579 self.assertAlmostEqual(cdp.align_tensors[i].Axx, A_5D[i][0])
580 self.assertAlmostEqual(cdp.align_tensors[i].Ayy, A_5D[i][1])
581 self.assertAlmostEqual(cdp.align_tensors[i].Axy, A_5D[i][2])
582 self.assertAlmostEqual(cdp.align_tensors[i].Axz, A_5D[i][3])
583 self.assertAlmostEqual(cdp.align_tensors[i].Ayz, A_5D[i][4])
584
585
586 self.assertAlmostEqual(cdp.chi2, 0.0)
587 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0)
588 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.0)
589
590
592 """The 4-state model analysis of lactose using RDCs and PCSs."""
593
594
595 ds.model = 'fixed'
596
597
598 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'lactose_n_state.py')
599
600
602 """The 4-state model analysis of lactose using RDCs and PCSs."""
603
604
605 ds.model = 'population'
606
607
608 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'lactose_n_state.py')
609
610
636
637
761
762
764 """Test the use of RDCs and PCSs to find the alignment tensor with missing data."""
765
766
767 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'missing_data_test.py')
768
769
770 A_5D = []
771 A_5D.append([1.42219822168827662867e-04, -1.44543001566521341940e-04, -7.07796211648713973798e-04, -6.01619494082773244303e-04, 2.02008007072950861996e-04])
772 A_5D.append([3.56720663040924505435e-04, -2.68385787902088840916e-04, -1.69361406642305853832e-04, 1.71873715515064501074e-04, -3.05790155096090983822e-04])
773 A_5D.append([2.32088908680377300801e-07, 2.08076808579168379617e-06, -2.21735465435989729223e-06, -3.74311563209448033818e-06, -2.40784858070560310370e-06])
774 A_5D.append([-2.62495279588228071048e-04, 7.35617367964106275147e-04, 6.39754192258981332648e-05, 6.27880171180572523460e-05, 2.01197582457700226708e-04])
775
776
777 for i in range(len(A_5D)):
778 self.assertAlmostEqual(cdp.align_tensors[i].Axx, A_5D[i][0])
779 self.assertAlmostEqual(cdp.align_tensors[i].Ayy, A_5D[i][1])
780 self.assertAlmostEqual(cdp.align_tensors[i].Axy, A_5D[i][2])
781 self.assertAlmostEqual(cdp.align_tensors[i].Axz, A_5D[i][3])
782 self.assertAlmostEqual(cdp.align_tensors[i].Ayz, A_5D[i][4])
783
784
785 self.assertAlmostEqual(cdp.chi2, 0.0)
786 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0)
787 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.0)
788
789
791 """Test the Monte Carlo simulation data of fitting RDCs and PCSs."""
792
793
794 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'monte_carlo_testing.py')
795
796
797 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.351261/2000)
798 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.556994/2000)
799 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.506392/2000)
800 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.560544/2000)
801 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.286367/2000)
802 self.assertAlmostEqual(cdp.chi2 / 1e6, 1745860.0485368515 / 1e6, 6)
803 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0)
804 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.0)
805
806
807 key = 'synth'
808
809
810 for spin in spin_loop():
811
812 print(spin)
813
814
815 self.assert_(hasattr(spin, 'pcs_sim'))
816 self.assert_(key in spin.pcs_sim)
817
818
819 for i in range(cdp.sim_number):
820 self.assertAlmostEqual(spin.pcs[key], spin.pcs_sim[key][i])
821
822
823 for interatom in interatomic_loop():
824
825 print(interatom)
826
827
828 self.assert_(hasattr(interatom, 'rdc_sim'))
829 self.assert_(key in interatom.rdc_sim)
830
831
832 for i in range(cdp.sim_number):
833 self.assertAlmostEqual(interatom.rdc[key], interatom.rdc_sim[key][i], 5)
834
835
836 for i in range(cdp.sim_number):
837 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.351261/2000)
838 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.556994/2000)
839 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.506392/2000)
840 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.560544/2000)
841 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.286367/2000)
842 self.assertAlmostEqual(cdp.chi2 / 1e6, 1745860.0485368515 / 1e6, 5)
843
844
845 self.assertAlmostEqual(cdp.align_tensors[0].Axx_err, 0.0)
846 self.assertAlmostEqual(cdp.align_tensors[0].Ayy_err, 0.0)
847 self.assertAlmostEqual(cdp.align_tensors[0].Axy_err, 0.0)
848 self.assertAlmostEqual(cdp.align_tensors[0].Axz_err, 0.0)
849 self.assertAlmostEqual(cdp.align_tensors[0].Ayz_err, 0.0)
850
851
853 """Test the use of RDCs and PCSs to find the alignment tensor."""
854
855
856 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'paramag_align_fit.py')
857
858
859 self.assertAlmostEqual(cdp.align_tensors[1].Axx, 0.001414718232784)
860 self.assertAlmostEqual(cdp.align_tensors[1].Ayy, 0.001530457843766)
861 self.assertAlmostEqual(cdp.align_tensors[1].Axy, 0.001689957281873)
862 self.assertAlmostEqual(cdp.align_tensors[1].Axz, 0.000838692329704)
863 self.assertAlmostEqual(cdp.align_tensors[1].Ayz, -0.000984302159683)
864 self.assertAlmostEqual(cdp.q_factors_rdc_norm_tensor_size['Er'], 0.0, 7)
865 self.assertAlmostEqual(cdp.q_factors_rdc_norm_squared_sum['Er'], 0.0, 7)
866 self.assertAlmostEqual(cdp.q_factors_pcs_norm_squared_sum['Er'], 0.0, 7)
867 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0, 7)
868 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.0, 7)
869
870
872 """Test the use of RDCs and PCSs to find the alignment tensor."""
873
874
875 ds.mode = 'all'
876
877
878 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'paramag_centre_fit.py')
879
880
881 self.assertAlmostEqual(cdp.paramagnetic_centre[0], 32.555, 1)
882 self.assertAlmostEqual(cdp.paramagnetic_centre[1], -19.130, 1)
883 self.assertAlmostEqual(cdp.paramagnetic_centre[2], 27.775, 1)
884
885
886 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.351261/2000, 5)
887 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.556994/2000, 5)
888 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.506392/2000, 5)
889 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.560544/2000, 5)
890 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.286367/2000, 5)
891 self.assertAlmostEqual(cdp.chi2, 0.0, 2)
892 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0, 2)
893 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.0, 2)
894
895
897 """Test the back-calculation of PCSs for ubiquitin."""
898
899
900 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'pcs_back_calc.py')
901
902
903 self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].pcs_bc['A'], 0.061941887563792014)
904 self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].pcs_bc['A'], -0.077886567972081502)
905 self.assertAlmostEqual(cdp.mol[0].res[2].spin[0].pcs_bc['A'], -0.13928519099517916)
906
907
909 """Test the fit of DNA PCSs at the true Ln3+ position."""
910
911
912 ds.para_centre = 'true'
913
914
915 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'dna_pcs_fit.py')
916
917
918 self.assertAlmostEqual(cdp.align_tensors[0].Axx, 1.42219822168827662867e-04)
919 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, -1.44543001566521341940e-04)
920 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -7.07796211648713973798e-04)
921 self.assertAlmostEqual(cdp.align_tensors[0].Axz, -6.01619494082773244303e-04)
922 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, 2.02008007072950861996e-04)
923 self.assertAlmostEqual(cdp.chi2, 0.0)
924 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.0)
925
926
928 """Test the fit of DNA PCSs at a Ln3+ position of [0, 0, 0]."""
929
930
931 ds.para_centre = 'zero'
932
933
934 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'dna_pcs_fit.py')
935
936
937 self.assertAlmostEqual(cdp.align_tensors[0].Axx, 9.739588118243e-07)
938 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, -1.077401299806e-05)
939 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -2.321033328910e-06)
940 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 5.105903556692e-07)
941 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, 1.676638764825e-05)
942 self.assertAlmostEqual(cdp.chi2, 2125.9562247877066)
943 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.76065986767333704)
944
945
946 chi_diag = calc_chi_tensor(cdp.align_tensors[0].A_diag, 799.75376122 * 1e6, 298)
947 chi_diag = chi_diag * 1e33
948 self.assertAlmostEqual((chi_diag[2, 2] - (chi_diag[0, 0] + chi_diag[1, 1])/2.0), -6.726159808496, 5)
949 self.assertAlmostEqual((chi_diag[0, 0] - chi_diag[1, 1]), -3.960936794864, 6)
950
951
953 """Test the back-calculation of RDCs from a PCS derived tensor."""
954
955
956 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'pcs_to_rdc.py')
957
958
959 self.assertAlmostEqual(cdp.interatomic[0].rdc_bc['A'], 4.1319413321530014)
960 self.assertAlmostEqual(cdp.interatomic[1].rdc_bc['A'], -9.5802642470087989)
961 self.assertAlmostEqual(cdp.interatomic[2].rdc_bc['A'], -16.244078605100817)
962
963
965 """Pyrotarctic anhydride alignment tensor optimisation using long range (1J, 2J & 3J) absolute T (J+D) data."""
966
967
968 ds.abs_data = 'T'
969
970
971 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'pyrotartaric_anhydride.py')
972
973
974 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.0001756305, 5)
975 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.000278497, 5)
976 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.000253196, 5)
977 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.000280272, 5)
978 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.0001431835, 5)
979 self.assertAlmostEqual(cdp.chi2, 0.0, 2)
980 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0, 2)
981
982
984 """Pyrotarctic anhydride alignment tensor optimisation using short range RDC and long range (1J, 2J & 3J) absolute T (J+D) data."""
985
986
987 ds.abs_data = 'mix'
988
989
990 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'pyrotartaric_anhydride.py')
991
992
993 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.0001756305, 5)
994 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.000278497, 5)
995 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.000253196, 5)
996 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.000280272, 5)
997 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.0001431835, 5)
998 self.assertAlmostEqual(cdp.chi2, 0.0, 2)
999 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0, 2)
1000
1001
1003 """Pyrotarctic anhydride alignment tensor optimisation using long range (1J, 2J & 3J) RDC data."""
1004
1005
1006 ds.abs_data = 'D'
1007
1008
1009 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'pyrotartaric_anhydride.py')
1010
1011
1012 rdcs, rdc_err, rdc_weight, rdc_vector, rdc_dj, absolute_rdc, T_flags, j_couplings, rdc_pseudo_flags = return_rdc_data()
1013
1014
1015 ids = ['@9 - @Q9', '@4 - @6', '@5 - @7', '@5 - @8', '@1 - @6', '@3 - @6', '@5 - @6', '@9 - @6', '@1 - @7', '@3 - @7', '@4 - @7', '@9 - @7', '@1 - @8', '@3 - @8', '@4 - @8', '@9 - @8', '@3 - @Q9', '@4 - @Q9', '@5 - @Q9']
1016 real_rdcs = array([7.051710295953332, 14.64956993990, -9.80224941614, 4.49085022708, 1.16041049951, 0.57071216172, 3.68667449742, -2.26063357144, -4.77232431456, -0.17007443173, 2.37501105989, 1.64523216045, -0.94447557779, 0.06213688971, 1.48958862680, 0.21349779284, -1.2400897128766667, -1.8997427023766667, -0.0129325208733333], float64)
1017
1018
1019 for i in range(len(ids)):
1020 print("Spin pair '%s'." % ids[i])
1021 self.assertEqual(real_rdcs[i], rdcs[0, i])
1022
1023
1024 self.assertAlmostEqual(cdp.align_tensors[0].Axx, -0.0001756305, 5)
1025 self.assertAlmostEqual(cdp.align_tensors[0].Ayy, 0.000278497, 5)
1026 self.assertAlmostEqual(cdp.align_tensors[0].Axy, -0.000253196, 5)
1027 self.assertAlmostEqual(cdp.align_tensors[0].Axz, 0.000280272, 5)
1028 self.assertAlmostEqual(cdp.align_tensors[0].Ayz, -0.0001431835, 5)
1029 self.assertAlmostEqual(cdp.chi2, 0.0, 2)
1030 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0, 2)
1031
1032
1034 """Test the calculation of an alignment tensor from RDC data."""
1035
1036
1037 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'rdc_tensor.py')
1038
1039
1041 """Test the statistics user functions for the N-state model.
1042
1043 This uses the 4-state model analysis of lactose using RDCs and PCSs.
1044 """
1045
1046
1047 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'lactose_n_state.py')
1048
1049
1050 self.assertAlmostEqual(cdp.chi2, 1051728.8810718122)
1051 del cdp.chi2
1052
1053
1054
1055 dy_tensor = [
1056 (-1.809863649202e-05, 1.706576149818e-05, -7.790951217246e-06, -1.314676121261e-05, 4.526806452559e-08),
1057 (10.0e-05, 1.706576149818e-05, -7.790951217246e-06, -1.314676121261e-05, 4.526806452559e-08),
1058 ]
1059 chi2 = [1051728.8810718122, 5927446.9030144978]
1060
1061
1062 k = 5*4 + 3
1063
1064
1065 n = 9*4 + 20*4
1066
1067
1068 for i in range(2):
1069
1070 self.interpreter.align_tensor.init(tensor='Dy', align_id='Dy', params=dy_tensor[i], param_types=3)
1071
1072
1073 self.interpreter.statistics.model()
1074
1075
1076 self.assertAlmostEqual(cdp.chi2, chi2[i])
1077 self.assertAlmostEqual(cdp.num_params, k)
1078 self.assertAlmostEqual(cdp.num_data_points, n)
1079
1080
1081 self.interpreter.statistics.aic()
1082 self.assertAlmostEqual(cdp.aic, chi2[i]+2.0*k)
1083
1084
1086 """The full relative stereochemistry analysis."""
1087
1088
1089 ds.tmpdir = mkdtemp()
1090
1091
1092 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'stereochem_analysis.py')
1093
1094
1095 files = listdir(ds.tmpdir)
1096 for file in files:
1097 print("Checking file %s." % file)
1098 self.assert_(file in ['NOE_viol_S_sorted', 'ensembles_superimposed', 'RDC_PAN_dist.agr', 'Q_factors_S', 'NOE_viol_curve.agr', 'NOE_viol_dist.agr', 'RDC_PAN_curve.agr', 'NOE_viol_S', 'Q_factors_R_sorted', 'NOE_results', 'Q_factors_R', 'NOE_viol_R_sorted', 'logs', 'NOE_viol_R', 'Q_factors_S_sorted', 'RDC_PAN_results', 'correlation_plot.agr', 'correlation_plot_scaled.agr'])
1099
1100
1101 subdirs = ['ensembles_superimposed', 'logs', 'NOE_results', 'RDC_PAN_results']
1102 files = [['S0.pdb', 'S2.pdb', 'R0.pdb', 'R1.pdb', 'S1.pdb', 'R2.pdb'],
1103 ['RDC_PAN_analysis.log', 'NOE_viol.log'],
1104 ['S_results_0.bz2', 'S_results_1.bz2', 'R_results_2.bz2', 'R_results_0.bz2', 'S_results_2.bz2', 'R_results_1.bz2'],
1105 ['S_results_0.bz2', 'S_results_1.bz2', 'R_results_2.bz2', 'R_results_0.bz2', 'S_results_2.bz2', 'R_results_1.bz2']]
1106 for i in range(len(subdirs)):
1107 for file in listdir(ds.tmpdir + sep + subdirs[i]):
1108 print("Checking file %s." % file)
1109 self.assert_(file in files[i])
1110
1111
1113 """Test the 'population' N-state model optimisation using RDCs and PCSs (with missing data)."""
1114
1115
1116 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'populations.py')
1117
1118
1119 A_5D = []
1120 A_5D.append([1.42219822168827662867e-04, -1.44543001566521341940e-04, -7.07796211648713973798e-04, -6.01619494082773244303e-04, 2.02008007072950861996e-04])
1121 A_5D.append([3.56720663040924505435e-04, -2.68385787902088840916e-04, -1.69361406642305853832e-04, 1.71873715515064501074e-04, -3.05790155096090983822e-04])
1122 A_5D.append([2.32088908680377300801e-07, 2.08076808579168379617e-06, -2.21735465435989729223e-06, -3.74311563209448033818e-06, -2.40784858070560310370e-06])
1123 A_5D.append([-2.62495279588228071048e-04, 7.35617367964106275147e-04, 6.39754192258981332648e-05, 6.27880171180572523460e-05, 2.01197582457700226708e-04])
1124
1125
1126 for i in range(len(A_5D)):
1127 self.assertAlmostEqual(cdp.align_tensors[i].Axx, A_5D[i][0], 5)
1128 self.assertAlmostEqual(cdp.align_tensors[i].Ayy, A_5D[i][1], 5)
1129 self.assertAlmostEqual(cdp.align_tensors[i].Axy, A_5D[i][2], 5)
1130 self.assertAlmostEqual(cdp.align_tensors[i].Axz, A_5D[i][3], 5)
1131 self.assertAlmostEqual(cdp.align_tensors[i].Ayz, A_5D[i][4], 5)
1132
1133
1134 self.assertEqual(len(cdp.probs), 3)
1135 self.assertAlmostEqual(cdp.probs[0], 0.3, 3)
1136 self.assertAlmostEqual(cdp.probs[1], 0.6, 3)
1137 self.assertAlmostEqual(cdp.probs[2], 0.1, 3)
1138
1139
1140 self.assertAlmostEqual(cdp.chi2, 0.0, 2)
1141 self.assertAlmostEqual(cdp.q_rdc_norm_tensor_size, 0.0, 2)
1142 self.assertAlmostEqual(cdp.q_pcs_norm_squared_sum, 0.0, 1)
1143
1144
1146 """Test the loading of inter-atomic vectors in the 'population' N-state model."""
1147
1148
1149 ds.order_struct = [1, 2, 0]
1150 ds.order_model = [0, 1, 2]
1151
1152
1153 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'vector_loading.py')
1154
1155
1156 self.check_vectors()
1157
1158
1160 """Test the loading of inter-atomic vectors in the 'population' N-state model."""
1161
1162
1163 ds.order_struct = [0, 1, 2]
1164 ds.order_model = [2, 0, 1]
1165
1166
1167 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'vector_loading.py')
1168
1169
1170 self.check_vectors()
1171
1172
1174 """Test the loading of inter-atomic vectors in the 'population' N-state model."""
1175
1176
1177 ds.order_struct = [1, 0, 2]
1178 ds.order_model = [2, 0, 1]
1179
1180
1181 self.script_exec(status.install_path + sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'n_state_model'+sep+'vector_loading.py')
1182
1183
1184 self.check_vectors()
1185