idxof.m
Allows interaction specification by spin label rather than number.
Syntax
idx=idxof(sys,label)
Parameters
sys - Spinach input structure that
includes a sys.labels field
with unique labels
label - label whose index is to be returned
Outputs
idx - the index of the spin, an integer
Examples
The following spin system specification, where chemists had provided the parameters using their own labels, would have been laborious and error-prone without the ability to refer to spins by their chemical labels.
% Magnet induction
sys.magnet=9.3946;
% Spin system
sys.isotopes={'13C','13C','13C','13C','13C','13C',...
'1H','1H','1H','1H','1H','1H','1H','1H'};
sys.labels={'C1','C2','C3','C4','C5','C6',...
'Ha','Hb','Hc','Hd1','Hd2','He1','He2','He3'};
% Chemical shifts
inter.zeeman.scalar={120.05 130.70 66.90 160.50 191.70 26.80 ...
5.40 5.32 5.97 4.74 4.74 2.48 2.48 2.48};
% Scalar couplings (DFT signs and disambiguation)
inter.coupling.scalar=cell(14,14);
inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Ha')}= +155.90;
inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Hb')}= +160.04;
inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Hd1')}= +5.48;
inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Hd2')}= +5.48;
inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Hc')}= +159.05;
inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Hd1')}= -4.47;
inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Hd2')}= -4.47;
inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Ha')}= -3.14;
inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Hb')}= -0.85;
inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Hd1')}=+149.15;
inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Hd2')}=+149.15;
inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Hc')}= -13.87;
inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Ha')}= +4.63;
inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Hb')}= +7.97;
inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'Hd1')}= +3.20;
inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'Hd2')}= +3.20;
inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'He1')}= +1.60;
inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'He2')}= +1.60;
inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'He3')}= +1.60;
inter.coupling.scalar{idxof(sys,'C5'),idxof(sys,'He1')}= -6.69;
inter.coupling.scalar{idxof(sys,'C5'),idxof(sys,'He2')}= -6.69;
inter.coupling.scalar{idxof(sys,'C5'),idxof(sys,'He3')}= -6.69;
inter.coupling.scalar{idxof(sys,'C6'),idxof(sys,'He1')}=+129.73;
inter.coupling.scalar{idxof(sys,'C6'),idxof(sys,'He2')}=+129.73;
inter.coupling.scalar{idxof(sys,'C6'),idxof(sys,'He3')}=+129.73;
inter.coupling.scalar{idxof(sys,'Ha'),idxof(sys,'Hb')}= -1.30;
inter.coupling.scalar{idxof(sys,'Ha'),idxof(sys,'Hc')}= +17.40;
inter.coupling.scalar{idxof(sys,'Hb'),idxof(sys,'Hc')}= +10.39;
inter.coupling.scalar{idxof(sys,'Ha'),idxof(sys,'Hd1')}= -1.50;
inter.coupling.scalar{idxof(sys,'Ha'),idxof(sys,'Hd2')}= -1.50;
inter.coupling.scalar{idxof(sys,'Hb'),idxof(sys,'Hd1')}= -1.30;
inter.coupling.scalar{idxof(sys,'Hb'),idxof(sys,'Hd2')}= -1.30;
inter.coupling.scalar{idxof(sys,'Hc'),idxof(sys,'Hd1')}= +5.95;
inter.coupling.scalar{idxof(sys,'Hc'),idxof(sys,'Hd2')}= +5.95;
See also
chemshifts.m, cubic_lattice.m, dilute.m, get_coupling.m, gtensorof.m, iselectron.m, isnucleus.m, isoswap.m, kill_spin.m, nearest_spin.m, shift_iso.m, Spin system specification, Import,_export,_and_visualisation, Kernel_utilities
Version 2.8, authors: Ilya Kuprov