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_store import Relax_data_store; ds = Relax_data_store()
27 from pipe_control import pipes
28 from status import Status; status = Status()
29 from test_suite.system_tests.base_classes import SystemTestCase
30
31
33 """Class for testing model selection."""
34
36 """AIC model selection between two diffusion tensors."""
37
38
39 pipe_list = ['sphere', 'spheroid']
40 tensors = [1e-9, (1e-9, 0, 0, 0)]
41
42
43 path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'model_free'+sep+'S2_0.970_te_2048_Rex_0.149'
44
45
46 for i in range(2):
47
48 self.interpreter.pipe.create(pipe_list[i], 'mf')
49
50
51 self.interpreter.sequence.read(file='r1.600.out', dir=path, res_num_col=1, res_name_col=2)
52
53
54 self.interpreter.model_free.select_model(model='m4')
55
56
57 self.interpreter.relax_data.read(ri_id='R1_600', ri_type='R1', frq=600.0*1e6, file='r1.600.out', dir=path, res_num_col=1, res_name_col=2, data_col=3, error_col=4)
58 self.interpreter.relax_data.read(ri_id='R2_600', ri_type='R2', frq=600.0*1e6, file='r2.600.out', dir=path, res_num_col=1, res_name_col=2, data_col=3, error_col=4)
59 self.interpreter.relax_data.read(ri_id='NOE_600', ri_type='NOE', frq=600.0*1e6, file='noe.600.out', dir=path, res_num_col=1, res_name_col=2, data_col=3, error_col=4)
60 self.interpreter.relax_data.read(ri_id='R1_500', ri_type='R1', frq=500.0*1e6, file='r1.500.out', dir=path, res_num_col=1, res_name_col=2, data_col=3, error_col=4)
61 self.interpreter.relax_data.read(ri_id='R2_500', ri_type='R2', frq=500.0*1e6, file='r2.500.out', dir=path, res_num_col=1, res_name_col=2, data_col=3, error_col=4)
62 self.interpreter.relax_data.read(ri_id='NOE_500', ri_type='NOE', frq=500.0*1e6, file='noe.500.out', dir=path, res_num_col=1, res_name_col=2, data_col=3, error_col=4)
63
64
65 self.interpreter.spin.name('N')
66 self.interpreter.sequence.attach_protons()
67
68
69 self.interpreter.diffusion_tensor.init(tensors[i], fixed=False)
70
71
72 dp_sphere = pipes.get_pipe('sphere')
73 dp_spheroid = pipes.get_pipe('spheroid')
74
75
76 dp_sphere.chi2 = 200
77 dp_spheroid.chi2 = 0
78
79
80 self.interpreter.model_selection(method='AIC', modsel_pipe='aic')
81
82
83 dp_aic = pipes.get_pipe('aic')
84
85
86 self.assertTrue(hasattr(dp_aic, 'diff_tensor'))
87 self.assertEqual(dp_aic.diff_tensor.type, 'spheroid')
88