On 22 November 2015 at 16:02,  <tlin...@nmr-relax.com> wrote:
> Author: tlinnet
> Date: Sun Nov 22 16:02:42 2015
> New Revision: 28082
>
> URL: http://svn.gna.org/viewcvs/relax?rev=28082&view=rev
> Log:
> In the function of r2eff_read, in data module of the dispersion, added the 
> possibilities to read
> r2eff values which are replicated.
>
> This is done first checking if the dispersion key exists in the r2eff 
> dictionary.
> If it exists, continue add 0.001 to the frequency until a new possibility 
> exists.
>
> This should help handle multiple R2eff points, as separate values and not 
> taking any decision to average them.
>
> Modified:
>     trunk/specific_analyses/relax_disp/data.py
>
> Modified: trunk/specific_analyses/relax_disp/data.py
> URL: 
> http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_disp/data.py?rev=28082&r1=28081&r2=28082&view=diff
> ==============================================================================
> --- trunk/specific_analyses/relax_disp/data.py  (original)
> +++ trunk/specific_analyses/relax_disp/data.py  Sun Nov 22 16:02:42 2015
> @@ -2383,14 +2383,35 @@
>          # The dispersion point key.
>          point_key = return_param_key_from_data(exp_type=exp_type, frq=frq, 
> offset=offset, point=disp_frq)
>
> +        # Store the infinitesimal small change instead ?
> +        store_infinitesimal = False
> +
>          # Store the R2eff data.
>          if data_col:
>              # Initialise if necessary.
>              if not hasattr(spin, 'r2eff'):
>                  spin.r2eff = {}
>
> -            # Store.
> -            spin.r2eff[point_key] = value
> +            # First check that a replicate does not exists. And it if 
> exists, find a new id with infinitesimal small change.
> +            if point_key in spin.r2eff:
> +                warn(RelaxWarning("The r2eff value key: %s already exists. 
> \nAn infinitesimal small change to the dispersion frequency is performed, 
> until a new point can be stored."%(point_key)))
> +
> +                # Store the current values.
> +                disp_frq_infinitesimal = disp_frq
> +                point_key_infinitesimal = point_key
> +
> +                # Continue until found
> +                while point_key_infinitesimal == point_key:
> +                    disp_frq_infinitesimal += 0.001
> +                    point_key_infinitesimal = 
> return_param_key_from_data(exp_type=exp_type, frq=frq, offset=offset, 
> point=disp_frq_infinitesimal)
> +
> +                warn(RelaxWarning("The dispersion point is changed from %.3f 
> to %.3f, and hhe new key: %s"%(disp_frq, disp_frq_infinitesimal, 
> point_key_infinitesimal)))
> +                spin.r2eff[point_key_infinitesimal] = value
> +                store_infinitesimal = True
> +
> +            # Else store.
> +            else:
> +                spin.r2eff[point_key] = value
>
>          # Store the R2eff error.
>          if error_col:
> @@ -2398,8 +2419,26 @@
>              if not hasattr(spin, 'r2eff_err'):
>                  spin.r2eff_err = {}
>
> -            # Store.
> -            spin.r2eff_err[point_key] = error
> +            # First check that a replicate does not exists. And it if 
> exists, find a new id with infinitesimal small change.
> +            if point_key in spin.r2eff_err:
> +                warn(RelaxWarning("The r2eff error key: %s already exists. 
> \nAn infinitesimal small change to the dispersion frequency is performed, 
> until a new point can be stored."%(point_key)))
> +
> +                # Store the current values.
> +                disp_frq_infinitesimal = disp_frq
> +                point_key_infinitesimal = point_key
> +
> +                # Continue until found
> +                while point_key_infinitesimal == point_key:
> +                    disp_frq_infinitesimal += 0.001
> +                    point_key_infinitesimal = 
> return_param_key_from_data(exp_type=exp_type, frq=frq, offset=offset, 
> point=disp_frq_infinitesimal)
> +
> +                warn(RelaxWarning("The dispersion point is changed from %.3f 
> to %.3f, and hhe new key: %s\n"%(disp_frq, disp_frq_infinitesimal, 
> point_key_infinitesimal)))
> +                spin.r2eff_err[point_key_infinitesimal] = error
> +                store_infinitesimal = True
> +
> +            # Else store.
> +            else:
> +                spin.r2eff_err[point_key] = error
>
>          # Data added.
>          data_flag = True
> @@ -2420,9 +2459,15 @@
>      if data_flag:
>          # Set the dispersion point frequency.
>          if exp_type in EXP_TYPE_LIST_CPMG:
> -            cpmg_setup(spectrum_id=id, cpmg_frq=disp_frq)
> +            if store_infinitesimal:
> +                cpmg_setup(spectrum_id=id, cpmg_frq=disp_frq_infinitesimal)
> +            else:
> +                cpmg_setup(spectrum_id=id, cpmg_frq=disp_frq)
>          else:
> -            spin_lock_field(spectrum_id=id, field=disp_frq)
> +            if store_infinitesimal:
> +                spin_lock_field(spectrum_id=id, field=disp_frq_infinitesimal)
> +            else:
> +                spin_lock_field(spectrum_id=id, field=disp_frq)

Hi Troels,

These changes look good!  The RelaxWarning given should make it
sufficiently clear to the user what is happening.  And the results
from an analysis should be reasonable.  Only one point though, you
should check the spelling (the word "hhe").

Cheers,

Edward

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
relax-devel@gna.org

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to