Calculation of pulse EPR spectra.
saffron(Sys,Exp) saffron(Sys,Exp,Opt) y = saffron(...) [x,y] = saffron(...) [x,y,p] = saffron(...) [x1,x2,y,p] = saffron(...)
See also the examples on how to use
This function calculates pulse EPR (ESEEM and ENDOR) spectra of powder and single crystals.
The output contain the abscissa data in
x (time in microseconds or frequency in MHz) and the simulated data in
y (time domain trace or ENDOR spectrum). For 2D experiments such as HYSCORE, the two axes are returned in
x2. For ESEEM simulations,
p contains the frequency abscissa (in MHz) in
p.f and the spectrum obtained by Fourier transform from the time domain data in
If you don't request any output,
saffron plots the simulated data.
The three input arguments to the function are
Sys: spin system (paramagnetic molecule)
Exp: experimental parameters
Opt: simulation options
Sys is a spin system structure. Fields available in
Sys include all needed for the construction of the spin Hamiltonian. Line broadening parameters used by other simulation functions (
gStrain, etc.) are not recognized, except
HStrain is used in excitation window computations (see
Exp.ExciteWidth) when orientation selection is wanted.
saffron supports any spin system with one electron spin (arbitrary S) and any number of nuclei.
If no orientation selection is required, then even the g tensor (and the microwave frequency) can be omitted. Only the nuclear parameters (and the field) need to be given:
Sys.Nucs = '14N'; Sys.A_ = [0.2 0.3]; Sys.Q = [-1 -1 2]*0.1;
You can provide the transverse and longitudinal relaxation times in the spin system structure:
[T1 T2]with two numbers, the longitudinal relaxation time constant T1 and the transverse relaxation time constant T2.
Exp contains the experimental parameters, most importantly the magnetic field and the pulse sequence.
[31 256]indicates 31 points in the first dimension and 256 points in the second dimension. If not given, default values are used.
dtapplies to both dimensions if it's only one number, alternatively one number for each dimension can be given, e.g.
dt = [0.024 0.008].
For orientation selection, the following additional parameters are needed.
ExciteWidthis its FWHM. The default is infinity. To obtain the full excitation with for a given orientation,
ExciteWidthis combined with
HStrainfrom the spin system structure.
For user-defined pulse experiments, the following fields are
[1 2]for two-pulse ESEEM and
[1 1 2 1]for HYSCORE.
saffronintegrates the signal over a small offset distribution. See
Opt.lwOffset. Some of the values in
tpcan be zero, in which case ideal pulses are used. E.g.
[0.200 0 0]is a three-pulse sequence with one selective finite-length pulse followed by two ideal pulses.
[0.2 0.2]for two-pulse ESEEM with starting τ of 200 ns, or similarly
[0.2 0.1 0.1 0.2]for HYSCORE. The delays are defined to go from the end of one pulse to the beginning of the next (unlike in Bruker spectrometers).
0indicates no incrementation,
1increment along first dimension,
2increment along second dimensions. Example:
[0 1 2 0]for HYSCORE and
[1 1]for two-pulse ESEEM.
'+'stands for electron coherence order +1,
'a'for 0 (alpha),
'b'for 0 (beta),
'0'for 0 (alpha or beta),
1for +1 or -1, and
'.'for anything. Examples:
'.ab.'selects the coherence transfer pathways in HYSCORE that leads to alpha/beta cross peaks.
To simulate single crystals, use
CrystalOrientationcontains the three Euler rotation angles that transform the crystal frame (C) to the lab frame (L). If
CrystalOrientationis empty or not specified, the full powder spectrum is computed.
Exp.CrystalOrientation = [0 0 0]; % single crystal, crystal z axis aligned with B0 Exp.CrystalOrientation = [0 pi/2 0]; % single crystal, crystal z axis perpendicular to B0 Exp.CrystalOrientation = [0 0 0; 0 pi/2 0]; % two crystals Exp.CrystalOrientation = ; % powder
Exp.CrystalSymmetry = 'P21/c'; % space group symbol Exp.CrystalSymmetry = 11; % space group number (between 1 and 230) Exp.CrystalSymmetry = 'C2h'; % point group, Schönflies notation Exp.CrystalSymmetry = '2/m'; % point group, Hermann-Mauguin notation
CrystalSymmetry is given, all symmetry-related sites in the crystal are included in the calculation. If
CrystalSymmetry is not given, space group 1 (P1, point group C1, one site per unit cell) is assumed.
The fields in the structure
Opt specify parameters for the simulation algorithm.
nKnotsgives the number of orientations on quarter of a meridian, i.e. between θ = 0 and θ = 90°. The default value is 31, corresponding to a 3° spacing between orientations. For highly anisotropic spectra, esp. for HYSCORE, the value often has to be increased to 181 (0.5° spacing) or beyond.
1. Determines whether
saffrongenerates the spectrum by binning all the peaks in the frequency domain or by evolution of all the complex exponentials in the time domain. The frequency-domain binning method is very fast and is therefore used as the default. However, it involves small rounding of peak positions, which can in some cases lead to imperfect phase interferences and small artifacts in the spectrum. The time-domain method is significantly slower, but accurate.
EndorMethod = 1: This is the default method. It is a sum-over-transitions method that applies bandwidth-limited rf pi pulses (using single-transition operators in the eigenbasis of the nuclear sub-Hamiltonians) on each nuclear transition in turn. It is able to reproduce inter-nuclear cross suppression effects (implicit triple). All rf pulses are modelled as 180 degree pulses on all allowed nuclear transitions, independent of the nature of the nucleus.
EndorMethod = 2: This is an alternative method. It uses a brute-force rf sweep approach: It loops over every frequency on the rf axis and calculates the echo amplitude using the same rf pulse operators as
EndorMethod = -1: This is the legacy method (default prior to version 5.0.20). For one nucleus, it is equivalent to
EndorMethod=1. For multiple nuclei, it gives wrong results: With
ProductRule=1, cross suppression effects are not modelled, and with
ProductRule=0, peak positions are wrong.
1indicates that the HYSCORE spectrum should be plotted with a logarithmic intensity scale. If
0(the default), a linear scale is used.
ZeroFillFactor=4, a 256-point array is padded to 1024 points.
For both ESEEM and ENDOR,
saffron uses matrix-based methods similar to those employed by Mims (1972) to compute frequencies and amplitudes of all peaks. With these peaks, a spectrum histogram is constructed, from which the time-domain signal is obtained by inverse Fourier transform.
For the pre-defined sequences,
saffron assumes ideal pulses with standard flip angles (two-pulse ESEEM: 90°-180°, three-pulse ESEEM 90°-90°-90°, HYSCORE 90°-90°-180°-90°).
For systems with several nuclei,
saffron by default simulates without using product rules, but can employ them if wanted (see Options).
For high-electron spin systems, all terms in the zero-field splitting, even the nonsecular ones, are taken into account.
To generate the spectrum from the time-domain signal,
saffron performs (1) baseline correction, (2) apodization with a Hamming window, (3) zero-filling, and (4) FFT.
All the theory is described in
nucfrq2d, salt, pepper