Author: tlinnet Date: Fri Aug 15 15:11:00 2014 New Revision: 25024 URL: http://svn.gna.org/viewcvs/relax?rev=25024&view=rev Log: Modified the Linear Constraints for the exchange rates. For CPMG, the maximum kex should be 10^4, and for R1rho it should be 10^5. This is altered from the value of 10^6. The suggested restraints for 'kex' follows from article, on page 224: Nuclear Magnetic Resonance Methods for Quantifying Microsecond-to-Millisecond Motions in Biological Macromolecules. Palmer-III, Arthur G., Kroenke, Christopher D., Loria, J. Patrick Nucl. Magn. Reson. Biol. Macromol. B, 2001, Vol: 339, pages 204-238. U{DOI: 10.1016/S0076-6879(01)39315-1<http://dx.doi.org/10.1016/S0076-6879%2801%2939315-1>} Modified: trunk/specific_analyses/relax_disp/parameters.py Modified: trunk/specific_analyses/relax_disp/parameters.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_disp/parameters.py?rev=25024&r1=25023&r2=25024&view=diff ============================================================================== --- trunk/specific_analyses/relax_disp/parameters.py (original) +++ trunk/specific_analyses/relax_disp/parameters.py Fri Aug 15 15:11:00 2014 @@ -34,7 +34,7 @@ from pipe_control import pipes from pipe_control.mol_res_spin import exists_mol_res_spin_data, return_spin from specific_analyses.relax_disp.data import count_spins, generate_r20_key, has_exponential_exp_type, loop_cluster, loop_exp_frq -from specific_analyses.relax_disp.variables import MODEL_LIST_MMQ, MODEL_M61B, MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR, PARAMS_R20 +from specific_analyses.relax_disp.variables import MODEL_LIST_ANALYTIC_R1RHO, MODEL_LIST_CPMG_ONLY, MODEL_LIST_MMQ, MODEL_LIST_NUMERIC_R1RHO, MODEL_M61B, MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR, PARAMS_R20 def assemble_param_vector(spins=None, key=None, sim_index=None): @@ -435,6 +435,12 @@ def linear_constraints(spins=None, scaling_matrix=None): """Set up the relaxation dispersion curve fitting linear constraint matrices A and b. + The suggested restraints for 'kex' follows from article, on page 224: + Nuclear Magnetic Resonance Methods for Quantifying Microsecond-to-Millisecond Motions in Biological Macromolecules. + Palmer-III, Arthur G., Kroenke, Christopher D., Loria, J. Patrick + Nucl. Magn. Reson. Biol. Macromol. B, 2001, Vol: 339, pages 204-238. + U{DOI: 10.1016/S0076-6879(01)39315-1<http://dx.doi.org/10.1016/S0076-6879%2801%2939315-1>}. + Standard notation ================= @@ -453,12 +459,12 @@ phi_ex_C >= 0 padw2 >= 0 dw >= 0 - 0 <= kex <= 2e6 - 0 <= k_AB <= 2e6 - 0 <= kB <= 2e6 - 0 <= kC <= 2e6 + 0 <= kex <= 1e4, for CPMG + 0 <= kex <= 1e5, for R1rho + 0 <= k_AB <= 1e4 + 0 <= kB <= 1e4 + 0 <= kC <= 1e4 tex >= 0 - k_AB >= 0 Matrix notation @@ -502,19 +508,22 @@ | | | | | | | 1 0 0 | | kex | | 0 | | | | | | | - |-1 0 0 | | kex | | -2e6 | + |-1 0 0 | | kex | |-1e4/-1e5| + | | | | | | + | 1 0 0 | | k_AB | | 0 | + | | | | | | + |-1 0 0 | | k_AB | | -1e4 | | | | | | | | 1 0 0 | | kB | | 0 | | | | | | | - |-1 0 0 | | kB | | -2e6 | + |-1 0 0 | | kB | | -1e4 | | | | | | | | 1 0 0 | | kC | | 0 | | | | | | | - |-1 0 0 | | kC | | -2e6 | + |-1 0 0 | | kC | | -1e4 | | | | | | | | 1 0 0 | | tex | | 0 | | | | | | | - | 1 0 0 | | k_AB | | 0 | @keyword spins: The list of spin data containers for the block. @@ -628,14 +637,21 @@ j += 1 break - # Exchange rates and times (0 <= k <= 2e6). + # Exchange rates and times (0 <= k <= 1e4) for CPMG and (0 <= k <= 1e5) for R1rho. elif param_name in ['kex', 'kex_AB', 'kex_AC', 'kex_BC', 'k_AB', 'kB', 'kC']: A.append(zero_array * 0.0) A.append(zero_array * 0.0) A[j][param_index] = 1.0 A[j+1][param_index] = -1.0 b.append(0.0) - b.append(-2e6 / scaling_matrix[param_index, param_index]) + # For CPMG experiments, (0 <= k <= 1e4). + if spins[0].model in MODEL_LIST_CPMG_ONLY + MODEL_LIST_MMQ: + b.append(-1e4 / scaling_matrix[param_index, param_index]) + # For R1rho experiments, (0 <= k <= 1e5). + elif spins[0].model in MODEL_LIST_ANALYTIC_R1RHO + MODEL_LIST_NUMERIC_R1RHO: + b.append(-1e5 / scaling_matrix[param_index, param_index]) + else: + b.append(-2e6 / scaling_matrix[param_index, param_index]) j += 2 # Exchange times (tex >= 0).