April 30, 2016
Interleaved NMR experiments are often used to collect relaxation dispersion, zz-exchange, CPMG relaxation and T1/T2/NOE relaxation etc. This is often done to minimize the effect of degradation of sample, precipitation and aggregation over time on individual experiments. These aforementioned experiments can be done as a bunch of 2D experiments queued one after another, but the intensities of a spectra of slightly unstable protein could vary over time causing addition artifacts.
First we need a 2D version of the experiment one wants to run where we create a segment in the pulse sequence that is varied between the different experiments. In the case of relaxation dispersion experiment this variable is referring to the number of CPMG pulses that are applied over a small mixing time of ~40ms and in the case of zz-exchange experiment, this variable refers to the time in milliseconds that is used to mix between two states under equilibrium. Let us try to use a complex case where the loop counter is varied where a counter is used to determine the number of times a segment is repeated.
We first need to pass the value of –DCPMG via ZGOPTNS if we want to activate CPMG sections of the pulse sequence which can be done using “# ifdef CPMG” command as described below.
# ifdef CPMG
5 d26 ; tau_cp
(p61*2 ph3):N15 ;CPMG specific section
d26 ; tau_cp
lo to 5 times l2
# endif
This will iterate the three lines of the code “l2” number of times which is also supplied by user via Topspin. Now testing this pulse sequence is all that is left to confirm the correct implementation of the delays and pulses. Once this is conformed we would proceed to the following step where we collect thse experiments as a pseudo-3D experiment.
In an interleaved experiment, the first scan is done for first loop counter value, subsequent scans for the following loop counters and at the end of loop it should start from the first value all over again until the number of scans are exhausted. We would later split these individual experiments and combine with corresponding loop counter using a Topspin macro (discussed in another post).
We will base this experiment on the 2D experiment where “l2” is used as a loop counter to vary the number of times a certain section of the code is run. The F1 and F2 dimension of the 2D experiment is going to be converted to F1 and F3 in our pseudo-3D experiment and F2 dimension will be used in the “QF” mode to vary the number of points in the loop counter. This has certain advantages over using F1 dimension as a loop counter as the chemical shift variable names, their corresponding increments and MC loop names have to be changed throughout the pulse sequence. With the use of F2 for loop counter eliminates this issue and one can keep the exact same variable names as their 2D versions for chemical shift labelling and MC loop names.
#include <Delay.incl>
define list<loopcounter> ncyc_cp = <$VCLIST>
"l2=0"
We plan to use non-standard variable names such as “COUNTER” that is defined in “Delay.incl” which is added in the early section of the code. The second line is added where the pulse program reads the list of loop counter that is defined in Topspin in the “VCLIST” section and is stored in “ncyc_cp”. In the third line we plan to use l2 for incrementing through “ncyc_cp” where the default value is 0 (first in the list).
"l5=ncyc_cp[l2]"
"COUNTER=(trunc(l5+ 0.3))"
After the initial few lines (which starts with “ze”) of the pulse sequence these two lines are added. “l5” is a temporary variable that is used to store the “l2th” value and incremented by 0.3 and truncated to get the value before decimal. This is stored in “COUNTER” which has the equivalent status as “l2” from the 2D experiment and the actual loop counter value.
if "COUNTER != 0"
{
5 d26 ; tau_cp
(p61*2 ph3):N15 ;CPMG specific section
d26 ; tau_cp
lo to 5 times COUNTER
}
else
{
;Reference spectrum
}
Just like the 2D experiment, we use a loop to iterate “COUNTER” number of times. We can use if statements to check for “COUNTER” value and if it is “0”, we can use a certain code for reference spectrum and certain section of the code to run CPMG section. This eliminates the need for “# ifdef CPMG” to be given by user.
d11 mc #0 to 2
F2QF(calclc(l2, +1))
F1EA(………)
Now the only thing left is the incrementing “l2” values as QF in the aqusiton section of the pulse program. We will add “F2QF(calclc(l2, +1))” in between MC loop and the F1EA lines where for each scan we increment “l2”. Ignore the error one will get if spdisp is used as this is a known problem with Topspin 3+.
Click on the 6th icon from the left in your successful 2D experiment
Choose 2D->3D
Copy over the acquisition parameter from F2 dimension to F1 dimension. Because now F3 is equivalent to F2 and F1 is equivalent to F1 dimensions from your 2D experiment. We will use the F2 dimension for incrementing our loop counter.
Change the “FnMODE” for F2 dimension to “QF” and TD2 to the correct number of loop counters one wants to use. In our case we have 16 loop counter values hence TD2 is 16. Make sure the NBL value is set to 1.
Create a new loop counter file or read an existing file using the VCLIST section of the aqpars in Topspin3+. Any value that is 0 can be used that acts as a reference spectrum and non-zero values act as loop counter values.
Once the experiment is done running enter “xfb” and select “13” with correct loop-counter value to obtain the 2D version. There is a way to split these experiments into corresponding 2D experiments automatically using Topspin macros which will be discussed later.
May 7, 2016
Interleaved experiments are easy to run as pseudo 3D experiments. A detailed method to design NMR experiments in Topspin 3+ is described previously.
While running the experiments or after the run the user may have to split the data into their respective 2Ds to evaluate the results. This can be done easily by using “xfb” command along with right dimensions (13 or 23) as input in Topspin or NMRPipe processing scripts to process 3D datasets. Alternatively one might split these pseudo-3D data into individual 2Ds using Topspin 3+ macros. If the user has designed pseudo 3Ds with F2 dimension to be used to loop through the loop-counter values one could use these following lines as Topspin macro. Remember to place the macro in $PATH_TOPSPIN/exp/stan/nmr/au/src/user (The following script is called “splitrelax13”)
int td, texpno=1000;
GETCURDATA
GETINT("Enter the first target expno: ",texpno)
FETCHPAR1S("TD",&td)
i1=0;
TIMES(td)
RSER2D(13, i1+1,i1+texpno)
i1 ++;
END
QUITMSG("--- splitrelax13 finished ---")
This script will automatically read the number of 2D files to split the data into by reading the TD value and splitting the 3D data using RSER2D along 13 dimension starting from folder 1000 (user editable).
Now if the interleaved experiment is looped through F1 dimension in Topspin aqpars, one will need to split the 3D along 23 dimension. This can be done in the following script. Remember to place the macro in $PATH_TOPSPIN/exp/stan/nmr/au/src/user (The following script is called “splitrelax23”)
int td, texpno=1000;
GETCURDATA
GETINT("Enter the first target expno: ",texpno)
FETCHPAR3S("TD",&td)
i1=0;
TIMES(td)
RSER2D(23, i1+1,i1+texpno)
i1 ++;
END
QUITMSG("--- splitrelax23 finished ---")
These scripts will create individual folders with 2D data in them which can be processed using standard 2D NMRPipe scripts or using “xfb” command in Topspin.
May 23, 2016
Researchers tend to use the units of kHz to represent the power of decoupling or shaped pulses in research papers. The reason for the use of this unit is to easily transfer the pulse-widths & power-levels used in the experiment from one spectrometer to another, as one can back calculate the pulse-widths & power-levels as described below. The pulse frequency that is described here (in Hz) is the precession frequency about the magnetic field experienced due to the pulse in the rotating frame. This is not the frequency of pulse (B0), so please don’t confuse with this value.
The flip angle of any given pulse is given by
Where τα is the duration of the pulse to cause the flip angle α, with B1 being the magnitude of the magnetic field caused in the rotating frame. But the precession frequency(Hz) is defined as
Solving for B1 will result in
And for a 90° flip angle we can substitute α=90 or π/2, we get
For example, a 25 kHz decoupling pulse would have a 90° flip angle of 10 µs.
Now that we know how long the pulse need to be applied, we still need to figure out the power level for this pulse. Assuming a linear amplifier, we use the following equation for determining the unknown power level,
So if a calibrated pulse of 7 µs at -9.6 dB is known, a 25 kHz (ie 10 µs pulse) would require -6.5 dB power level to flip desired magnetization by 90°.