# 1D NMR line shapes

Back to Contents

## Source code

This is a summary of all folders relevant to line shape analysis. See my lecture notes on theory of line shape analysis in Mathematical_models/NMR_line_shape_models/My_lectures.

Back to Contents

## Specific line-shape models

Specific models for one-dimensional NMR line shapes are defined by modules in code/+line_shape_equations_1D/ and included in the body of  NMRLineShapes1D class (code/@NMRLineShapes1D/NMRLineShapes1D.m). Below is brief outline of the existing models, their purpose and capabilities. For a rigorous way of deriving them see Mathematical_models/NMR_line_shape_models.

Below is a partial list of  models implemented in IDAP.  For a full list of the line shape models see @NMRLineShapes1D/NMRLineShapes1D.m. Their development and testing is documented in IDAP/Mathematical_models/NMR_line_shape_models/index.htm

• Lorentzian - standard Lorentzian function
• U-model - the simplest implementation of the U model: a binary 1:1 binding process
• U-model-LRcorrection - the U model with correction factor for L/R
• U_model_1D_LRcorr_doublet - the U-model-LRcorrection model written to fit a doublet (approximation that a doublet may be fit as a sum of two singlets---only good when coupling constant is much smaller (10x) than exchange rate constant for the binding process).
• U_model_1D_LR_LB_SF - the same as U-model-LRcorrection with baseline correction and additional normalization.
• B-macro-model   three-state, two identical binding sites, uses microscopic equilibrium and rate constants
• U_R2_FWHHconstr-model  takes into account the fact that linewidth of the dimer is in fixed relationship to the linewidth of the monomer due to predictable increase in the rotational correlation time
• U_R2L2_FWHHconstr-model - takes into account the fact that linewidth of the RL dimer is in fixed relationship to the linewidth of the monomer due to predictable increase in the rotational correlation time

Back to Contents

## A workflow for introducing a new model

• Solve equilibrium thermodynamic equations for your mechanism in MuPad (See Equilibrium_models).
• Create a new model file to calculate equlibrium concentrations in code/+equilibrium_thermodynamic_equations/ .
• NOTE: If it requires numeric solution: express Rtot=f(Leq, all constants...), where Rtot is the total concentration of a receptor and Leq is equilbrium concentration of free ligand. Insert it in the model file [model-name]_numeric.m and call it from [model-name].m to solve numerically. Example of numeric solution is U_R2_model.m and corresponding U_R2_model_numeric.m .
• Known glitches: at times MuPad stops copying the equations to the clipboard (you don't see correct copy-paste result). Solution: Relaunch MuPad.
• Create a 1D line shape model file in code/+line_shape_equations_1D/
• Insert a call to a new model function computing equilibrium concentrations (created above).
• Create a matrix of kinetic coefficients for the pseudo-first order process
• These kinetic matrices are different from regular ODE matrices because we also need to convert all transitions into a pseudo-first order form by incorporating necessary additional concentrations with the constants.
• NOTE 1: dC/dt of NMR-invisible species are NOT calculated by this ODE matrix.
• NOTE 2:
 With the growing number of species and transitions the rate constant matrices become complex. There are a couple of simple rules that allow catching mistakes in K matrix derivation: (1) a sum of each column should be zero (so each constant must appear with both positive and negative sign), and (2) each row has to have complete pairs of constants (i.e., if k12 appears there must be k21 in the same row with an opposite sign and so on).

• Use 'vectorized' setting for calculations of the spectral intensity based on analytical expression for inverted matrices I developed in code/+line_shape_expressions_analytical/ for less than 5 NMR detectable (R-containing) species.
• For number of R-containing species > 5 try to create an analytical expression for inverted matrix of the size you need (my MuPad choked in 2009 to do N=6 and more but newer versions could do the job). If it does not work---use 'standard' setting where matrices are inverted numerically (very slow).
• Add model definition in code/@NMRLineShapes1D/NMRLineShapes1D.m
• Test the model code for glitches by observing 'common-sense' behavior by inspecting different parameter combinations corresponding to predictable limiting outcomes
• Most recent example:
• IDAP/IDAP_Online_Documentation/Tutorials/NMR_line_shapes/Tutorial_8.Overview_and_testing_three_state_model/U_R2_FWHHconstr_model
• U_R2_FWHHconstr_testing
• also see simulation and fitting of simulated data in test_fitting/
• Older and better commented example:

Back to Contents

## Using IDAP 1D NMR

Important considerations on data acquisition and processing:

1. Spectra must be prepared using Exponential apodization window (EM in NMRPipe). Bloch-McConnell equations describe lorentzian signals therefore any other apodization windows are not acceptable.
2. If the heteronuclear spectrum was obtained using a constant-time experiment---the indirect dimension line shapes are (most likely) not useful because there was no free "induction decay" collected due to constant-time acquisition mode of t1. Experiments like that are most frequently performed to record proton-carbon correlations.
3. Zero-filling must be adjusted to have about 5-10 data points per signal envelope (above baseline). More points only overload CPU but do not add any new information. Fewer points make fitting much less stable.
4. It is important that all spectra are processed with the same zero-filling so that each dataset contributions similarly to the the overall sum of squares of deviations for the the series. ProcessAll.py is a utility one can use to perform automated processing of a large number of experimental 2D datasets. See NMR_series_processing.htm for more details.

Experimental NMR line shapes are extracted from 2D HSQC spectra using a custom extension IDAP 1D NMR in Sparky spectral analysis software (obtain Sparky from http://www.cgl.ucsf.edu/home/sparky/). The IDAP 1D NMR extension is written in Python and described in the document IDAP 1D NMR Sparky extension.

A subclass of NMRLineShapes1D called IDAP_1D_NMR.m enables import the exported spectral slices into a TotalFit session.

Back to Contents

 Q: How many residues do you typically use for a Monte-Carlo fit? I've been trying to do global fits with 10-12 traces (& ~8 titration points each) -- I'm wondering if I might just be overloading my system? A: This is very variable. It depends on data quality and number of points in your traces. You should have about 10 points in the peak envelope, and some stretch of the baselines around the peak. Too many points directly overload the system, too few make fitting unstable. If you are in fast exchange seeing only one peak, you may want to use individual slice extraction mode to make shorter overall baselines. Otherwise, I would start with 2-3 residues and see.

Back to Contents