1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import sys
24
25
28 """Class for testing model selection."""
29
30 self.relax = relax
31
32
33 if test_name == 'diff tensor':
34
35 self.name = "AIC model selection between two diffusion tensors"
36
37
38 self.test = self.diff
39
40
41 - def diff(self, run):
42 """The test of selecting between diffusion tensors using AIC."""
43
44
45 self.relax.generic.runs.create('sphere', 'mf')
46 self.relax.generic.runs.create('spheroid', 'mf')
47 self.relax.generic.runs.create('aic', 'mf')
48
49
50 path = sys.path[-1] + '/test_suite/data/model_free/S2_0.970_te_2048_Rex_0.149'
51
52
53 self.relax.interpreter._Sequence.read('sphere', file='r1.600.out', dir=path)
54 self.relax.interpreter._Sequence.read('spheroid', file='r1.600.out', dir=path)
55
56
57 self.relax.interpreter._Model_free.select_model('sphere', model='m4')
58 self.relax.interpreter._Model_free.select_model('spheroid', model='m4')
59
60
61 self.relax.interpreter._Relax_data.read('sphere', 'R1', '600', 600.0 * 1e6, 'r1.600.out', dir=path)
62 self.relax.interpreter._Relax_data.read('sphere', 'R2', '600', 600.0 * 1e6, 'r2.600.out', dir=path)
63 self.relax.interpreter._Relax_data.read('sphere', 'NOE', '600', 600.0 * 1e6, 'noe.600.out', dir=path)
64 self.relax.interpreter._Relax_data.read('sphere', 'R1', '500', 500.0 * 1e6, 'r1.500.out', dir=path)
65 self.relax.interpreter._Relax_data.read('sphere', 'R2', '500', 500.0 * 1e6, 'r2.500.out', dir=path)
66 self.relax.interpreter._Relax_data.read('sphere', 'NOE', '500', 500.0 * 1e6, 'noe.500.out', dir=path)
67 self.relax.interpreter._Relax_data.copy('sphere', 'spheroid')
68
69
70 self.relax.interpreter._Diffusion_tensor.init('sphere', 1e-9, fixed=0)
71 self.relax.interpreter._Diffusion_tensor.init('spheroid', (1e-9, 0, 0, 0), fixed=0)
72
73
74 self.relax.data.chi2['sphere'] = 200
75 self.relax.data.chi2['spheroid'] = 0
76
77
78 self.relax.interpreter._Modsel.model_selection(method='AIC', modsel_run='aic')
79
80
81 if not self.relax.data.diff.has_key('aic') or not self.relax.data.diff['aic'].type == 'spheroid':
82 print "\nThe spheroid diffusion tensor has not been selected."
83 return
84
85
86 return 1
87