mailr14959 - /1.3/specific_fns/frame_order.py


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

Header


Content

Posted by edward on November 02, 2011 - 17:21:
Author: bugman
Date: Wed Nov  2 17:21:15 2011
New Revision: 14959

URL: http://svn.gna.org/viewcvs/relax?rev=14959&view=rev
Log:
Monte Carlo simulations are now implemented for the frame order analysis.


Modified:
    1.3/specific_fns/frame_order.py

Modified: 1.3/specific_fns/frame_order.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/frame_order.py?rev=14959&r1=14958&r2=14959&view=diff
==============================================================================
--- 1.3/specific_fns/frame_order.py (original)
+++ 1.3/specific_fns/frame_order.py Wed Nov  2 17:21:15 2011
@@ -57,6 +57,7 @@
         """Initialise the class by placing API_common methods into the 
API."""
 
         # Place methods into the API.
+        self.eliminate = self._eliminate_false
         self.overfit_deselect = self._overfit_deselect_dummy
         self.return_conversion_factor = self._return_no_conversion_factor
         self.return_data_name = self._return_data_name
@@ -78,44 +79,82 @@
         return lower, upper
 
 
-    def _assemble_param_vector(self):
+    def _assemble_param_vector(self, sim_index=None):
         """Assemble and return the parameter vector.
 
-        @return:    The parameter vector.
-        @rtype:     numpy rank-1 array
-        """
-
-        # Initialise the parameter array using the tensor rotation Euler 
angles (average domain position).
-        if cdp.model in ['free rotor', 'iso cone, torsionless', 'iso cone, 
free rotor']:
-            param_vect = [cdp.ave_pos_beta, cdp.ave_pos_gamma]
+        @return:            The parameter vector.
+        @rtype:             numpy rank-1 array
+        @keyword sim_index: The Monte Carlo simulation index.
+        @type sim_index:    int
+        """
+
+        # Normal values.
+        if sim_index == None:
+            # Initialise the parameter array using the tensor rotation Euler 
angles (average domain position).
+            if cdp.model in ['free rotor', 'iso cone, torsionless', 'iso 
cone, free rotor']:
+                param_vect = [cdp.ave_pos_beta, cdp.ave_pos_gamma]
+            else:
+                param_vect = [cdp.ave_pos_alpha, cdp.ave_pos_beta, 
cdp.ave_pos_gamma]
+
+            # Frame order eigenframe - the full frame.
+            if cdp.model in ['iso cone', 'pseudo-ellipse', 'pseudo-ellipse, 
torsionless', 'pseudo-ellipse, free rotor']:
+                param_vect.append(cdp.eigen_alpha)
+                param_vect.append(cdp.eigen_beta)
+                param_vect.append(cdp.eigen_gamma)
+
+            # Frame order eigenframe - the isotropic cone axis.
+            elif cdp.model in ['free rotor', 'iso cone, torsionless', 'iso 
cone, free rotor', 'rotor']:
+                param_vect.append(cdp.axis_theta)
+                param_vect.append(cdp.axis_phi)
+
+            # Cone parameters - pseudo-elliptic cone parameters.
+            if cdp.model in ['pseudo-ellipse', 'pseudo-ellipse, 
torsionless', 'pseudo-ellipse, free rotor']:
+                param_vect.append(cdp.cone_theta_x)
+                param_vect.append(cdp.cone_theta_y)
+
+            # Cone parameters - single isotropic angle or order parameter.
+            elif cdp.model in ['iso cone', 'iso cone, torsionless']:
+                param_vect.append(cdp.cone_theta)
+            elif cdp.model in ['iso cone, free rotor']:
+                param_vect.append(cdp.cone_s1)
+
+            # Cone parameters - torsion angle.
+            if cdp.model in ['rotor', 'line', 'iso cone', 'pseudo-ellipse']:
+                param_vect.append(cdp.cone_sigma_max)
+
+        # Simulation values.
         else:
-            param_vect = [cdp.ave_pos_alpha, cdp.ave_pos_beta, 
cdp.ave_pos_gamma]
-
-        # Frame order eigenframe - the full frame.
-        if cdp.model in ['iso cone', 'pseudo-ellipse', 'pseudo-ellipse, 
torsionless', 'pseudo-ellipse, free rotor']:
-            param_vect.append(cdp.eigen_alpha)
-            param_vect.append(cdp.eigen_beta)
-            param_vect.append(cdp.eigen_gamma)
-
-        # Frame order eigenframe - the isotropic cone axis.
-        elif cdp.model in ['free rotor', 'iso cone, torsionless', 'iso cone, 
free rotor', 'rotor']:
-            param_vect.append(cdp.axis_theta)
-            param_vect.append(cdp.axis_phi)
-
-        # Cone parameters - pseudo-elliptic cone parameters.
-        if cdp.model in ['pseudo-ellipse', 'pseudo-ellipse, torsionless', 
'pseudo-ellipse, free rotor']:
-            param_vect.append(cdp.cone_theta_x)
-            param_vect.append(cdp.cone_theta_y)
-
-        # Cone parameters - single isotropic angle or order parameter.
-        elif cdp.model in ['iso cone', 'iso cone, torsionless']:
-            param_vect.append(cdp.cone_theta)
-        elif cdp.model in ['iso cone, free rotor']:
-            param_vect.append(cdp.cone_s1)
-
-        # Cone parameters - torsion angle.
-        if cdp.model in ['rotor', 'line', 'iso cone', 'pseudo-ellipse']:
-            param_vect.append(cdp.cone_sigma_max)
+            # Initialise the parameter array using the tensor rotation Euler 
angles (average domain position).
+            if cdp.model in ['free rotor', 'iso cone, torsionless', 'iso 
cone, free rotor']:
+                param_vect = [cdp.ave_pos_beta_sim[sim_index], 
cdp.ave_pos_gamma_sim[sim_index]]
+            else:
+                param_vect = [cdp.ave_pos_alpha_sim[sim_index], 
cdp.ave_pos_beta_sim[sim_index], cdp.ave_pos_gamma_sim[sim_index]]
+
+            # Frame order eigenframe - the full frame.
+            if cdp.model in ['iso cone', 'pseudo-ellipse', 'pseudo-ellipse, 
torsionless', 'pseudo-ellipse, free rotor']:
+                param_vect.append(cdp.eigen_alpha_sim[sim_index])
+                param_vect.append(cdp.eigen_beta_sim[sim_index])
+                param_vect.append(cdp.eigen_gamma_sim[sim_index])
+
+            # Frame order eigenframe - the isotropic cone axis.
+            elif cdp.model in ['free rotor', 'iso cone, torsionless', 'iso 
cone, free rotor', 'rotor']:
+                param_vect.append(cdp.axis_theta_sim[sim_index])
+                param_vect.append(cdp.axis_phi_sim[sim_index])
+
+            # Cone parameters - pseudo-elliptic cone parameters.
+            if cdp.model in ['pseudo-ellipse', 'pseudo-ellipse, 
torsionless', 'pseudo-ellipse, free rotor']:
+                param_vect.append(cdp.cone_theta_x_sim[sim_index])
+                param_vect.append(cdp.cone_theta_y_sim[sim_index])
+
+            # Cone parameters - single isotropic angle or order parameter.
+            elif cdp.model in ['iso cone', 'iso cone, torsionless']:
+                param_vect.append(cdp.cone_theta_sim[sim_index])
+            elif cdp.model in ['iso cone, free rotor']:
+                param_vect.append(cdp.cone_s1_sim[sim_index])
+
+            # Cone parameters - torsion angle.
+            if cdp.model in ['rotor', 'line', 'iso cone', 'pseudo-ellipse']:
+                param_vect.append(cdp.cone_sigma_max_sim[sim_index])
 
         # Return as a numpy array.
         return array(param_vect, float64)
@@ -221,6 +260,7 @@
         # Rotations and inversions.
         axis_pos = axis
         axis_neg = dot(inv_mat, axis)
+        print inv_mat
 
         # Simulation central axis.
         axis_sim_pos = None
@@ -234,8 +274,9 @@
                 spherical_to_cartesian([1.0, getattr(cdp, 
theta_name+'_sim')[i], getattr(cdp, phi_name+'_sim')[i]], axis_sim[i])
 
             # Inversion.
-            axis_sim_pos = axis_sim_pos
-            axis_sim_neg = dot(inv_mat, axis_sim_pos)
+            axis_sim_pos = axis_sim
+            print axis_sim_pos
+            axis_sim_neg = transpose(dot(inv_mat, transpose(axis_sim_pos)))
 
         # Generate the axis vectors.
         print("\nGenerating the axis vectors.")
@@ -715,11 +756,11 @@
 
             # Eigenframe parameters.
             if eigen_alpha != None:
-                cdp.eigen_alpha[sim_index] = wrap_angles(eigen_alpha, 0.0, 
2.0*pi)
+                cdp.eigen_alpha_sim[sim_index] = wrap_angles(eigen_alpha, 
0.0, 2.0*pi)
             if eigen_beta != None:
-                cdp.eigen_beta[sim_index] =  wrap_angles(eigen_beta,  0.0, 
2.0*pi)
+                cdp.eigen_beta_sim[sim_index] =  wrap_angles(eigen_beta,  
0.0, 2.0*pi)
             if eigen_gamma != None:
-                cdp.eigen_gamma[sim_index] = wrap_angles(eigen_gamma, 0.0, 
2.0*pi)
+                cdp.eigen_gamma_sim[sim_index] = wrap_angles(eigen_gamma, 
0.0, 2.0*pi)
             if axis_theta != None:
                 cdp.axis_theta_sim[sim_index] = axis_theta
             if axis_phi != None:
@@ -730,13 +771,13 @@
                 cdp.cone_theta_sim[sim_index] = cone_theta
             if cone_s1 != None:
                 cdp.cone_s1_sim[sim_index] = cone_s1
-                cdp.cone_theta[sim_index] = 
order_parameters.iso_cone_S_to_theta(cone_s1)
+                cdp.cone_theta_sim[sim_index] = 
order_parameters.iso_cone_S_to_theta(cone_s1)
             if cone_theta_x != None:
-                cdp.cone_theta_x[sim_index] = cone_theta_x
+                cdp.cone_theta_x_sim[sim_index] = cone_theta_x
             if cone_theta_y != None:
-                cdp.cone_theta_y[sim_index] = cone_theta_y
+                cdp.cone_theta_y_sim[sim_index] = cone_theta_y
             if cone_sigma_max != None:
-                cdp.cone_sigma_max[sim_index] = abs(cone_sigma_max)
+                cdp.cone_sigma_max_sim[sim_index] = abs(cone_sigma_max)
 
             # Optimisation stats.
             cdp.chi2_sim[sim_index] = func
@@ -945,6 +986,35 @@
 
         # Return the names.
         return names
+
+
+    def get_param_names(self, model_info=None):
+        """Return a vector of parameter names.
+
+        @keyword model_info:    The model index from model_info().
+        @type model_info:       int
+        @return:                The vector of parameter names.
+        @rtype:                 list of str
+        """
+
+        # Return the parameter object names.
+        param_names = self.data_names(set='params')
+        return param_names
+
+
+    def get_param_values(self, model_info=None, sim_index=None):
+        """Return a vector of parameter values.
+
+        @keyword model_info:    The model index from model_info().  This is 
zero for the global models or equal to the global spin index (which covers 
the molecule, residue, and spin indices).
+        @type model_info:       int
+        @keyword sim_index:     The Monte Carlo simulation index.
+        @type sim_index:        int
+        @return:                The vector of parameter values.
+        @rtype:                 list of str
+        """
+
+        # Assemble the values and return it.
+        return self._assemble_param_vector(sim_index=sim_index)
 
 
     def grid_search(self, lower=None, upper=None, inc=None, 
constraints=False, verbosity=0, sim_index=None):




Related Messages


Powered by MHonArc, Updated Wed Nov 02 17:40:02 2011