Loading modules...

GENESIS: a NOAH pulse programme generator

Module selector

Developer mode
13C–1H #1
13C–1H #2
...or choose your own:

Pulse programme text


Acquiring NOAH experiments

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.) If you’re not sure what value to use, check the comment near the top of the pulse programme.
  • TD1 (i.e. TD in the F1 dimension) must be its original value multiplied by NBL. 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 pulsed field gradients can be set using the gppp command, and most shaped pulses can be created using the WaveMaker wvm -a command.

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 number of t1 increments or chunks for the 2DJ and PSYCHE experiments respectively. There is no need to multiply this by NBL. Note that 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.)

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.

To turn on an acquisition flag, such as -DEDIT, simply include it in the TopSpin acquisition parameter zgoptns (accessible via ased). To enable multiple acquisition flags, simply specify all of them together but separated by spaces.

Here is a complete list of acquisition flags. Note that not every flag will be relevant to every supersequence. The relevant ones will be mentioned in the comments at the very top of the pulse programme.

  • -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.
  • -DPRESAT: enables presaturation during d1 and also during NOE mixing times (if a NOESY module is present).
  • -DES: enables excitation sculpting in most (but not all) homonuclear modules.

To see whether you need the flags with ‘1’ in them, please check the comments near the top 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. The next FAQ entry deals with the issue of NUS.

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:

  1. Download the newest version of noah_nus2.py. Place it in the appropriate folder for TopSpin’s Python scripts.
  2. Set up your experiment normally without NUS first, with the full value for TD1 (i.e. number of t1 increments times NBL). Don’t change any other parameters, such as FnTYPE.
  3. Specify the parameter NusAMOUNT (this refers to the sampling density as a percentage, i.e. set this to 50 for half the points) and then run noah_nus2 on 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.


  • 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. (I'd really encourage you to re-download the pulse programmes and scripts here, though. They are better.)
  • NUS is not compatible with the cnst39 scaling in 15N modules respectively. If you try to enable this on a dataset with cnst39 > 1, the script will silently reset cnst39 back to 1.
  • Finally, NUS totally does not work with with QF-style modules (namely QF COSY), cnst37-scaled 1H modules (2DJ and PSYCHE), or time-shared / interleaved experiments. The -DNUS acquisition flag is not available in these pulse sequences, and the script will tell you this if you try to enable NUS.

First of all, it’s worth mentioning that many of the HSQC- or HMQC-type modules typically have a good degree of intrinsic water suppression. This is because they only use magnetisation of 1H spins directly coupled to heteronuclei; all other magnetisation (including that of water) is returned to the equilibrium +z-axis. So there is usually no need for extra water suppression.

Other forms of solvent suppression in the sequences here are controlled by acquisition flags, instead of being entirely separate pulse programmes.

You can use the -DPRESAT flag to turn on presaturation during d1 and NOE mixing times. Presaturation tends to work best for the first module, because water magnetisation recovers over the course of a supersequence. The suppression is definitely still noticeable in later modules; it just isn’t as good as one might expect in a standalone experiment.

For many of the homonuclear (1H) modules, the -DES flag can be used to enable excitation sculpting pre-acquisition (we use a combination of a shaped 180° pulse and hard 180° pulse for this). This is enabled (and has been tested) on all the homonuclear modules, except for the echo–antiecho COSY+X combinations (please use the States ones instead, but also see below), the DQF-COSY (where it’s not needed, because singlets including water are naturally suppressed), and the 2DJ experiments.

For the States COSY+X combinations, excitation sculpting is only used for the latter module, not the COSY. The reason for this is because placing an ES block inside th COSY leads to undesired suppression of other peaks in the latter module (which correspond to nulls in the inversion profile of the soft 180° pulse used in the ES block). Presaturation can still be used to suppress the water peak in the COSY module.

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.

Yes. 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’. It’s a bit odd, but entirely harmless.

Set up a NOAH experiment as usual (you can also enable NUS using the noah_nus2 script if you want), and make sure to specify these two parameters:

  • The acquisition AU programme (AUNM) parameter should be set to au_zgnoah, to avoid issues with rga (see above). This AU programme does not come with TopSpin, but you can download it on this website (click the ‘download processing scripts’ button).
  • 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.

With this setup, NOAH experiments should be able to run in IconNMR as usual. You can use either the sti (send to Icon) command, or save a parameter set and load it within Icon. However, getting NOAH to work under automation can be finicky (especially when NUS is involved as well), so please feel free to get in touch if you have any issues or questions.

If you want to also generate WaveMaker shaped pulses before acquisition, you can modify the acquisition AU programme (i.e. au_zgnoah) to contain the statement XCMD("wvm -q") immediately before the line containing ZG.

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 NOAH experiments

First, note the experiment number (expno) of your NOAH dataset: if the expno is 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, and no further processing is required.

If not, then follow these steps to generate those spectra:

  1. 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).
  2. 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 processing parameters in TopSpin. For example, in a BSC experiment, you would specify (userP1, userP2, userP3) = (noah_hmbc, noah_hsqc, noah_cosy) respectively. This was an easy way to mess up the processing (by incorrectly inputting these parameters), and has thus been removed: so, if you downloaded pulse programmes and AU scripts from this website, this step is no longer necessary. Please do get in touch if you need extra information on this.

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. The solution depends on your OS version and TopSpin version.

On Catalina (macOS 10.15): Please update TopSpin to version 4.1.0 or later.

On Big Sur (macOS 11): You will need to update TopSpin to version 4.1.3 or later, and also install the Xcode Command-Line Tools by running xcode-select —install in a terminal.

For versions 4.1.1 and 4.1.2 of TopSpin on Big Sur, a more involved patch is necessary:

  1. Install the XCode Command Line Tools by running xcode-select --install in a terminal.
  2. 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.
  3. 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.
  4. In /opt/topspin4.1.1/prog/include/lib/uni.h: comment out line 182 by adding a # at its beginning.
General NOAH/GENESIS questions

First of all, if the error arises during the processing stage, please try again with the newest scripts.

A few possible error messages are collated here. If yours isn’t listed here, drop us an email.

  • rga: Warning: Pulse program does not contain a 'st' statement...
    This message arises when using the au_zgcosy AU acquisition programme, which was previously recommended. It is harmless and can be safely ignored. To suppress it, set the acquisition AU programme (AUNM) parameter to au_zgnoah instead (this AU programme can be downloaded on this website).
  • Warning: file size #0 resulting from pulse program is not consistent with parameters...
    This usually results from a wrongly set NBL parameter. The correct value to use is always specified in a comment near the top of the pulse programme.

Thanks for asking! If you’re just looking for a citation for the supersequence you used, check the text of the pulse programme you downloaded from here: it should already suggest some relevant references, so you can directly copy those.

On the other hand, if you’re interested in reading more, the paper accompanying the GENESIS website is:

  1. Yong, J. R. J.; Kupče, Ē.; Claridge, T. D. W. Modular Pulse Program Generation for NMR Supersequences. Anal. Chem. 2022, 94 (4), 2271–2278. DOI: 10.1021/acs.analchem.1c04964.

and the original NOAH paper is:

  1. 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.

There are also a couple of reviews which cover the NOAH technique:

  1. 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.
  2. 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:

  1. Kupče, Ē.; Claridge, T. D. W. Molecular structure from a single NMR supersequence. Chem. Commun. 2018, 54 (52), 7139–7142. DOI: 10.1039/C8CC03296C.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Kupče, Ē.; Yong, J. R. J.; Widmalm, G.; Claridge, T. D. W. Parallel NMR Supersequences: Ten Spectra in a Single Measurement. JACS Au 2021, 1 (11), 1892–1897. DOI: 10.1021/jacsau.1c00423.

This is intended. The NOAH-2 SB has better performance than NOAH-2 BS (unpublished work by JY). The reason is fairly simple:

  1. The HSQC already preserves the necessary magnetisation for the HMBC, so no modification is necessary, and it gets a sensitivity boost from going first.
  2. The HMBC gets a slight boost from the fact that it doesn’t need to use the zz-filter when placed at the end; however, there is also a slight loss because the preceding HSQC doesn’t preserve magnetisation perfectly. Overall, these two factors almost perfectly cancel each other out, so the HMBC has approximately the same sensitivity as before.

If you really want a HMBC + HSQC sequence (or maybe you want to verify what I said!), please turn on developer mode and enter the combination C_HMBC_CF C_HSQC.

(Note that this analysis doesn't extend to BS+ (HMBC + seHSQC) supersequences, because if the seHSQC is to be placed first it must be modified.)

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 can be done, 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.

Yes; you can navigate to version X.Y.Z of the website using the URL https://nmr-genesis.co.uk/X/Y/Z. For example, version 2.0.13 can be accessed here.

This is most likely to be useful for purposes of reproducibility. If you have an old pulse programme and want to find out which version of GENESIS created it, simply scroll to the bottom of the pulse programme: there will be a comment there with the version number.

Note that versions prior to v2.0.6 are not accessible. This is because v2.0.6 marked a migration from JavaScript to TypeScript, which made the build process quite different. In any case, there should not be any reason to access versions prior to v2.0.11, since these were only ever used internally.

The GENESIS website was written, and is maintained, by Jonathan Yong (that’s me).

I was a PhD student at Oxford, where I worked on the development of NOAH experiments (amongst other stuff) with Tim Claridge and Ēriks Kupče. As of January 2023, I’m now employed at the Research Engineering Group at The Alan Turing Institute. Thus, please don’t expect any huge developments in this website. However, I am still happy to fix bugs where necessary, as long as you are willing to do some back-and-forth to troubleshoot any issues (as I no longer have access to spectrometers).

To get in touch, please feel free to create an issue on the GitHub repository, or email one or more of us at:

  • jyong[at]turing.ac.uk
  • tim.claridge[at]chem.ox.ac.uk
  • eriks.kupce[at]bruker.com

Finally, if you're interested, we published a paper describing this website (DOI: 10.1021/acs.analchem.1c04964).

Current version: v