mailr15059 - /branches/frame_order_testing/test_suite/shared_data/frame_order/rotor2/frame_order_pcs_only.py


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

Header


Content

Posted by edward on December 08, 2011 - 13:39:
Author: bugman
Date: Thu Dec  8 13:39:49 2011
New Revision: 15059

URL: http://svn.gna.org/viewcvs/relax?rev=15059&view=rev
Log:
Added a script for testing the frame order analysis of the rotor model with 
only PCSs.


Added:
    
branches/frame_order_testing/test_suite/shared_data/frame_order/rotor2/frame_order_pcs_only.py
      - copied, changed from r15025, 
branches/frame_order_testing/test_suite/shared_data/frame_order/rotor2/frame_order.py

Copied: 
branches/frame_order_testing/test_suite/shared_data/frame_order/rotor2/frame_order_pcs_only.py
 (from r15025, 
branches/frame_order_testing/test_suite/shared_data/frame_order/rotor2/frame_order.py)
URL: 
http://svn.gna.org/viewcvs/relax/branches/frame_order_testing/test_suite/shared_data/frame_order/rotor2/frame_order_pcs_only.py?p2=branches/frame_order_testing/test_suite/shared_data/frame_order/rotor2/frame_order_pcs_only.py&p1=branches/frame_order_testing/test_suite/shared_data/frame_order/rotor2/frame_order.py&r1=15025&r2=15059&rev=15059&view=diff
==============================================================================
--- 
branches/frame_order_testing/test_suite/shared_data/frame_order/rotor2/frame_order.py
 (original)
+++ 
branches/frame_order_testing/test_suite/shared_data/frame_order/rotor2/frame_order_pcs_only.py
 Thu Dec  8 13:39:49 2011
@@ -15,49 +15,73 @@
         # Optimise.
         self.optimisation()
 
-        # The rotation matrix.
-        R = zeros((3, 3), float64)
-        euler_to_R_zyz(cdp.ave_pos_alpha, cdp.ave_pos_beta, 
cdp.ave_pos_gamma, R)
-        print("Rotation matrix:\n%s\n" % R)
-        R = transpose(R)
-        print("Inverted rotation:\n%s\n" % R)
-
-        # The pivot point.
-        pivot = array([ 37.254, 0.5, 16.7465])
-
         # Load the original structure.
         self.original_structure()
 
         # Domain transformation.
-        self.transform(R, pivot)
+        self.transform()
 
         # Display in pymol.
-        self.pymol_display(pivot)
+        self.pymol_display()
 
         # Save the state.
-        state.save('frame_order', force=True)
+        state.save('frame_order_pcs_only', force=True)
 
 
     def optimisation(self):
         """Optimise the frame order model."""
 
-        # The file paths.
-        PATH_N_DOM = '..' + sep
-        PATH_C_DOM = '.' + sep
-
         # Create the data pipe.
         pipe.create(pipe_name='frame order', pipe_type='frame order')
 
-        # Load the tensors.
-        script(PATH_N_DOM + 'tensors.py')
-        script(PATH_C_DOM + 'tensors.py')
+        # Read the structures.
+        structure.read_pdb('1J7O_1st_NH.pdb', dir='..', set_mol_name='N-dom')
+        structure.read_pdb('1J7P_1st_NH_rot.pdb', dir='..', 
set_mol_name='C-dom')
+
+        # Load the spins.
+        structure.load_spins('@N')
+        structure.load_spins('@H')
+
+        # Load the NH vectors.
+        structure.vectors(spin_id='@N', attached='H', ave=False)
+
+        # Set the values needed to calculate the dipolar constant.
+        value.set(1.041 * 1e-10, 'bond_length', spin_id="@N")
+        value.set('15N', 'heteronucleus', spin_id="@N")
+        value.set('1H', 'proton', spin_id="@N")
+
+        # Loop over the alignments.
+        ln = ['dy', 'tb', 'tm', 'er']
+        for i in range(len(ln)):
+            ## Load the RDCs.
+            #rdc.read(align_id=ln[i], file='rdc_%s.txt'%ln[i], 
res_num_col=2, spin_name_col=5, data_col=6, error_col=7)
+
+            # The PCS.
+            pcs.read(align_id=ln[i], file='pcs_%s.txt'%ln[i], res_num_col=2, 
spin_name_col=5, data_col=6, error_col=7)
+
+            # The temperature and field strength.
+            temperature(id=ln[i], temp=303)
+            frq.set(id=ln[i], frq=900e6)
+
+        # Load the N-domain tensors (the full tensors).
+        script('../tensors.py')
+
+        # Define the domains.
+        domain(id='N', spin_id=":1-78")
+        domain(id='C', spin_id=":80-144")
 
         # The tensor domains and reductions.
         full = ['Dy N-dom', 'Tb N-dom', 'Tm N-dom', 'Er N-dom']
         red =  ['Dy C-dom', 'Tb C-dom', 'Tm C-dom', 'Er C-dom']
         for i in range(len(full)):
+            # Initalise the reduced tensor.
+            align_tensor.init(tensor=red[i], params=(0,0,0,0,0))
+
+            # Set the domain info.
             align_tensor.set_domain(tensor=full[i], domain='N')
             align_tensor.set_domain(tensor=red[i], domain='C')
+
+            # Specify which tensor is reduced.
             align_tensor.reduction(full_tensor=full[i], red_tensor=red[i])
 
         # Select the model.
@@ -66,17 +90,34 @@
         # Set the reference domain.
         frame_order.ref_domain('N')
 
+        # Set the initial pivot point.
+        pivot = array([ 37.254, 0.5, 16.7465])
+        frame_order.pivot(pivot)
+
+        # Set the paramagnetic centre.
+        paramag.centre(pos=[35.934, 12.194, -4.206])
+
+        # Check the minimum.
+        cdp.ave_pos_alpha = 1.2017352840543052
+        cdp.ave_pos_beta = 5.8477792871424867
+        cdp.ave_pos_gamma = 0.65969938507054027
+        cdp.axis_theta = 0.69832655838992175
+        cdp.axis_phi = 0.89069389677025046
+        cdp.cone_sigma_max = 0.52757207875029488
+        calc()
+        print cdp.chi2
+
         # Optimise.
-        grid_search(inc=3)
+        #grid_search(inc=5)
         minimise('simplex', constraints=False)
 
-        # Test Monte Carlo simulations.
-        monte_carlo.setup(number=500)
-        monte_carlo.create_data()
-        monte_carlo.initial_values()
-        minimise('simplex', constraints=False)
-        eliminate()
-        monte_carlo.error_analysis()
+        ## Test Monte Carlo simulations.
+        #monte_carlo.setup(number=500)
+        #monte_carlo.create_data()
+        #monte_carlo.initial_values()
+        #minimise('simplex', constraints=False)
+        #eliminate()
+        #monte_carlo.error_analysis()
 
 
     def original_structure(self):
@@ -89,7 +130,7 @@
         structure.read_pdb('1J7P_1st_NH.pdb', dir='..')
 
 
-    def pymol_display(self, pivot):
+    def pymol_display(self):
         """Display the results in PyMOL."""
 
         # Switch back to the main data pipe.
@@ -99,11 +140,8 @@
         structure.read_pdb('1J7O_1st_NH.pdb', dir='..')
         structure.read_pdb('1J7P_1st_NH_rot.pdb', dir='..')
 
-        # Set the pivot point.
-        frame_order.pivot(pivot)
-
         # Create the cone PDB file.
-        frame_order.cone_pdb(file='cone.pdb', force=True)
+        frame_order.cone_pdb(file='cone_pcs_only.pdb', force=True)
 
         # Set the domains.
         frame_order.domain_to_pdb(domain='N', pdb='1J7O_1st_NH.pdb')
@@ -112,11 +150,22 @@
         # PyMOL.
         pymol.view()
         pymol.command('show spheres')
-        pymol.cone_pdb('cone.pdb')
+        pymol.cone_pdb('cone_pcs_only.pdb')
 
 
-    def transform(self, R, pivot):
+    def transform(self):
         """Transform the domain to the average position."""
+
+        # Switch back to the main data pipe.
+        pipe.switch('frame order')
+
+        # The rotation matrix.
+        R = zeros((3, 3), float64)
+        euler_to_R_zyz(cdp.ave_pos_alpha, cdp.ave_pos_beta, 
cdp.ave_pos_gamma, R)
+        print("Rotation matrix:\n%s\n" % R)
+        R = transpose(R)
+        print("Inverted rotation:\n%s\n" % R)
+        pivot = cdp.pivot
 
         # Create a special data pipe for the average rigid body position.
         pipe.create(pipe_name='ave pos', pipe_type='frame order')
@@ -128,7 +177,7 @@
         structure.rotate(R=R, origin=pivot)
 
         # Write out the new PDB.
-        structure.write_pdb('ave_pos', force=True)
+        structure.write_pdb('ave_pos_pcs_only', force=True)
 
 
 # Execute the analysis.




Related Messages


Powered by MHonArc, Updated Thu Dec 08 14:00:02 2011