cardamom

Simulation of slow-motion CW-EPR spectra from time-domain trajectories

Syntax
[B,spc] = cardamom(Sys,Exp)
[B,spc,FID,t] = cardamom(Sys,Exp)
[...] = cardamom(Sys,Exp,Par)
[...] = cardamom(Sys,Exp,Par,Opt)
[...] = cardamom(Sys,Exp,Par,Opt,MD)
Description

cardamom simulates a CW-EPR spectrum using trajectories of orientations, which are obtained from either stochastic dynamics simulations or molecular dynamics (MD) simulations. If stochastic dynamics is to be used, then cardamom uses stochtraj_diffusion or stochtraj_jump to simulate the orientational trajectories required to calculate a cw EPR spectrum. If MD is to be used, then cardamom requires that the information and processed output of the MD simulation (which can itself be done by using mdload) be provided, including the orientational trajectories.

cardamom accepts up to five input arguments

If no input argument is given, a short help summary is shown (same as when typing help cardamom).

Up to four output arguments are returned:

The first two output arguments B and spc are mandatory, whereas the last output argument pair TDSignal and t is optional.

Input: System dynamics

Sys is a structure containing the dynamic properties for generating the stochastic rotational trajectories. Many of its fields overlap with those of chili. This allows the user to easily simulate EPR spectra in both frequency and time domains for easy comparison.

Diffusion model

A Brownian diffusion model of rotational motion can be used for local dynamics by declaring Par.Model='diffusion'. For the timescale(s) of motion, one of the fields tcorr, logtcorr, Diff or logDiff should be given. If more than one of these is given, the first in the list logtcorr, tcorr, logDiff, Diff takes precedence over the other(s).

Sys.tcorr
Rotational correlation time, in seconds.

For example,

Sys.tcorr = 1e-9;         % isotropic diffusion, 1ns correlation time
Sys.tcorr = [5 1]*1e-9;   % axial anisotropic diffusion, 5ns around x and y axes, 1ns around z
Sys.tcorr = [5 4 1]*1e-9; % rhombic anisotropic diffusion

Instead of tcorr, Diff can be used, see below. If tcorr is given, Diff is ignored. The correlation time tcorr and the diffusion rate Diff are related by tcorr = 1/(6*Diff).

Sys.logtcorr
Base-10 logarithm of the correlation time, offering an alternative way to input the correlation time. If given, tcorr, logDiff and Diff are ignored.
Use this instead of tcorr for least-squares fitting with esfit.
Sys.Diff
Rotational diffusion rates (principal values of the rotational diffusion tensor), in second-1. Diff is ignored if logtcorr, tcorr or logDiff is given.
Sys.logDiff
Base-10 logarithm of Diff. If given, Diff is ignored.
Use this instead of Diff for least-squares fitting with esfit.

It is also possible to specify an orientational potential to simulate restricted diffusion. cardamom accomplishes this by representing the orientational potential function using either a series of Wigner D-functions (see reference for details), a numerical 3D array, or a function handle. To take advantage of one of these feature, use Sys.Potential and assign to it one of the following:

Jump model

A jump model with a discrete number of orientational states can be used for local dynamics by declaring Par.Model='jump'. To dictate the inter- and intra-state dynamics, either TransRates or TransProb can be given, with the former taking precedence if both are given.

Sys.TransRates

Transition rate matrix of size (nStates,nStates), with rates in seconds-1. The elements of Sys.TransRates must satisfy the following properties:

Sys.TransProb
Transition probability matrix of size (nStates,nStates). The elements of Sys.TransProb must satisfy the following properties:
Sys.Orientations
An array of Euler angles representing the orientation of each state, size (nStates,1) or (1,nStates).

MD model

An MD model can also be employed, where MD trajectories are used to model local dynamics and obtain additional trajectories. There are three types of MD model that make use of MD trajectories in different ways: Par.Model='MD-direct', where orientational trajectories are directly extracted from the MD trajectory atomic coordinate output; Par.Model='MD-HBD', where the orientations and dynamics of the paramagnetic spin system are used to build and simulate trajectories from a coarse-grained, hindered Brownian dynamics (HBD) model; and Par.Model='MD-HMM', where the dihedral angles of the spin label are projected onto a hidden Markov model (HMM), from which jump trajectories of time-averaged, state-dependent Hamiltonians are simulated.

Input: Simulation parameters

Par is a structure containing the parameters for generating the stochastic orientational trajectories. The most important field is the model choice:

Par.Model

Specifies the motional model to use. The following are available:

If any of the MD-based models are used, an MD trajectory (processed via mdload) has to be provided in the fifth input, MD.

Three additional mandatory parameters are the spatial dynamics time step dtSpatial, the spin dynamics time step dtSpin, and the number of steps nSteps to use for the calculation of the free-induction decay (FID):

Par.dtSpatial

The time step of spatial propagation (rotational dynamics), in seconds. The value of this parameter depends on the motional dynamics of the system, typically ≤1 ns.

Par.dtSpin

The time step of spin propagation (FID calculation), in seconds. For a nitroxide at X-band frequencies, a typical value is 1-2 ns. For higher fields and frequencies, it should be shortened.

Par.nSteps

The number of time steps for the spin propagation (FID calculation). For a nitroxide at X-band frequencies, a reasonable value is 250. For other systems and/or at other fields/frequencies, the best number will be different.

Lastly, the trajectory settings are used to specify the starting orientations for the trajectories using triplets of Euler angles in OriStart = [alpha;beta;gamma], which correspond to the Euler angles α, β, and γ; how many trajectories to simulate, nTraj; and a set of orientations in the lab frame for a powder-like summation, Orients.

Par.OriStart

The Euler angles corresponding to the starting orientations for trajectories, in radians.

Par.nTraj

The total number of trajectories to simulate.

Par.Orients

Orientations of the system in the lab frame (powder-like summation).

Par.nOrients

The total number of orientations in the lab frame.

If only one set of starting orientations OriStart is given and nTraj is greater than one, then this starting orientation will be repeated for each trajectory. If nTraj is not provided, only one trajectory will be simulated. If OriStart is not provided, then for the case of unrestricted diffusion, a number of starting orientations equal to nTraj will be chosen from a uniform random distribution over the unit sphere, where α, β, and γ are sampled from [0,2π), [0,π), and [0,2π), respectively. If one is simulating using restricted diffusion (Sys.Potential is present), then OriStart will be sampled from the equilibrium distribution corresponding to the potential.

For the lab orientations Orients, if these are not specified but nOrients is declared, then nOrients orientations will be chosen using a spiral grid on the unit sphere. If neither are provided, then the number of lab orientations to sum over will be set equal to Par.nTraj and they will be chosen from a spiral grid.

Input: Simulation options

Opt is a structure with additional simulation options.

Opt.Verbosity

Determines how much information cardamom prints to the screen. If Opt.Verbosity=0, is is completely silent. Opt.Verbosity=1 prints details about the progress of the computation.

Opt.Method

Determines the method with which the time-dependent spin Hamiltonian is constructed and the spin density matrix propagated. The two possible values are 'fast' and 'ISTO'.

Opt.specCon

Termination tolerance for simulating spectra at different lab orientations. If true, cardamom will keep doubling the number of lab orientations in the spectral summation until the RMSD between the last sum and the new sum, say N vs. 2N orientations, changes by less than 10%.

Opt.FFTWindow
If true (default), a windowing function is applied to the simulated FID prior to calculating the FFT to obtain the spectrum. If false, no windowing function is used.
Input: Molecular dynamics options

MD is a structure with properties and options regarding the usage of MD simulation trajectories to simulate an EPR spectrum.

MD.dt

Time step between snapshots in the MD simulation trajectory, in seconds. It could be necessary to rescale this if the model for the spin label's environment molecules does not yield the correct time scale for diffusion, e.g. TIP3P water, where the time step is often increased by a factor of 2.5.

MD.RProtDiff

An array of size 3x3xnTrajxnSteps containing the rotation matrices representing the global rotational diffusion of the protein.

MD.FrameTraj

An array of size 3x3xnTrajxnSteps containing the cartesian coordinates of the spin label tensor frame's x-, y-, and z-coordinate frame axis vectors with respect to the MD simulation box frame, in .

MD.FrameTrajwrtProt

Same as FrameTraj, but without global rotational diffusion of the host protein, in .

MD.removeGlobal

If set to true (default), cardamom will use FrameTrajwrtProt to simulate a spectrum. If set to false, FrameTraj will be used instead.

MD.DiffGlobal

Optional rotational diffusion coefficient for simulating stochastic isotropic global rotational diffusion, which will be coupled to the local diffusion obtained from the MD simulation trajectory.

HMM

Optional HMM model parameters to be used when setting Par.Model = 'MD-HMM'. If used, please set it equal to the output argument from mdhmm.

Example

To simulate a cw EPR spectrum of an 14N nitroxide spin label with a rotational correlation time of 5 ns using a , use

clear
Sys.g = [2.009, 2.006, 2.002];
Sys.Nucs = '14N';
Sys.A = unitconvert([6,6,36]/10,'mT->MHz');    % hyperfine tensor, G -> MHz
Sys.tcorr = 5e-9;               % 5 ns rotational correlation time

Exp.mwFreq = 9.4;               % microwave frequency, in GHz

Par.Model = 'diffusion';        % rotational diffusion model
Par.dtSpatial = 1e-9;           % spatial propagation time step, in s
Par.dtSpin = 1e-9;              % spin propagation time step, in s
Par.nSteps = 250;               % number of spin propagation time steps

[B,spc] = cardamom(Sys,Exp,Par);

To simulate a CW EPR spectrum using very slow hindered Brownian diffusion, with an orientational potential with coefficient λ20,0 = 1.0 and a 250-ns long FID, use

clear
Sys.g = [2.009, 2.006, 2.002];
Sys.Nucs = '14N';
Sys.A = unitconvert([6,6,36]/10,'mT->MHz');    % hyperfine tensor, G -> MHz
Sys.tcorr = 50e-9;  % rotational correlation time, seconds
Sys.Potential = [2, 0, 0, 1.0];

Exp.mwFreq = 9.4; % GHz

Par.Model = 'diffusion';
Par.dtSpatial = 1e-9; % seconds
Par.dtSpin = 1e-9; % seconds
Par.nSteps = 250;
Par.nTraj = 400;

[B,spc] = cardamom(Sys,Exp,Par);

To simulate a cw EPR spectrum using an MD trajectory with a direct model (we assume that the MD trajectory has already been processed and output to the variable MD using mdload), enter

clear
Sys.g = [2.009, 2.006, 2.002];
Sys.Nucs = '14N';
Sys.A = unitconvert([6,6,36]/10,'mT->MHz');    % hyperfine tensor, G -> MHz

Exp.mwFreq = 9.4; % GHz

Par.Model = 'MD-direct';
Par.dtSpin = 1e-9; % seconds, Par.dtSpatial is not needed for MD-direct
Par.nSteps = 250;
Par.nOrients = 400;

[B,spc] = cardamom(Sys,Exp,Par,[],MD);
See also

chili, stochtraj_diffusion, stochtraj_jump, mdload