Hi Edward.

This is a good suggestion.

I will add this in the end.

Best
Troels

2014-07-28 12:09 GMT+02:00 Edward d'Auvergne <[email protected]>:
> Hi,
>
> I think it would be better to add a user function option called
> something like {x_axis, x_data, plot_type} where you can choose
> between {dispersion points, w_eff, theta}.  The reason is because it
> would be best to make this independent of R1rho.  See
> http://thread.gmane.org/gmane.science.nmr.relax.scm/22521/focus=6524
> for why this also applies to CPMG-type data.  This also results in
> more flexibility for the user and more documentation.  Also some users
> chose to cover more of the offset dimension when collecting R1rho data
> and others more of the dispersion point dimension - so then they can
> choose which plots they would like.  However, in the auto-analysis, it
> will make no difference in the end.  It is also a rather small change
> to the front and backends.
>
> Cheers,
>
> Edward
>
>
>
> On 28 July 2014 11:54, Troels Emtekær Linnet <[email protected]> wrote:
>> Hi Ed.
>>
>> Is is currently hard-coded, that the relax_disp.plot_disp_curves user
>> function have the dispersion points along the X axis.
>>
>> The current implementation will detect if it is an R1rho experiment.
>> Then it will produce:
>>
>> R1rho R2 as function of the effective field w_eff.
>> http://wiki.nmr-relax.com/File:Matplotlib_52_N_R1_rho_R2eff_w_eff.png
>>
>> R1rho as function of theta.
>> http://wiki.nmr-relax.com/File:Matplotlib_52_N_R1_rho_theta_sep.png
>>
>> See for example.
>> http://wiki.nmr-relax.com/Matplotlib_DPL94_R1rho_R2eff
>>
>>
>> We can discuss if it the plotting should be voluntary, and thereby
>> adding a new/extending current user function.
>> Or it should just plot all the graphs.
>>
>> Best
>> Troels
>>
>>
>>
>> 2014-07-28 11:32 GMT+02:00 Edward d'Auvergne <[email protected]>:
>>> Hi Troels,
>>>
>>> The default, even for R1rho experiments for the
>>> relax_disp.plot_disp_curves user function should be to have the
>>> dispersion points along the X axis.  We should then present to the
>>> user an option to switch this X axis to the offset.  Then, in the
>>> auto-analysis, both sets of graphs could possibly be produced.  What
>>> do you think?
>>>
>>> Regards,
>>>
>>> Edward
>>>
>>>
>>> On 25 July 2014 20:56,  <[email protected]> wrote:
>>>> Author: tlinnet
>>>> Date: Fri Jul 25 20:56:37 2014
>>>> New Revision: 24765
>>>>
>>>> URL: http://svn.gna.org/viewcvs/relax?rev=24765&view=rev
>>>> Log:
>>>> Changed interpolation function from offset to spin lock field strength, to 
>>>> plot R1rho R2 as function of effective field.
>>>>
>>>> sr #3124(https://gna.org/support/?3124): Grace graphs production for R1rho 
>>>> analysis with R2_eff as function of Omega_eff.
>>>> sr #3138(https://gna.org/support/?3138): Interpolating theta through 
>>>> spin-lock offset [Omega], rather than spin-lock field strength [w1].
>>>>
>>>> Modified:
>>>>     branches/r1rho_plotting/specific_analyses/relax_disp/data.py
>>>>
>>>> Modified: branches/r1rho_plotting/specific_analyses/relax_disp/data.py
>>>> URL: 
>>>> http://svn.gna.org/viewcvs/relax/branches/r1rho_plotting/specific_analyses/relax_disp/data.py?rev=24765&r1=24764&r2=24765&view=diff
>>>> ==============================================================================
>>>> --- branches/r1rho_plotting/specific_analyses/relax_disp/data.py        
>>>> (original)
>>>> +++ branches/r1rho_plotting/specific_analyses/relax_disp/data.py        
>>>> Fri Jul 25 20:56:37 2014
>>>> @@ -1752,8 +1752,8 @@
>>>>          file_name = "theta%s.agr" % spin_id.replace('#', 
>>>> '_').replace(':', '_').replace('@', '_')
>>>>
>>>>          if not spin.model in [MODEL_R2EFF]:
>>>> -            # Interpolate through spin-lock offset points.
>>>> -            interpolated_flag, back_calc, spin_lock_offset_new, 
>>>> chemical_shifts, spin_lock_fields_inter, offsets_inter, tilt_angles_inter, 
>>>> Delta_omega_inter, w_eff_inter = 
>>>> plot_disp_curves_interpolate_sl_offset(spin=spin, spin_id=spin_id, si=si, 
>>>> num_points=num_points, extend=extend)
>>>> +            # Interpolate through disp points.
>>>> +            interpolated_flag, back_calc, cpmg_frqs_new, 
>>>> spin_lock_nu1_new, chemical_shifts, spin_lock_fields_inter, offsets_inter, 
>>>> tilt_angles_inter, Delta_omega_inter, w_eff_inter = 
>>>> plot_disp_curves_interpolate_disp(spin=spin, spin_id=spin_id, si=si, 
>>>> num_points=num_points, extend=extend)
>>>>
>>>>          else:
>>>>              back_calc = None
>>>> @@ -1786,7 +1786,7 @@
>>>>                  current_spin = proton
>>>>
>>>>              # Loop over the spectrometer frequencies and offsets.
>>>> -            err, data, set_labels, set_colours, x_axis_type_zero, 
>>>> symbols, symbol_sizes, linetype, linestyle, axis_labels = 
>>>> plot_disp_curves_loop_frq(exp_type=exp_type, ei=ei, 
>>>> current_spin=current_spin, spin_id=spin_id, si=si, back_calc=back_calc, 
>>>> chemical_shifts=chemical_shifts, 
>>>> spin_lock_fields_inter=spin_lock_fields_inter, 
>>>> offsets_inter=offsets_inter, tilt_angles_inter=tilt_angles_inter, 
>>>> Delta_omega_inter=Delta_omega_inter, w_eff_inter=w_eff_inter, 
>>>> interpolated_flag=interpolated_flag, graph_index=graph_index, 
>>>> colour_order=colour_order, data=data, set_labels=set_labels, 
>>>> set_colours=set_colours, x_axis_type_zero=x_axis_type_zero, 
>>>> symbols=symbols, symbol_sizes=symbol_sizes, linetype=linetype, 
>>>> linestyle=linestyle, axis_labels=axis_labels)
>>>> +            err, data, set_labels, set_colours, x_axis_type_zero, 
>>>> symbols, symbol_sizes, linetype, linestyle, axis_labels = 
>>>> plot_disp_curves_loop_frq(exp_type=exp_type, ei=ei, 
>>>> current_spin=current_spin, spin_id=spin_id, si=si, back_calc=back_calc, 
>>>> spin_lock_nu1_new=spin_lock_nu1_new, chemical_shifts=chemical_shifts, 
>>>> tilt_angles_inter=tilt_angles_inter, Delta_omega_inter=Delta_omega_inter, 
>>>> w_eff_inter=w_eff_inter, interpolated_flag=interpolated_flag, 
>>>> graph_index=graph_index, colour_order=colour_order, data=data, 
>>>> set_labels=set_labels, set_colours=set_colours, 
>>>> x_axis_type_zero=x_axis_type_zero, symbols=symbols, 
>>>> symbol_sizes=symbol_sizes, linetype=linetype, linestyle=linestyle, 
>>>> axis_labels=axis_labels)
>>>>
>>>>              # Increment the graph index.
>>>>              graph_index += 1
>>>> @@ -2033,7 +2033,7 @@
>>>>      return interpolated_flag, back_calc, spin_lock_offset_new, 
>>>> chemical_shifts, spin_lock_fields_inter, offsets, tilt_angles, 
>>>> Delta_omega, w_eff
>>>>
>>>>
>>>> -def plot_disp_curves_loop_frq(exp_type=None, ei=None, current_spin=None, 
>>>> spin_id=None, si=None, back_calc=None, chemical_shifts=None, 
>>>> spin_lock_fields_inter=None, offsets_inter=None, tilt_angles_inter=None, 
>>>> Delta_omega_inter=None, w_eff_inter=None, interpolated_flag=None, 
>>>> graph_index=None, colour_order=None, data=None, set_labels=None, 
>>>> set_colours=None, x_axis_type_zero=None, symbols=None, symbol_sizes=None, 
>>>> linetype=None, linestyle=None, axis_labels=None):
>>>> +def plot_disp_curves_loop_frq(exp_type=None, ei=None, current_spin=None, 
>>>> spin_id=None, si=None, back_calc=None, spin_lock_nu1_new=None, 
>>>> chemical_shifts=None, spin_lock_fields_inter=None, offsets_inter=None, 
>>>> tilt_angles_inter=None, Delta_omega_inter=None, w_eff_inter=None, 
>>>> interpolated_flag=None, graph_index=None, colour_order=None, data=None, 
>>>> set_labels=None, set_colours=None, x_axis_type_zero=None, symbols=None, 
>>>> symbol_sizes=None, linetype=None, linestyle=None, axis_labels=None):
>>>>      """Loop function over the spectrometer frequencies and offsets for 2D 
>>>> Grace plotting function.
>>>>
>>>>      @keyword exp_type:                  The experiment type.
>>>> @@ -2048,14 +2048,10 @@
>>>>      @type si:                           int
>>>>      @keyword back_calc:                 The back calculated data.  The 
>>>> first index corresponds to the experiment type, the second is the spin of 
>>>> the cluster, the third is the magnetic field strength, and the fourth is 
>>>> the dispersion point.
>>>>      @type back_calc:                    list of lists of lists of lists 
>>>> of float
>>>> -    @keyword cpmg_frqs_new:             The interpolated CPMG frequencies 
>>>> in Hertz.  The dimensions are {Ei, Mi, Oi}.
>>>> -    @type cpmg_frqs_new:                rank-3 list of floats
>>>> +    @keyword spin_lock_nu1_new:         The interpolated spin-lock field 
>>>> strengths in Hertz.  The dimensions are {Ei, Mi, Oi}.
>>>> +    @type spin_lock_nu1_new:            rank-3 list of floats
>>>>      @keyword chemical_shifts:           The chemical shifts in rad/s {Ei, 
>>>> Si, Mi}
>>>>      @type chemical_shifts:              rank-3 list of floats
>>>> -    @keyword spin_lock_fields_inter:    The interpolated spin-lock field 
>>>> strengths in Hertz {Ei, Mi, Oi}
>>>> -    @type spin_lock_fields_inter:       rank-3 list of floats
>>>> -    @keyword offsets_inter:             The interpolated spin-lock 
>>>> offsets in rad/s {Ei, Si, Mi, Oi}
>>>> -    @type offsets_inter:                rank-4 list of floats
>>>>      @keyword tilt_angles_inter:         The interpolated rotating frame 
>>>> tilt angles {Ei, Si, Mi, Oi, Di}
>>>>      @type tilt_angles_inter:            rank-5 list of floats
>>>>      @keyword Delta_omega_inter:         The interpolated average 
>>>> resonance offset in the rotating frame in rad/s {Ei, Si, Mi, Oi, Di}
>>>> @@ -2237,66 +2233,61 @@
>>>>      # Add the interpolated back calculated data.
>>>>      if interpolated_flag:
>>>>          colour_index = 0
>>>> -        for frq, mi in loop_frq(return_indices=True):
>>>> -            # Loop over interpolated offset.
>>>> -            for oi, offset_rad in enumerate(offsets_inter[ei][si][mi]):
>>>> -                # Add a new set for the data at each frequency and offset.
>>>> -                #data[graph_index].append([])
>>>> -
>>>> -                # Convert offset to ppm from rad/s.
>>>> -                offset = frequency_to_ppm_from_rad(frq=offset_rad, 
>>>> B0=frq, isotope=current_spin.isotope)
>>>> -
>>>> -                # Add a new label.
>>>> -                if exp_type in EXP_TYPE_LIST_CPMG:
>>>> -                    label = "R\\s2eff\\N interpolated curve"
>>>> -                else:
>>>> -                    label = "R\\s1\\xr\\B\\N interpolated curve"
>>>> -                if offset != None and frq != None:
>>>> -                    label += " (%.1f MHz, %.3f ppm)" % (frq / 1e6, offset)
>>>> -                elif frq != None:
>>>> -                    label += " (%.1f MHz)" % (frq / 1e6)
>>>> -                elif offset != None:
>>>> -                    label += " (%.3f ppm)" % (offset)
>>>> -                #set_labels[ei].append(label)
>>>> -
>>>> -                # The other settings.
>>>> -                
>>>> #set_colours[graph_index].append(colour_order[colour_index])
>>>> -                #x_axis_type_zero[graph_index].append(True)
>>>> -                #if current_spin.model in MODEL_LIST_NUMERIC_CPMG:
>>>> -                #    symbols[graph_index].append(8)
>>>> -                #else:
>>>> -                #    symbols[graph_index].append(0)
>>>> -                #symbol_sizes[graph_index].append(0.20)
>>>> -                #linetype[graph_index].append(1)
>>>> -                #linestyle[graph_index].append(1)
>>>> -
>>>> -                # Loop over the dispersion points.
>>>> -                for di, point in 
>>>> enumerate(spin_lock_fields_inter[ei][mi][oi]):
>>>> -                    # Assign r2eff.
>>>> -                    r2eff = back_calc[ei][si][mi][oi][di]
>>>> -
>>>> -                    # Skip invalid points (values of 1e100).
>>>> -                    if r2eff > 1e50:
>>>> -                        continue
>>>> -
>>>> -                    # Set x_point.
>>>> -                    x_point = w_eff_inter[ei][si][mi][oi][di]
>>>> -
>>>> -                    theta = tilt_angles_inter[ei][si][mi][oi][di]
>>>> -
>>>> -                    # R_2 = R1rho / sin^2(theta) - R_1 / tan^2(theta) = 
>>>> (R1rho - R_1 * cos^2(theta) ) / sin^2(theta)
>>>> -                    y_point = ( r2eff - r1[si][mi]*cos(theta)**2 ) / 
>>>> sin(theta)**2
>>>> -
>>>> -                    # Add the data.
>>>> -                    #data[graph_index][set_index].append([x_point, 
>>>> y_point])
>>>> -
>>>> -                    # Handle the errors.
>>>> -                    #if err:
>>>> -                    #    data[graph_index][set_index][-1].append(None)
>>>> -
>>>> -                # Increment the graph set index.
>>>> -                #set_index += 1
>>>> -                #colour_index += 1
>>>> +        for frq, offset, mi, oi in loop_frq_offset(exp_type=exp_type, 
>>>> return_indices=True):
>>>> +            # Add a new set for the data at each frequency and offset.
>>>> +            data[graph_index].append([])
>>>> +
>>>> +            # Add a new label.
>>>> +            if exp_type in EXP_TYPE_LIST_CPMG:
>>>> +                label = "R\\s2eff\\N interpolated curve"
>>>> +            else:
>>>> +                label = "R\\s1\\xr\\B\\N interpolated curve"
>>>> +            if offset != None and frq != None:
>>>> +                label += " (%.1f MHz, %.3f ppm)" % (frq / 1e6, offset)
>>>> +            elif frq != None:
>>>> +                label += " (%.1f MHz)" % (frq / 1e6)
>>>> +            elif offset != None:
>>>> +                label += " (%.3f ppm)" % (offset)
>>>> +            set_labels[ei].append(label)
>>>> +
>>>> +            # The other settings.
>>>> +            set_colours[graph_index].append(colour_order[colour_index])
>>>> +            x_axis_type_zero[graph_index].append(True)
>>>> +            if current_spin.model in MODEL_LIST_NUMERIC_CPMG:
>>>> +                symbols[graph_index].append(8)
>>>> +            else:
>>>> +                symbols[graph_index].append(0)
>>>> +            symbol_sizes[graph_index].append(0.20)
>>>> +            linetype[graph_index].append(1)
>>>> +            linestyle[graph_index].append(1)
>>>> +
>>>> +            # Loop over the dispersion points.
>>>> +            for di, point in enumerate(spin_lock_nu1_new[ei][mi][oi]):
>>>> +                # Assign r2eff.
>>>> +                r2eff = back_calc[ei][si][mi][oi][di]
>>>> +
>>>> +                # Skip invalid points (values of 1e100).
>>>> +                if r2eff > 1e50:
>>>> +                    continue
>>>> +
>>>> +                # Set x_point.
>>>> +                x_point = w_eff_inter[ei][si][mi][oi][di]
>>>> +
>>>> +                theta = tilt_angles_inter[ei][si][mi][oi][di]
>>>> +
>>>> +                # R_2 = R1rho / sin^2(theta) - R_1 / tan^2(theta) = 
>>>> (R1rho - R_1 * cos^2(theta) ) / sin^2(theta)
>>>> +                y_point = ( r2eff - r1[si][mi]*cos(theta)**2 ) / 
>>>> sin(theta)**2
>>>> +
>>>> +                # Add the data.
>>>> +                data[graph_index][set_index].append([x_point, y_point])
>>>> +
>>>> +                # Handle the errors.
>>>> +                if err:
>>>> +                    data[graph_index][set_index][-1].append(None)
>>>> +
>>>> +            # Increment the graph set index.
>>>> +            set_index += 1
>>>> +            colour_index += 1
>>>>
>>>>      # Add the residuals for statistical comparison.
>>>>      colour_index = 0
>>>>
>>>>
>>>> _______________________________________________
>>>> relax (http://www.nmr-relax.com)
>>>>
>>>> This is the relax-commits mailing list
>>>> [email protected]
>>>>
>>>> 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-commits
>>>
>>> _______________________________________________
>>> relax (http://www.nmr-relax.com)
>>>
>>> This is the relax-devel mailing list
>>> [email protected]
>>>
>>> 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

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

This is the relax-devel mailing list
[email protected]

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