ESEEM Time domain signal

A place to report and discuss potential bugs
Post Reply
Mantas_Sim
Newbie
Posts: 7
Joined: Mon Sep 21, 2015 2:12 pm

ESEEM Time domain signal

Post by Mantas_Sim »

Hello!

I am trying to use ES:Saffron to simulate the time domain signals of ESEEM experiments. My spin system consists of Cu(II) paramagnetic center surrounded by weakly coupled deuterium nuclei. While trying to simulate the time trace, I have encountered 3 potential bugs.

1. Since I have to take into account many weakly coupled nuclei, I use Opt.ProductRule = 1 feature so the simulations run faster. However, I recognized that if in the list of nuclei the weakly coupled nucleus comes after the core nucleus (in this case Cu nucleus) and the ProductRule = 1, then the simulation does not work. If the ProductRule = 0, then there is no problem. Please see the following code as an example.

Code: Select all

clc;
clear;

Exp.Sequence = '3pESEEM';
Exp.Field = 340.2;
Exp.dt = 0.016;
Exp.tau = 0.224; %in us
Exp.T = 0.08; % in us
Exp.ExciteWidth = 30; % in MHz
Exp.mwFreq = 9.738;
Exp.nPoints = 500;
Opt.nKnots = 101;
Opt.TimeDomain = 1;
Opt.ProductRule = 1;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Sys1 = struct('S',1/2,'g',[2.046 2.046 2.279]);
Sys1.Nucs = '2H,63Cu';  %WORKS FINE
Sys1.A = [-0.553 -0.553 1.128; 96 96 570];
Sys1.Q = [0 0 0;0 0 0];
Sys1.AFrame = [0 10 0;0 0 0]*pi/180;
Sys1.QFrame = [0 0 0;0 0 0]*pi/180;

[x1, y1] = saffron(Sys1,Exp,Opt);

figure;
plot(x1, real(y1));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Sys2 = struct('S',1/2,'g',[2.046 2.046 2.279]);
Sys2.Nucs = '63Cu,2H'; %DOES NOT WORK
Sys2.A = [96 96 570; -0.553 -0.553 1.128];
Sys2.Q = [0 0 0;0 0 0];
Sys2.AFrame = [0 0 0;0 10 0]*pi/180;
Sys2.QFrame = [0 0 0;0 0 0]*pi/180;

[x2, y2] = saffron(Sys2,Exp,Opt);

figure;
plot(x2, real(y2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2. I tried to simulate 2pESEEM time traces as well and I recognized an interesting problem. It is known that the 2pESEEM time domain signal of several coupled nuclei can be decomposed into algebraic product of time domain signals from each nucleus. The so called product rule. To save time, I tried to simulate 2pESEEM signals of each nuclei separately and in the end just multiply time traces. I observed that this works fine for I = 1/2 nuclei such as 1H, but however fails for I = 1 nuclei (e.g. 2H). In Schweiger's book it is written that the product rule should apply for nuclear spins I > 1/2. So it seems that there is a contradiction. Or maybe I am just missing some important detail here?

3. The last issue is related to the value of the time domain signal without ESEEM modulation. I suppose that if there is no modulation (modulation depth k = 0), I should get unity for all time values. However, EasySpin yields something like 0.037. Most likely this is not a bug, but I want to be sure if this value corresponds to 1 and this is just a matter of scaling?

I use EasySpin 5.0.9 and Matlab 7.11.0.584 (R2010b).

Thank you!
Stefan Stoll
EasySpin Creator
Posts: 1108
Joined: Mon Jul 21, 2014 10:11 pm
Location: University of Washington

Re: ESEEM Time domain signal

Post by Stefan Stoll »

1. This is a bug. Thanks for noticing and reporting. It's fixed in version 5.0.10, which you can download now.

2. Please post a short script that demonstrates this problem. (Verify it with 5.0.10, since it could be that the bug in 1. was responsible for this problem as well).

3. The time domain signal is the echo amplitude. In the absence of modulation, it reflects the number of spins contributing to the echo and therefore depends on field and frequency and on the excitation width. If you increase the excitation width, the echo amplitude will increase.
Mantas_Sim
Newbie
Posts: 7
Joined: Mon Sep 21, 2015 2:12 pm

Re: ESEEM Time domain signal

Post by Mantas_Sim »

Dear Stefan,

thank you for the comments!
Stefan Stoll wrote: 1. This is a bug. Thanks for noticing and reporting. It's fixed in version 5.0.10, which you can download now.
Indeed the Opt.ProductRule = 1 option works fine in the new ES version. Thanks!
Stefan Stoll wrote: 2. Please post a short script that demonstrates this problem. (Verify it with 5.0.10, since it could be that the bug in 1. was responsible for this problem as well).
Here goes the script. As far as I know, in the 2pESEEM the time trace originating from two ligand nuclei is simple algebraic multiplication of time traces from each nucleus. It works fine with ES if ligand nuclei are I = 1/2 (exchange 2H with 1H in the script). But results for I > 1/2 differ. However, I am not sure whether I am right assuming that this rule should apply for I > 1/2 as well. So it could be that it is just a bug in my knowledge but not in the ES.

Code: Select all

clc;
clear;

Exp.Sequence = '2pESEEM';
Exp.Field = 300;
Exp.dt = 0.008;
Exp.tau = 0.200; %in us
Exp.ExciteWidth = 30; % in MHz
Exp.mwFreq = 10;
Exp.nPoints = 500;
Opt.nKnots = 101;
Opt.TimeDomain = 1; 
Opt.ProductRule = 1;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Sys1.Nucs = '2H,63Cu';
Sys1.S = 1/2;
Sys1.A = [-2.5 -2.5 5; 96 96 570];
Sys1.g = [2.046 2.046 2.279];
Sys1.Q = [0 0 0; 0 0 0];
Sys1.AFrame = [0 30 0; 0 0 0]*pi/180;
[spc.x, spc.y1] = saffron(Sys1,Exp,Opt);


Sys2.Nucs = '2H,63Cu';
Sys2.S = 1/2;
Sys2.A = [-2.5 -2.5 5; 96 96 570];
Sys2.g = [2.046 2.046 2.279];
Sys2.Q = [0 0 0; 0 0 0];
Sys2.AFrame = [0 50 0; 0 0 0]*pi/180;
[spc.x, spc.y2] = saffron(Sys2,Exp,Opt);

spc.y = spc.y1.*spc.y2;        % to be compered with spc.y3 below
spc.y = spc.y/max(spc.y);

figure;
plot(spc.x,spc.y);
hold on;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Sys3.Nucs = '2H,2H,63Cu';
Sys3.S = 1/2;
Sys3.A = [-2.5 -2.5 5; -2.5 -2.5 5; 96 96 570];
Sys3.g = [2.046 2.046 2.279];
Sys3.Q = [0 0 0; 0 0 0; 0 0 0];
Sys3.AFrame = [0 30 0; 0 50 0; 0 0 0]*pi/180;
[spc.x3, spc.y3] = saffron(Sys3,Exp,Opt);


spc.y3 = spc.y3;
spc.y3 = spc.y3/max(spc.y3);

plot(spc.x3,spc.y3,'red');
Stefan Stoll wrote: 3. The time domain signal is the echo amplitude. In the absence of modulation, it reflects the number of spins contributing to the echo and therefore depends on field and frequency and on the excitation width. If you increase the excitation width, the echo amplitude will increase.
Thank you for the explanation.
Stefan Stoll
EasySpin Creator
Posts: 1108
Joined: Mon Jul 21, 2014 10:11 pm
Location: University of Washington

Re: ESEEM Time domain signal

Post by Stefan Stoll »

The EasySpin calculations are correct. And you are correct that the product rule holds for nuclei of any spin.

However, in a powder spectrum, you have to apply the product rule for each orientation separately - before you do the powder average! Multiplying the powder ESEEM traces of the single nuclei is incorrect. As it happens, the resulting error is small if the modulation depth is small, so it works ok for 1H with small hyperfine coupling. But as soon as you switch to 2H with deep modulations, the error becomes apparent.
Post Reply