GENESIS: a NOAH pulse programme generator
Pulse programme text
- Download all NOAH scripts Back to top of page | Back to FAQ
Click here to download the AU and Python scripts (.zip). We assume you know what you're doing here. (If not, the other entries in this FAQ have more information.)
- Acquiring a NOAH experiment: an overview Back to top of page | Back to FAQ
Nearly all of the setup is the same as for a standard 13C–1H 2D experiment. There are two parameters which require additional consideration:
- NBL should be set to the total number of modules, e.g. 4 for a MSCN supersequence. (Set this either in ased, or by typing nbl into the TopSpin command line.)
- TD1 (i.e. TD in the F1 dimension) must be its original value multiplied by the total number of modules. For example, if you are running a supersequence with 4 modules and want to have 256 t1 increments in each module, TD1 must be set to 256 × 4 = 1024.
All other parameters are fully documented in the pulse programmes, and nearly all of these are the same as in the standard experiments. There are a few parameters which are NOAH-specific:
- cnst16: factor to lengthen CTP gradients in 15N spectra by. We recommend setting this such that cnst16*p16 is around 2–2.5 ms. In other words, if your "standard" gradient duration p16 is 1 ms, set cnst16 = 2–2.5. This helps to suppress artefacts in the spectra which arise from imperfect pulses.
- cnst32: in supersequences with multiple 13C spectra (e.g. HSQC-TOCSY + HSQC), cnst32 tells you how much of the one-bond C–H magnetisation to allocate to the first of the two, where 1 means "all of it" and 0 means "none". The remainder goes to the second module. The optimum amount to use depends on what these two modules are, as well as other parameters e.g. acquisition times and relaxation rates, but something between 0.7 and 0.9 usually works well.
- cnst37: this is the desired value of TD1 for the 2DJ and PSYCHE experiments. Note that, ideally, this should be a factor of the other modules' TD1.
- cnst38: for 2DJ and PSYCHE experiments this is the indirect dimension proton SW in Hz. For PSYCHE modules, we include automatic corrections in the pulse programme to make sure that SW2/SW1 is an integer (i.e. each chunk has an integer number of points), so you can just provide an approximate value here without worrying about that.
- cnst39: k-scaling factor for 15N modules. Set this to a value larger than 1 to reduce TD1 for the 15N experiment by a factor of cnst39; in return NS will be increased by a factor of cnst39. The impact is not huge, but sometimes sensitivity gains can be attained.
- cnst40: for 15N experiments this is the nitrogen SW in ppm. (The nitrogen transmitter offset is O3P.)
- What are acquisition flags, and how do I use them? Back to top of page | Back to FAQ
Acquisition flags are ways of conditionally running (technically, compiling) parts of a pulse programme. They are useful when we don't want to create two versions of what's essentially the same module with just small changes. In this case, you can enable acquisition flags to turn on/off optional features. The available acquisition flags are listed near the top of the pulse programme. To turn on an acquisition flag, such as -DEDIT, simply include it in the TopSpin acquisition parameter zgoptns (accessible via ased).
There are currently a handful of acquisition flags:
- -DEDIT and -DEDIT1: enables multiplicity editing in HSQC or HSQC-COSY spectra.
- -DTEDIT: enables multiplicity editing in HSQC-TOCSY spectra.
- -DINVERT and -DINVERT1: in HSQC-TOCSY spectra, causes 'direct' (HSQC) and 'indirect' (HSQC-TOCSY) responses to have opposite signs.
To see whether you need the flags with '1' in them, please check the header of the pulse programme. Usually, the flags ending in '1' are applied to the first of two 13C modules in a supersequence; if you only have one 13C module, it's unlikely you will ever need the '1'-suffixed flags.
There is also the -DNUS flag, which (partially) turns on non-uniform sampling, but you should not set that manually unless you're absolutely certain what you're doing. Instead, please use the noah_nus2.py script. See: Can non-uniform sampling be used with NOAH sequences? for more information.
- Does rga work as expected? Back to top of page | Back to FAQ
No, it doesn't. It tries to optimise the receiver gain for the first module, instead of the entire supersequence as a whole. If the first module has low intrinsic sensitivity (which is typically the case), then rga will suggest unreasonably large values for the receiver gain, leading to ADC overflows for the more sensitive modules.
If you want to use rga, you will need to run it with a different pulse programme which corresponds to the most sensitive module. For example, for a MSCN supersequence, you should run rga with the pulse programme set to a COSY.
Alternatively, instead of simply acquiring with zg, you can run au_zgcosy. This performs rga on a pulse-acquire sequence before acquiring the actual data.
- During acquisition, is it normal that TopSpin shows weird numbers in the progress bar? Back to top of page | Back to FAQ
Yes. Using the same example as before, if you are running a NOAH-4 experiment with 256 t1 increments (i.e. TD1 = 1024), then the progress line in the status bar will inch towards "1024/256".
- Is it possible to have different values of SW/TD2/RG/<other parameter> for different modules? Back to top of page | Back to FAQ
In a way, yes, but as far as we are aware it has to be hardcoded in the pulse programme (and often in a nontrivial way). That would make the pulse programme overly specialised for a particular sample/spectrometer, and isn't something we want to do here.
- Processing a NOAH experiment: an overview Back to top of page | Back to FAQ
If you acquired this data under automation, it should have already been set up such that your data is automatically processed. If your NOAH dataset was acquired with experiment number (expno) m, then check whether you already have datasets in expnos (1000 × m) + 1 onwards. If those exist, then chances are these are the individual processed 2D spectra. If not, then read on...
- If you haven't already done so, download the newest versions of the NOAH scripts. Unzip that and copy everything inside the au subdirectory to <TS>/exp/stan/nmr/au/src/user, where <TS> is your TopSpin installation location (C:\Bruker\TopSpinX.Y.Z for Windows, and /opt/topspinx.y.z for macOS/Linux).
- Process the data by entering splitx_au into the TopSpin command line. This will create new datasets with expnos beginning from (1000 × m) + 1, where m is the expno of the original NOAH data.
If you are using old versions of the pulse programme, there is an additional step where you need to specify the userP1 through userP5 parameters. For example, in a BSC experiment, you would specify (userP1, userP2, userP3) = (noah_hmbc, noah_hsqc, noah_cosy) respectively. This is no longer necessary as long as you have downloaded the newest AU scripts and pulse programmes from this website. Please do get in touch if you need extra information on this.
- I'm using macOS Catalina / Big Sur and the processing doesn't work. Back to top of page | Back to FAQ
On Catalina: Please update TopSpin to version 4.1.0 or later. On older versions of TopSpin for macOS, there is a bug in TopSpin which causes certain parts of AU programmes to not work on Catalina.
On Big Sur: AU programmes are broken even on TopSpin 4.1.1. However, there is a fix available for 4.1.1, courtesy of Gareth Morris and Marshall Smith (University of Manchester).
- Install the XCode Command Line Tools by running xcode-select --install in a terminal.
- In the file /opt/topspin4.1.1/exp/stan/nmr/au/makeau: uncomment line 20 (by removing the #), and remove the text -Wl,-lcrt1.o from line 494.
- In /opt/topspin4.1.1/prog/include/lib/libcb.h: change line 28 from #include<values.h> to #include<limits.h>, then below that, add two new lines #define MININT INT_MIN and #define MAXINT INT_MAX.
- In /opt/topspin4.1.1/prog/include/lib/uni.h: comment out line 182 by adding a # at its beginning.
- Can non-uniform sampling be used with NOAH sequences? Back to top of page | Back to FAQ
NUS can be enabled in the pulse sequence, but not in the conventional way of setting FnTYPE to 'non-uniform sampling'. For all pulse programmes downloaded from this website, please follow the steps below:
- Download the newest version of noah_nus2.py.
- Set up your experiment normally without NUS first, with the full value for TD1. Don't change any other parameters, such as FnTYPE.
- Specify the parameter NUSAmount and then run noah_nus2 in TopSpin.
To disable NUS on a dataset where it was previously enabled, run noah_nus2 off.
The optimal sampling density depends on what spectra you're trying to run as well as your sample. However, there is nothing special about NOAH in this regard: the typical considerations (e.g. how sparse the spectrum is) are the same, and whatever works for the individual spectra will also work on NOAH.
Incompatibilities: The script will not work on old versions of pulse sequences, e.g. those found in the Supporting Information of older papers. For these, please use the old noah_nus.py script. It is also not compatible with the cnst37 and cnst39 scaling in 1H and 15N modules respectively. It also cannot be used with QF-style modules, namely QF COSY and 2DJ. The behaviour of noah_nus2.py is currently as follows:
- If you try to enable NUS on a 1H module requiring scaling (i.e. using cnst37), or a QF COSY, it will simply refuse to work.
- If you try to enable NUS on a 15N experiment with cnst39 > 1, cnst39 will be changed back to 1.
- How can NOAH experiments be set up for use in automation? Back to top of page | Back to FAQ
The acquisition AU programme (AUNM) should be set to au_zgcosy, to avoid issues with rga (see above). The processing AU programme (AUNMP) should be set to splitx_au. If the pulse programmes and AU scripts are up-to-date, then there is no need to set the user processing parameters.
WaveMaker shaped pulses can optionally be generated before acquisition by adding the statement XCMD("wvm -q") into the acquisition AU programme.
- What papers should I cite / where can I find out more about NOAH experiments? Back to top of page | Back to FAQ
Thanks for asking. Firstly, note that the pulse programmes provided above will already suggest references that are relevant. If you're interested in reading more, the original NOAH paper is:
- Kupče, Ē.; Claridge, T. D. W. NOAH: NMR Supersequences for Small Molecule Analysis and Structure Elucidation. Angew. Chem. Int. Ed. 2017, 56 (39), 11779–11783. DOI: 10.1002/anie.201705506.
and there are a couple of reviews which cover the NOAH technique:
- Kupče, Ē.; Frydman, L.; Webb, A.; Yong, J. R. J.; Claridge, T. D. W. Parallel nuclear magnetic resonance spectroscopy. Nat. Rev. Methods Primers 2021, 1, No. 27. DOI: 10.1038/s43586-021-00024-3.
- Kupče, Ē.; Mote, K. R.; Webb, A. G.; Madhu, P. K.; Claridge, T. D. W. Multiplexing experiments in NMR and multi-nuclear MRI. Prog. Nucl. Magn. Reson. Spectrosc. 2021, 124–125, 1–56. DOI: 10.1016/j.pnmrs.2021.03.001.
Apart from these, there are a few other papers covering more technical details of individual modules and supersequences:
- Kupče, Ē.; Claridge, T. D. W. Molecular structure from a single NMR supersequence. Chem. Commun. 2018, 54 (52), 7139–7142. DOI: 10.1039/C8CC03296C.
- Claridge, T. D. W.; Mayzel, M.; Kupče, Ē. Triplet NOAH supersequences optimised for small molecule structure characterisation. Magn. Reson. Chem. 2019, 57 (11), 946–952. DOI: 10.1002/mrc.4887.
- Kupče, Ē.; Claridge, T. D. W. New NOAH modules for structure elucidation at natural isotopic abundance. J. Magn. Reson. 2019, 307, 106568. DOI: 10.1016/j.jmr.2019.106568.
- Hansen, A. L.; Kupče, Ē.; Li, D.-W.; Bruschweiler-Li, L.; Wang, C.; Brüschweiler, R. 2D NMR-Based Metabolomics with HSQC/TOCSY NOAH Supersequences. Anal. Chem. 2021, 93 (15), 6112–6119. DOI: 10.1021/acs.analchem.0c05205.
- Yong, J. R. J.; Hansen, A. L.; Kupče, Ē.; Claridge, T. D. W. Increasing sensitivity and versatility in NMR supersequences with new HSQC-based modules. J. Magn. Reson. 2021, 329, 107027. DOI: 10.1016/j.jmr.2021.107027.
- What is "developer mode"? Back to top of page | Back to FAQ
Internally, the website contains multiple "versions" of many NOAH modules. For example, there are several different sensitivity-enhanced HSQC sequences, each having different strengths and weaknesses: which of these to use depends on the context. If the seHSQC module is placed at the end of a sequence (e.g. NOAH-2 BS+), then we can use the original Cavanagh–Rance seHSQC, which has greater sensitivity than the versions specifically modified for use in NOAH. On the other hand, if there is a homonuclear module which follows (e.g. NOAH-2 S+C), then we should use the versions specifically designed to preserve the uncoupled proton magnetisation. (We have an upcoming paper which will explain this fully.)
As another example, the NOAH HMBC module is usually configured to preserve one-bond C–H magnetisation using the zz-filter, which can be then used in a H–C HSQC experiment. However, if there is also a H–N module (HMQC or seHSQC) in the supersequence, then the filter must be modified to also preserve N–H magnetisation. This is possible (see ref. 6), but the resulting "double filter" is less effective at preserving C–H magnetisation. Thus, we want to only use the "double filter" when it's actually needed.
When using the "normal" interface, the website picks the "smartest" possible variants for use, based on decisions such as the above. Each version of a module is assigned an internal label, which you can see at the bottom of the generated pulse programme. In "developer mode", you have complete control over this and can pick exactly which version of a sequence you want. You can also access a few modules, or combinations thereof, which are not generally recommended: for example, the 15N HSQC (without sensitivity enhancement) is available. The internal labels of the modules are described in more detail here.