Open main menu

Setting up relax_disp.spin_lock_offset and relax_disp.spin_lock_field

Refer to the manual for parameter explanation

This page is a little help to understand how to use the functions:

  1. relax_disp.spin_lock_offset()
  2. relax_disp.spin_lock_field()

spin lock offset

Manual on relax_disp.spin_lock_offset
The relax function relax_disp.spin_lock_offset() requires the values to be provided in ppm.

relax_disp.spin_lock_offset(spectrum_id=None, offset=None)

spin lock field

Manual on relax_disp.spin_lock_field
The relax function relax_disp.spin_lock_field() requires the values to be provided in Hz.

relax_disp.spin_lock_field(spectrum_id=None, field=None)

Literature comments

See Figure 1 and 10 in the reference.

Palmer, A.G. & Massi, F. (2006). Characterization of the dynamics of biomacromolecules using rotating-frame spin relaxation NMR spectroscopy. Chem. Rev. 106, 1700-1719 DOI
 
Try to reproduce Figure 1.

Figure produced with script found here.

Calculations in relax

spin lock offset

The offset is in the literature noted as $\Omega_S$, where $\Omega_S$ is the (Ex. $^{15}$N) resonance offset from the spin-lock carrier.

Note that $\Omega_S$ is dependent of the chemical shifts $\delta$ in ppm for the nuclei of interest, and is first calculated later.

In the literature, the values are often stated as "offset", "carrier offset", "offset of the spin-lock pulse" with values given in Hz, and can have values from 0-500 to 10-20.000 Hz.
These values reflects offset frequencies to the carrier frequency, and in relax is noted as "Spin-lock offset, the frequency of of the rf field" : $\mathbf{\omega_{rf}}$.


Relax needs input for $\mathbf{\omega_{rf}}$ in ppm, and converts to the rad/s, with the following function calls.

offsets[ei][si][mi][oi] = frequency_to_rad_per_s(frq=cdp.spin_lock_offset[id], B0=frq, isotope=spin.isotope)

spin lock field

The spin lock field strength is noted $\nu_1$.
The Chemical Shifts $\delta$ in ppm for nuclei of interest (ex. $^{15}$N and which have been loaded in with relax function chemical_shift_read from a peak list formatted file) is first converted to to the rad/s with the following function calls.

shifts[ei][si][mi] = frequency_to_rad_per_s(frq=shift, B0=frq, isotope=spin.isotope)

Then $\bar{\Omega_S}$ is calculated with: $\bar{\Omega}_{S,i} = \bar{\omega}_{S,i} - \omega_{rf}$, where $\bar{\omega}$ is the population averaged Larmor frequency of the spin and comes from the conversion of the Chemical Shifts $\delta_{S,i}$ to frequency $\bar{\omega}_{S,i}$.

Delta_omega = shifts[ei][si][mi] - offsets[ei][si][mi][oi]

The trouble

The trouble is.

Does the Hz frequency refers to RF fields applied at the 1H Larmor frequency or 15N frequency?

At page 1708 is states that w_1S = w_1 and w_eS = w_e. And in pulse sequence it states that:

Code reference calculations in relax

The code which is called resides in:

lib/nmr.py

frequency_to_rad_per_s(frq=None, B0=None, isotope=None):
"""Convert the given frequency from ppm to rad/s units."""
return frq * 2.0 * pi * B0 / g1H * return_gyromagnetic_ratio(isotope) * 1e-6

specific_analyses/relax_disp/disp_data.py

return_offset_data(spins=None, spin_ids=None, field_count=None, fields=None):

Data structures

"""
The data structures consist of many different index types.  These are:

- Ei:  The index for each experiment type.
- Si:  The index for each spin of the spin cluster.
- Mi:  The index for each magnetic field strength.
- Oi:  The index for each spin-lock offset.
- Di:  The index for each dispersion point, the spin-lock field strength.
"""

Spectrometer notes

Varian / VnmrJ

In some pulse sequences, the following is seen:

'trim' is a basic timeunit and the total spinlock time is calculated as 2.0*ncyc*trim
b1 = getval("b1"),                      /* spin-lock field, Hz! */  
deltadof2 = getval("deltadof2"),        /* offset for N15 spinlock */

See also