mailr12801 - /1.3/sample_scripts/n_state_model/two_domain.py


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

Header


Content

Posted by edward on March 04, 2011 - 15:50:
Author: bugman
Date: Fri Mar  4 15:50:56 2011
New Revision: 12801

URL: http://svn.gna.org/viewcvs/relax?rev=12801&view=rev
Log:
Added a sample script for the unsuccessful two domain N-state model 
optimisation.


Added:
    1.3/sample_scripts/n_state_model/two_domain.py

Added: 1.3/sample_scripts/n_state_model/two_domain.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/n_state_model/two_domain.py?rev=12801&view=auto
==============================================================================
--- 1.3/sample_scripts/n_state_model/two_domain.py (added)
+++ 1.3/sample_scripts/n_state_model/two_domain.py Fri Mar  4 15:50:56 2011
@@ -1,0 +1,170 @@
+###############################################################################
+#                                                                            
 #
+# Copyright (C) 2011 Edward d'Auvergne                                       
 #
+#                                                                            
 #
+# This file is part of the program relax.                                    
 #
+#                                                                            
 #
+# relax is free software; you can redistribute it and/or modify              
 #
+# it under the terms of the GNU General Public License as published by       
 #
+# the Free Software Foundation; either version 2 of the License, or          
 #
+# (at your option) any later version.                                        
 #
+#                                                                            
 #
+# relax is distributed in the hope that it will be useful,                   
 #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of             
 #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              
 #
+# GNU General Public License for more details.                               
 #
+#                                                                            
 #
+# You should have received a copy of the GNU General Public License          
 #
+# along with relax; if not, write to the Free Software                       
 #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  
 #
+#                                                                            
 #
+###############################################################################
+
+"""Sample script demonstrating the use of the N-state model of domain 
motions.
+
+The N-state model uses alignment tensors as determined by RDC data to 
determine N-states in rotational space, each associated with a given 
probability or weight.
+"""
+
+
+# Create the data pipe.
+pipe.create('test', 'N-state')
+
+# Load the C-terminal alignment tensors.
+align_tensor.init(tensor='110 t43L C-dom', params=(-1.0474e-04, 3.9223e-04, 
-3.7442e-05, 1.0529e-04, 4.0116e-05), param_types=1)
+align_tensor.init(tensor='143 pk2 C-dom', params=(-1.4348e-05, -4.9444e-04, 
5.1804e-05, 1.3307e-04, -1.0238e-04), param_types=1)
+align_tensor.init(tensor='146 pk1 C-dom', params=(-2.4660e-04, -1.3212e-04, 
-3.1946e-04, 8.7208e-05, -8.4264e-05), param_types=1)
+align_tensor.init(tensor='17 t43L C-dom', params=(8.5734e-06, -1.2820e-04, 
5.3537e-05, -3.3512e-05, -4.1060e-05), param_types=1)
+align_tensor.init(tensor='N60D Tb C-dom', params=(-4.8126e-05, -2.9930e-04, 
4.3719e-04, 3.7058e-04, 1.2690e-04), param_types=1)
+align_tensor.init(tensor='N60D Th C-dom', params=(-7.9627e-06, 2.7383e-04, 
-3.2579e-04, -2.9647e-04, -1.5191e-04), param_types=1)
+align_tensor.init(tensor='146 pk2 C-dom', params=(-1.4930e-04, -2.9012e-04, 
-1.9983e-04, -2.0327e-05, -2.2792e-05), param_types=1)
+align_tensor.init(tensor='146 t43D C-dom', params=(2.9713e-04, -9.4987e-05, 
-2.1837e-04, 2.1539e-05, 2.0522e-05), param_types=1)
+align_tensor.init(tensor='146 t43L C-dom', params=(-1.6814e-04, -1.0235e-04, 
-2.3152e-04, -9.4095e-05, -2.9964e-05), param_types=1)
+
+# Set the domain the tensors correspond to.
+n_state_model.set_domain(tensor='110 t43L C-dom', domain='C')
+n_state_model.set_domain(tensor='143 pk2 C-dom', domain='C')
+n_state_model.set_domain(tensor='146 pk1 C-dom', domain='C')
+n_state_model.set_domain(tensor='17 t43L C-dom', domain='C')
+n_state_model.set_domain(tensor='N60D Tb C-dom', domain='C')
+n_state_model.set_domain(tensor='N60D Th C-dom', domain='C')
+n_state_model.set_domain(tensor='146 pk2 C-dom', domain='C')
+n_state_model.set_domain(tensor='146 t43D C-dom', domain='C')
+n_state_model.set_domain(tensor='146 t43L C-dom', domain='C')
+
+# Set the tensor state (reduced or full).
+n_state_model.set_type(tensor='110 t43L C-dom', red=False)
+n_state_model.set_type(tensor='143 pk2 C-dom', red=False)
+n_state_model.set_type(tensor='146 pk1 C-dom', red=False)
+n_state_model.set_type(tensor='17 t43L C-dom', red=True)
+n_state_model.set_type(tensor='N60D Tb C-dom', red=True)
+n_state_model.set_type(tensor='N60D Th C-dom', red=True)
+n_state_model.set_type(tensor='146 pk2 C-dom', red=False)
+n_state_model.set_type(tensor='146 t43D C-dom', red=False)
+n_state_model.set_type(tensor='146 t43L C-dom', red=False)
+
+# List of C-dom tensors.
+c_tensor_list = ['110 t43L C-dom', '143 pk2 C-dom', '146 pk1 C-dom', '17 
t43L C-dom', 'N60D Tb C-dom', 'N60D Th C-dom', '146 pk2 C-dom', '146 t43D 
C-dom', '146 t43L C-dom']
+
+# Calculate the singular values.
+align_tensor.svd(basis_set=0, tensors=c_tensor_list)
+align_tensor.svd(basis_set=1, tensors=c_tensor_list)
+
+# Calculate the angles between the matrices.
+align_tensor.matrix_angles(basis_set=0, tensors=c_tensor_list)
+align_tensor.matrix_angles(basis_set=1, tensors=c_tensor_list)
+
+
+# Load the N-terminal alignment tensors.
+align_tensor.init(tensor='110 t43L N-dom', params=(2.2127e-04, 5.2855e-05, 
1.8433e-05, 3.0827e-05, 1.2017e-04), param_types=1)
+align_tensor.init(tensor='143 pk2 N-dom', params=(3.1618e-05, 4.2658e-05, 
-8.7183e-06, -8.1250e-05, 4.8628e-05), param_types=1)
+align_tensor.init(tensor='146 pk1 N-dom', params=(7.4553e-05, -9.6076e-05, 
4.9363e-05, -6.0947e-05, -2.5628e-05), param_types=1)
+align_tensor.init(tensor='17 t43L N-dom', params=(2.1506e-06, -2.0811e-04, 
-1.4169e-04, 6.1467e-05, -8.0616e-05), param_types=1)
+align_tensor.init(tensor='N60D Tb N-dom', params=(1.0278e-03, -1.4860e-03, 
8.4778e-04, 5.7108e-04, 3.6500e-04), param_types=1)
+align_tensor.init(tensor='N60D Th N-dom', params=(-8.8394e-04, 1.5459e-03, 
-4.9095e-04, -5.4784e-04, -2.2704e-05), param_types=1)
+align_tensor.init(tensor='146 pk2 N-dom', params=(-1.0566e-05, -7.7580e-05, 
-4.9425e-05, -5.2596e-06, -1.8736e-05), param_types=1)
+align_tensor.init(tensor='146 t43D N-dom', params=(-3.0584e-05, -1.7438e-05, 
5.5619e-05, 5.1900e-05, -2.6510e-05), param_types=1)
+align_tensor.init(tensor='146 t43L N-dom', params=(3.1001e-05, -4.3433e-05, 
1.7081e-05, 6.1744e-05, -2.8761e-05), param_types=1)
+
+# Set the domain the tensors correspond to.
+n_state_model.set_domain(tensor='110 t43L N-dom', domain='N')
+n_state_model.set_domain(tensor='143 pk2 N-dom', domain='N')
+n_state_model.set_domain(tensor='146 pk1 N-dom', domain='N')
+n_state_model.set_domain(tensor='17 t43L N-dom', domain='N')
+n_state_model.set_domain(tensor='N60D Tb N-dom', domain='N')
+n_state_model.set_domain(tensor='N60D Th N-dom', domain='N')
+n_state_model.set_domain(tensor='146 pk2 N-dom', domain='N')
+n_state_model.set_domain(tensor='146 t43D N-dom', domain='N')
+n_state_model.set_domain(tensor='146 t43L N-dom', domain='N')
+
+# Set the tensor state (reduced or full).
+n_state_model.set_type(tensor='110 t43L N-dom', red=True)
+n_state_model.set_type(tensor='143 pk2 N-dom', red=True)
+n_state_model.set_type(tensor='146 pk1 N-dom', red=True)
+n_state_model.set_type(tensor='17 t43L N-dom', red=False)
+n_state_model.set_type(tensor='N60D Tb N-dom', red=False)
+n_state_model.set_type(tensor='N60D Th N-dom', red=False)
+n_state_model.set_type(tensor='146 pk2 N-dom', red=True)
+n_state_model.set_type(tensor='146 t43D N-dom', red=True)
+n_state_model.set_type(tensor='146 t43L N-dom', red=True)
+
+# List of N-dom tensors.
+n_tensor_list = ['110 t43L N-dom', '143 pk2 N-dom', '146 pk1 N-dom', '17 
t43L N-dom', 'N60D Tb N-dom', 'N60D Th N-dom', '146 pk2 N-dom', '146 t43D 
N-dom', '146 t43L N-dom']
+
+# Calculate the singular values.
+align_tensor.svd(basis_set=0, tensors=n_tensor_list)
+align_tensor.svd(basis_set=1, tensors=n_tensor_list)
+
+# Calculate the angles between the matrices.
+align_tensor.matrix_angles(basis_set=0, tensors=n_tensor_list)
+align_tensor.matrix_angles(basis_set=1, tensors=n_tensor_list)
+
+# Set up the 5-state model (with the C domain as the reference frame).
+n_state_model.model(N=5, ref='C')
+
+# Set the initial parameter values to the actual values (the grid search is 
impossibly large).
+value.set([  0.26685287,   0.07816268,   0.19105772,   0.23598687,   
0.22793986], ['p0', 'p1', 'p2', 'p3', 'p4'])
+value.set([ -0.43017117,   3.19650016,  -0.61738298,   0.80737988,   
1.66687706], ['alpha0', 'alpha1', 'alpha2', 'alpha3', 'alpha4'])
+value.set([  3.80965887,   0.68001535,   1.87238680,   1.48347412,   
4.34470497], ['beta0', 'beta1', 'beta2', 'beta3', 'beta4'])
+value.set([  0.43465176,   2.59328881,  -5.45779788,  -3.09774689,   
0.86388922], ['gamma0', 'gamma1', 'gamma2', 'gamma3', 'gamma4'])
+
+# Load the PDB file.
+structure.read_pdb('1J7O.pdb', model=2)
+structure.load_spins(spin_id='@N')
+cdp.mol[0].name = None
+
+# Minimise.
+minimise('simplex', constraints=False)
+
+# Print out.
+print("\n\nResults\n")
+print("%-16s  %12s  %12s  %12s  %12s  %12s" % ("Conformation", '1', '2', 
'3', '4', '5'))
+print("%-16s [%12.8f, %12.8f, %12.8f, %12.8f, %12.8f]" % ("Probs", 
cdp.probs[0], cdp.probs[1], cdp.probs[2], cdp.probs[3], cdp.probs[4]))
+print("%-16s [%12.8f, %12.8f, %12.8f, %12.8f, %12.8f]" % ("alpha", 
cdp.alpha[0], cdp.alpha[1], cdp.alpha[2], cdp.alpha[3], cdp.alpha[4]))
+print("%-16s [%12.8f, %12.8f, %12.8f, %12.8f, %12.8f]" % ("beta", 
cdp.beta[0], cdp.beta[1], cdp.beta[2], cdp.beta[3], cdp.beta[4]))
+print("%-16s [%12.8f, %12.8f, %12.8f, %12.8f, %12.8f]" % ("gamma", 
cdp.gamma[0], cdp.gamma[1], cdp.gamma[2], cdp.gamma[3], cdp.gamma[4]))
+print("\n\n")
+print("value.set([%12.8f, %12.8f, %12.8f, %12.8f, %12.8f], ['p0', 'p1', 
'p2', 'p3', 'p4'])" % (cdp.probs[0], cdp.probs[1], cdp.probs[2], 
cdp.probs[3], cdp.probs[4]))
+print("value.set([%12.8f, %12.8f, %12.8f, %12.8f, %12.8f], ['alpha0', 
'alpha1', 'alpha2', 'alpha3', 'alpha4'])" % (cdp.alpha[0], cdp.alpha[1], 
cdp.alpha[2], cdp.alpha[3], cdp.alpha[4]))
+print("value.set([%12.8f, %12.8f, %12.8f, %12.8f, %12.8f], ['beta0', 
'beta1', 'beta2', 'beta3', 'beta4'])" % (cdp.beta[0], cdp.beta[1], 
cdp.beta[2], cdp.beta[3], cdp.beta[4]))
+print("value.set([%12.8f, %12.8f, %12.8f, %12.8f, %12.8f], ['gamma0', 
'gamma1', 'gamma2', 'gamma3', 'gamma4'])" % (cdp.gamma[0], cdp.gamma[1], 
cdp.gamma[2], cdp.gamma[3], cdp.gamma[4]))
+print("# fk: %s" % cdp.chi2)
+
+# Pivot point.
+piv = [ 12.067 ,  14.313 ,  -3.2675]    # Ave between 1J70 AND 1J7P (model 
2).
+
+# Centre of mass analysis.
+n_state_model.CoM(pivot_point=piv)
+
+# Cone PDBs.
+#n_state_model.cone_pdb(cone_type='diff on cone', file='diff_on_cone.pdb', 
force=True)
+#n_state_model.cone_pdb(cone_type='diff in cone', file='diff_in_cone.pdb', 
force=True)
+
+# PyMOL.
+pymol.view()
+pymol.cartoon()
+pymol.cone_pdb(file='diff_on_cone.pdb')
+pymol.cone_pdb(file='diff_in_cone.pdb')
+
+# Finish.
+state.save('save', force=True)
+results.write(file='results', force=True)




Related Messages


Powered by MHonArc, Updated Fri Mar 04 16:40:08 2011