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

