Copyright 20142020 by Evgueni Kovriguine
1D NMR line shapes
Contents
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 lineshape models
Specific models for onedimensional 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
 Umodel  the simplest implementation of the U model: a binary 1:1 binding process
 UmodelLRcorrection  the U model with correction factor for L/R
 U_model_1D_LRcorr_doublet  the UmodelLRcorrection model written to fit a doublet (approximation that a doublet may be fit as a sum of two singletsonly 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 UmodelLRcorrection with baseline correction and additional normalization.
 Bmacromodel threestate, two identical binding sites, uses microscopic equilibrium and rate constants
 U_R2_FWHHconstrmodel 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_FWHHconstrmodel  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 [modelname]_numeric.m and call it from [modelname].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 copypaste 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 pseudofirst order process
 These kinetic matrices are different from regular ODE matrices because we also need to convert all transitions into a pseudofirst order form by incorporating necessary additional concentrations with the constants.
 NOTE 1: dC/dt of NMRinvisible 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 (Rcontaining) species.
 For number of Rcontaining 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 workuse '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 'commonsense' 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:
 Spectra must be prepared using Exponential apodization window (EM in NMRPipe). BlochMcConnell equations describe lorentzian signals therefore any other apodization windows are not acceptable.
 If the heteronuclear spectrum was obtained using a constanttime experimentthe indirect dimension line shapes are (most likely) not useful because there was no free "induction decay" collected
due to constanttime acquisition mode of t_{1}. Experiments like that are most frequently performed to record protoncarbon
correlations.
 Zerofilling must be adjusted to have about 510 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.
 It is important that all spectra are processed with the same zerofilling 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
Frequently asked questions
Q: 
How many residues do you typically use for a MonteCarlo fit? I've been trying to do global fits with 1012 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 23 residues and see. 






Back to Contents