Author: bugman Date: Tue May 29 15:59:49 2012 New Revision: 16511 URL: http://svn.gna.org/viewcvs/relax?rev=16511&view=rev Log: Lots of improvements for the specification of the model-free global and spin parameters. Modified: branches/uf_redesign/specific_fns/model_free/__init__.py Modified: branches/uf_redesign/specific_fns/model_free/__init__.py URL: http://svn.gna.org/viewcvs/relax/branches/uf_redesign/specific_fns/model_free/__init__.py?rev=16511&r1=16510&r2=16511&view=diff ============================================================================== --- branches/uf_redesign/specific_fns/model_free/__init__.py (original) +++ branches/uf_redesign/specific_fns/model_free/__init__.py Tue May 29 15:59:49 2012 @@ -37,7 +37,7 @@ # relax module imports. from bmrb import Bmrb -from generic_fns import diffusion_tensor +from generic_fns import diffusion_tensor, relax_data from main import Model_free_main from mf_minimise import Mf_minimise from molmol import Molmol @@ -73,35 +73,43 @@ self.molmol_macro = self._molmol_macros.create_macro # Set up the global parameters. - self.PARAMS.add('tm', scope='global', default=diffusion_tensor.default_value('tm'), conv_factor=1e-9, grace_string='\\xt\\f{}\\sm', units='ns', py_type=float, err=True, sim=True) - self.PARAMS.add('Diso', scope='global', default=diffusion_tensor.default_value('Diso'), py_type=float, err=True, sim=True) - self.PARAMS.add('Dx', scope='global', default=diffusion_tensor.default_value('Dx'), py_type=float, err=True, sim=True) - self.PARAMS.add('Dy', scope='global', default=diffusion_tensor.default_value('Dy'), py_type=float, err=True, sim=True) - self.PARAMS.add('Dz', scope='global', default=diffusion_tensor.default_value('Dz'), py_type=float, err=True, sim=True) - self.PARAMS.add('Dpar', scope='global', default=diffusion_tensor.default_value('Dpar'), py_type=float, err=True, sim=True) - self.PARAMS.add('Dper', scope='global', default=diffusion_tensor.default_value('Dper'), py_type=float, err=True, sim=True) - self.PARAMS.add('Da', scope='global', default=diffusion_tensor.default_value('Da'), py_type=float, err=True, sim=True) - self.PARAMS.add('Dratio', scope='global', default=diffusion_tensor.default_value('Dratio'), py_type=float, err=True, sim=True) - self.PARAMS.add('alpha', scope='global', default=diffusion_tensor.default_value('alpha'), py_type=float, err=True, sim=True) - self.PARAMS.add('beta', scope='global', default=diffusion_tensor.default_value('beta'), py_type=float, err=True, sim=True) - self.PARAMS.add('gamma', scope='global', default=diffusion_tensor.default_value('gamma'), py_type=float, err=True, sim=True) - self.PARAMS.add('theta', scope='global', default=diffusion_tensor.default_value('theta'), py_type=float, err=True, sim=True) - self.PARAMS.add('phi', scope='global', default=diffusion_tensor.default_value('phi'), py_type=float, err=True, sim=True) + self.PARAMS.add('tm', scope='global', default=diffusion_tensor.default_value('tm'), conv_factor=1e-9, grace_string='\\xt\\f{}\\sm', units='ns', py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('Diso', scope='global', default=diffusion_tensor.default_value('Diso'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('Dx', scope='global', default=diffusion_tensor.default_value('Dx'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('Dy', scope='global', default=diffusion_tensor.default_value('Dy'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('Dz', scope='global', default=diffusion_tensor.default_value('Dz'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('Dpar', scope='global', default=diffusion_tensor.default_value('Dpar'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('Dper', scope='global', default=diffusion_tensor.default_value('Dper'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('Da', scope='global', default=diffusion_tensor.default_value('Da'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('Dratio', scope='global', default=diffusion_tensor.default_value('Dratio'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('alpha', scope='global', default=diffusion_tensor.default_value('alpha'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('beta', scope='global', default=diffusion_tensor.default_value('beta'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('gamma', scope='global', default=diffusion_tensor.default_value('gamma'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('theta', scope='global', default=diffusion_tensor.default_value('theta'), py_type=float, set='params', err=True, sim=True) + self.PARAMS.add('phi', scope='global', default=diffusion_tensor.default_value('phi'), py_type=float, set='params', err=True, sim=True) # Set up the spin parameters. - self.PARAMS.add('local_tm', scope='spin', default=10.0 * 1e-9, desc='The spin specific global correlation time (seconds)', py_type=float, grace_string='\\xt\\f{}\\sm', units='ns', err=True, sim=True) - self.PARAMS.add('s2', scope='spin', default=0.8, desc='S2, the model-free generalised order parameter (S2 = S2f.S2s)', py_type=float, grace_string='\\qS\\v{0.4}\\z{0.71}2\\Q', err=True, sim=True) - self.PARAMS.add('s2f', scope='spin', default=0.8, desc='S2f, the faster motion model-free generalised order parameter', py_type=float, grace_string='\\qS\\sf\\N\\h{-0.2}\\v{0.4}\\z{0.71}2\\Q', err=True, sim=True) - self.PARAMS.add('s2s', scope='spin', default=0.8, desc='S2s, the slower motion model-free generalised order parameter', py_type=float, grace_string='\\qS\\ss\\N\\h{-0.2}\\v{0.4}\\z{0.71}2\\Q', err=True, sim=True) - self.PARAMS.add('te', scope='spin', default=100.0 * 1e-12, desc='Single motion effective internal correlation time (seconds)', py_type=float, conv_factor=1e-12, grace_string='\\xt\\f{}\\se', units='ps', err=True, sim=True) - self.PARAMS.add('tf', scope='spin', default=10.0 * 1e-12, desc='Faster motion effective internal correlation time (seconds)', py_type=float, conv_factor=1e-12, grace_string='\\xt\\f{}\\sf', units='ps', err=True, sim=True) - self.PARAMS.add('ts', scope='spin', default=1000.0 * 1e-12, desc='Slower motion effective internal correlation time (seconds)', py_type=float, conv_factor=1e-12, grace_string='\\xt\\f{}\\ss', units='ps', err=True, sim=True) - self.PARAMS.add('rex', scope='spin', default=0.0, desc='Chemical exchange relaxation (sigma_ex = Rex / omega**2)', py_type=float, conv_factor=self._conv_factor_rex, units=self._units_rex, grace_string='\\qR\\sex\\Q', err=True, sim=True) - self.PARAMS.add('r', scope='spin', default=NH_BOND_LENGTH, units='Angstrom', desc='Bond length (meters)', py_type=float, conv_factor=1e-10, grace_string='Bond length', err=True, sim=True) - self.PARAMS.add('csa', scope='spin', default=N15_CSA, units='ppm', desc='Chemical shift anisotropy (unitless)', py_type=float, conv_factor=1e-6, grace_string='\\qCSA\\Q', err=True, sim=True) + self.PARAMS.add('proton_type', scope='spin', default='1H', desc='The proton spin type', py_type=str) self.PARAMS.add('heteronuc_type', scope='spin', default='15N', desc='The heteronucleus spin type', py_type=str) - self.PARAMS.add('proton_type', scope='spin', default='1H', desc='The proton spin type', py_type=str) + self.PARAMS.add('attached_proton', scope='spin', default='H', desc='The name of the attached proton', py_type=str) self.PARAMS.add('model', scope='spin', desc='The model', py_type=str) self.PARAMS.add('equation', scope='spin', desc='The model equation', py_type=str) self.PARAMS.add('params', scope='spin', desc='The model parameters', py_type=list) self.PARAMS.add('xh_vect', scope='spin', desc='XH bond vector', py_type=list) + self.PARAMS.add('s2', scope='spin', default=0.8, desc='S2, the model-free generalised order parameter (S2 = S2f.S2s)', py_type=float, set='params', grace_string='\\qS\\v{0.4}\\z{0.71}2\\Q', err=True, sim=True) + self.PARAMS.add('s2f', scope='spin', default=0.8, desc='S2f, the faster motion model-free generalised order parameter', py_type=float, set='params', grace_string='\\qS\\sf\\N\\h{-0.2}\\v{0.4}\\z{0.71}2\\Q', err=True, sim=True) + self.PARAMS.add('s2s', scope='spin', default=0.8, desc='S2s, the slower motion model-free generalised order parameter', py_type=float, set='params', grace_string='\\qS\\ss\\N\\h{-0.2}\\v{0.4}\\z{0.71}2\\Q', err=True, sim=True) + self.PARAMS.add('local_tm', scope='spin', default=10.0 * 1e-9, desc='The spin specific global correlation time (seconds)', py_type=float, set='params', grace_string='\\xt\\f{}\\sm', units='ns', err=True, sim=True) + self.PARAMS.add('te', scope='spin', default=100.0 * 1e-12, desc='Single motion effective internal correlation time (seconds)', py_type=float, set='params', conv_factor=1e-12, grace_string='\\xt\\f{}\\se', units='ps', err=True, sim=True) + self.PARAMS.add('tf', scope='spin', default=10.0 * 1e-12, desc='Faster motion effective internal correlation time (seconds)', py_type=float, set='params', conv_factor=1e-12, grace_string='\\xt\\f{}\\sf', units='ps', err=True, sim=True) + self.PARAMS.add('ts', scope='spin', default=1000.0 * 1e-12, desc='Slower motion effective internal correlation time (seconds)', py_type=float, set='params', conv_factor=1e-12, grace_string='\\xt\\f{}\\ss', units='ps', err=True, sim=True) + self.PARAMS.add('rex', scope='spin', default=0.0, desc='Chemical exchange relaxation (sigma_ex = Rex / omega**2)', py_type=float, set='params', conv_factor=self._conv_factor_rex, units=self._units_rex, grace_string='\\qR\\sex\\Q', err=True, sim=True) + self.PARAMS.add('r', scope='spin', default=NH_BOND_LENGTH, units='Angstrom', desc='Bond length (meters)', py_type=float, set='params', conv_factor=1e-10, grace_string='Bond length', err=True, sim=True) + self.PARAMS.add('csa', scope='spin', default=N15_CSA, units='ppm', desc='Chemical shift anisotropy (unitless)', py_type=float, set='params', conv_factor=1e-6, grace_string='\\qCSA\\Q', err=True, sim=True) + + # Add the minimisation data. + self.PARAMS.add_min_data(min_stats_global=True, min_stats_spin=True) + + # Add the relaxation data parameters. + self.PARAMS.add('ri_data', scope='spin', desc=relax_data.return_data_desc('ri_data'), py_type=dict, err=False, sim=True) + self.PARAMS.add('ri_data_err', scope='spin', desc=relax_data.return_data_desc('ri_data_err'), py_type=dict, err=False, sim=False)