mailr19373 - /branches/relax_disp/specific_analyses/relax_disp.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on April 04, 2013 - 22:22:
Author: bugman
Date: Thu Apr  4 22:22:43 2013
New Revision: 19373

URL: http://svn.gna.org/viewcvs/relax?rev=19373&view=rev
Log:
The relaxation dispersion specific _disassemble_param_vector() method is now 
functional.

This should allow the minimise user function to complete.


Modified:
    branches/relax_disp/specific_analyses/relax_disp.py

Modified: branches/relax_disp/specific_analyses/relax_disp.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/relax_disp/specific_analyses/relax_disp.py?rev=19373&r1=19372&r2=19373&view=diff
==============================================================================
--- branches/relax_disp/specific_analyses/relax_disp.py (original)
+++ branches/relax_disp/specific_analyses/relax_disp.py Thu Apr  4 22:22:43 
2013
@@ -417,45 +417,82 @@
         @type sim_index:        int
         """
 
-        # Monte Carlo simulations.
-        if sim_index != None:
+        # Initialise.
+        param_index = 0
+
+        # First add the spin specific parameters.
+        for spin_index in range(len(spins)):
+            # Alias the spin.
+            spin = spins[spin_index]
+
+            # Loop over each exponential curve.
+            for exp_index, key in self._exp_curve_loop():
+                index = spin_index * 2 * cdp.curve_count + exp_index * 
cdp.curve_count
+                param_index += 2
+
+                # Loop over the model parameters.
+                for i in range(len(spin.params)):
+                    # Effective transversal relaxation rate.
+                    if spin.params[i] == 'R2eff':
+                        if sim_index != None:
+                            spin.r2eff_sim[key][sim_index] = 
param_vector[index]
+                        else:
+                            spin.r2eff[key] = param_vector[index]
+
+                    # Initial intensity.
+                    elif spin.params[i] == 'I0':
+                        if sim_index != None:
+                            spin.i0_sim[key][sim_index] = 
param_vector[index+1]
+                        else:
+                            spin.i0[key] = param_vector[index+1]
+
+        # Then the spin block specific parameters, taking the values from 
the first spin.
+        spin = spins[0]
+        for i in range(len(spin.params)):
             # Transversal relaxation rate.
-            spin.r2_sim[sim_index] = param_vector[0]
+            if spin.params[i] == 'R2':
+                if sim_index != None:
+                    spin.r2_sim[sim_index] = param_vector[param_index]
+                else:
+                    spin.r2 = param_vector[param_index]
 
             # Chemical exchange contribution to 'R2'.
-            spin.rex_sim[sim_index] = param_vector[1]
+            if spin.params[i] == 'Rex':
+                if sim_index != None:
+                    spin.rex_sim[sim_index] = param_vector[param_index]
+                else:
+                    spin.rex = param_vector[param_index]
 
             # Exchange rate.
-            spin.kex_sim[sim_index] = param_vector[2]
+            elif spin.params[i] == 'kex':
+                if sim_index != None:
+                    spin.kex_sim[sim_index] = param_vector[param_index]
+                else:
+                    spin.kex = param_vector[param_index]
 
             # Transversal relaxation rate for state A.
-            spin.r2a_sim[sim_index] = param_vector[3]
+            if spin.params[i] == 'R2A':
+                if sim_index != None:
+                    spin.r2a_sim[sim_index] = param_vector[param_index]
+                else:
+                    spin.r2a = param_vector[param_index]
 
             # Exchange rate from state A to state B.
-            spin.ka_sim[sim_index] = param_vector[4]
+            if spin.params[i] == 'kA':
+                if sim_index != None:
+                    spin.ka_sim[sim_index] = param_vector[param_index]
+                else:
+                    spin.ka = param_vector[param_index]
 
             # Chemical shift difference between states A and B.
-            spin.dw_sim[sim_index] = param_vector[5]
-
-        # Parameter values.
-        else:
-            # Transversal relaxation rate.
-            spin.r2 = param_vector[0]
-
-            # Chemical exchange contribution to 'R2'.
-            spin.rex = param_vector[1]
-
-            # Exchange rate.
-            spin.kex = param_vector[2]
-
-            # Transversal relaxation rate for state A.
-            spin.r2a = param_vector[3]
-
-            # Exchange rate from state A to state B.
-            spin.ka = param_vector[4]
-
-            # Chemical shift difference between states A and B.
-            spin.dw = param_vector[5]
+            if spin.params[i] == 'dw':
+                if sim_index != None:
+                    spin.dw_sim[sim_index] = param_vector[param_index]
+                else:
+                    spin.dw = param_vector[param_index]
+
+            # Increment the parameter index.
+            param_index = param_index + 1
 
 
     def _exp_curve_loop(self):




Related Messages


Powered by MHonArc, Updated Thu Apr 04 22:40:02 2013