UCL Division of Biosciences


2-state binding simulation

This is an illustrated walkthrough of the example script, examples/simulations/example1_twostate.m.

Outline of analysis procedure

TITAN is designed with a flexible core of simulation and fitting routines, which can be combined with a variety of pulse programs and binding models.

Jigsaw schematic of TITAN workflow

A variety of binding models are available. In this example we are going to simulate a simple two-state protein-ligand binding reaction:

P + L <=> PL

The outline of the simulation process is as follows:

  1. Select a pulse program object and set up the associated parameters (e.g. field strength, spectral width, number of points...).
  2. Select a binding model describing the 2-state binding reaction, and prepare a series of titration point objects specifying the protein and ligand concentrations across the titration experiment.
  3. Set up appropriate model parameters for the binding model, specifying the dissociation constant and the dissociation rate.
  4. Create a spin system object containing values for the chemical shifts and linewidths (R2 values) associated with each state in the binding model (i.e. free/bound protein).
  5. Create a Simulator object based on the input from previous steps, and use it to simulate the titration spectra.
  6. Plot the results.

Load the simulation script and add TITAN to the MATLAB path

  • Load the example script, examples/simulations/example1_twostate.m in the MATLAB editor.
  • Example scripts are written in sections, separated by %% marks, which should be run sequentially, inspecting the input and output at each stage. Each section can be executed using the Run Section command. The remainder of this tutorial is given to a walkthrough of these sections.

Example two-state analysis script and MATLAB sections
  • TITAN code must be in a location known to MATLAB. Use the pathtool to add the titan directory to the path, and then close (or save first to make the addition permanent):

Setting up the MATLAB path with pathtool

Set up a pulse program

  • Pulse program objects contain the code to simulate the evolution of  magnetisation for a given experiment type. They must be initialised with experimental acquisition parameters such as magnetic field strength, spectral width, number of points, etc.
  • Pulse programs are prepared based on a collection of parameters (technically, arranged in a structure), e.g.:

Examining the pulse program setup structure
  • Currently, HSQC, HMQC and CPMG-HSQC pulse programs are implemented in TITAN. They can be selected by modifying the final line above:
  • Once you've run through the whole tutorial, try coming back and comparing the effect of different pulse programs! Also see what happens when you vary the magnetic field strength ('setup.bf')!

Create the binding model

  • Binding models are objects that represent the chemical behaviour of species, and which translate concentrations and model parameters such as Kd values into exchange rates for NMR calculations.
  • A variety of binding models are available. Here we're going to use bmTwoState, which describes the simple two-state binding process detailed above, and can be declared and initialised:
  • Online help is available for all objects and functions in TITAN. For example, to find out more about the two-state binding model, such as the parameters it requires, run 'help bmTwoState':
  • Examining the new binding model object in the command window can also yield some information:

Set up titration conditions

  • Titration point structures provide a list of protein and ligand concentrations to be simulated, together with individual spectral parameters such as the number of scans `ns` and (optionally) the receiver gain `rg`.
  • From the documentation above, we can see that our two-state binding model requires titration points to specify `P0`, the protein concentration, and `L0`, the ligand concentration.
  • N.B. the units chosen here for protein and ligand concentrations must be used consistently elsewhere in the script!
  • For our simulation, we are going to use a protein concentration of 100 uM, and a range of ligand concentrations from 0 to 220 uM. Every spectrum has an equal number of scans (set to an arbitrary value of 1 because only relative intensities are ultimately important).
  • Note the final line in the code above: it is required to combine the various NMR parameters and concentrations into overall intensity scaling factors, for comparison between experiments.
  • The collection of titration points can be examined in the parameter editor:

Examining the collection of titration points

Create a spin system and set chemical shifts

  • We are going to simulate exchange for a single residue, with free chemical shifts of 7.55 ppm (1H) and 114 ppm (15N), and bound chemical shifts of 7.45 ppm (1H) and 118 ppm (15N). We will assign all states a uniform R2 (linewidth) of 20 s-1.
  • Each residue is represented in TITAN as a SpinSystem, which completely specifies all chemical shift and relaxation information, for every state in the binding model. Having set up our chemical shifts above, it is straightforward to create a list of spin systems:
  • Like other objects, the collection of spin systems can be examined in the variable editor:

Examining spin systems in the variable editor
  • Try experimenting and changing the chemical shifts or linewidths!

 Set up binding model parameters

  • The required parameters depends on the choice of binding model. For a simple two-state binding reaction, the dissociation constant, Kd, and dissociation rate, koff, need to be specified:
  • Once parameters have been selected, they must be combined into a model parameters object using the binding model created earlier:
  • Try experimenting and varying the Kd and koff!

Run the simulation

  • Simulations are carried out using a Simulator object, prepared with the list of titration points, the binding model, and the pulse program parameters. Once the simulator is initialised, a cell array containing the simulated 2D spectra can then be calculated:

Plot the results

  • The simulated spectra can be plotted in any convenient way using the full MATLAB functionality. A simple plotting routine is included in the example scripts to produce a series of contour plots, overlaid with the pre-defined positions of the free and bound states:
  • Congratulations! You've simulated your first titration series:

Simulated spectra contour plots

Varying the model parameters

  • Try exploring variations in model parameters, magnetic field strength, chemical shifts, etc... For example, if the dissociation rate is increased ten-fold to 1000 s-1, fast-exchange behaviour is clearly observed:

Simulation with fast exchange conditions
  • In contrast, if the dissociation rate is reduced ten-fold to 10 s-1, slow exchange behaviour is observed:

Simulation with slow exchange conditions

Next steps

  • Now try exploring some of the other examples, including simulation of more complex binding models such as protein dimerisation, or examine the fitting of experimental data for the interaction of FBP and Nbox.