Difference between revisions of "Idxof.m"

From Spinach Documentation Wiki
Jump to: navigation, search
(Created page with "{{DISPLAYTITLE:function.m}} __NOTOC__ Allows interaction specification by spin label rather than number. ==Syntax== idx=idxof(sys,label) ==Arguments== sys - Sp...")
 
(Update function See also links and function index membership)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
−
{{DISPLAYTITLE:function.m}} __NOTOC__
+
{{DISPLAYTITLE:idxof.m}} __NOTOC__
 
Allows interaction specification by spin label rather than number.
 
Allows interaction specification by spin label rather than number.
  
Line 6: Line 6:
 
     idx=idxof(sys,label)
 
     idx=idxof(sys,label)
  
−
==Arguments==
+
==Parameters==
  
 
     sys    - Spinach input structure that
 
     sys    - Spinach input structure that
Line 36: Line 36:
 
   % Scalar couplings (DFT signs and disambiguation)
 
   % Scalar couplings (DFT signs and disambiguation)
 
   inter.coupling.scalar=cell(14,14);
 
   inter.coupling.scalar=cell(14,14);
−
   inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Ha')}= +155.90; % disambiguated
+
   inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Ha')}= +155.90;
−
   inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Hb')}= +160.04; % disambiguated
+
   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,'Hd1')}=  +5.48;  
 
   inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Hd2')}=  +5.48;  
 
   inter.coupling.scalar{idxof(sys,'C1'),idxof(sys,'Hd2')}=  +5.48;  
Line 43: Line 43:
 
   inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Hd1')}=  -4.47;
 
   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,'Hd2')}=  -4.47;
−
   inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Ha')}=  -3.14; % disambiguated
+
   inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Ha')}=  -3.14;
−
   inter.coupling.scalar{idxof(sys,'C2'),idxof(sys,'Hb')}=  -0.85; % disambiguated
+
   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,'Hd1')}=+149.15;
 
   inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Hd2')}=+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,'Hc')}=  -13.87;
−
   inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Ha')}=  +4.63; % disambiguated
+
   inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Ha')}=  +4.63;
−
   inter.coupling.scalar{idxof(sys,'C3'),idxof(sys,'Hb')}=  +7.97; % disambiguated
+
   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,'Hd1')}=  +3.20;
 
   inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'Hd2')}=  +3.20;
 
   inter.coupling.scalar{idxof(sys,'C4'),idxof(sys,'Hd2')}=  +3.20;
Line 69: Line 69:
 
   inter.coupling.scalar{idxof(sys,'Hb'),idxof(sys,'Hd2')}=  -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,'Hd1')}=  +5.95;
−
   inter.coupling.scalar{idxof(sys,'Hc'),idxof(sys,'Hd2')}=  +5.95;
+
   inter.coupling.scalar{idxof(sys,'Hc'),idxof(sys,'Hd2')}=  +5.95;
−
 
 
−
==Notes==
 
−
Further notes on good and bad practices.
 
  
 
==See also==
 
==See also==
−
Links to related functions and documentation sections.
+
[[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]]''
+
''Version 2.8, authors: [[Ilya Kuprov]]''

Latest revision as of 19:37, 6 June 2026

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