idxof.m

From Spinach Documentation Wiki
Jump to: navigation, search

Allows interaction specification by spin label rather than number.

Syntax

    idx=idxof(sys,label)

Arguments

   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

Spin system specification

Import,_export,_and_visualisation

Spin system editing


Version 2.8, authors: Ilya Kuprov