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.assert_(hasattr(dp_aic, 'diff_tensor')) 
87          self.assertEqual(dp_aic.diff_tensor.type, 'spheroid') 
  88