g2spinach.m

From Spinach Documentation Wiki
Jump to: navigation, search

Makes Spinach data structures from parsed outputs of electronic structure theory packages, such as Gaussian and ORCA. This function converts the information obtained by parsing an electronic structure theory log file into the form that Spinach gateway function create.m understands.

Syntax

    [sys,inter]=g2spinach(props,particles,references,options)

Parameters

    props      - the output of gparse.m function

    particles  - a cell array of the following form:

                         {{'H','1H'},{'N','15N'}...}

                 giving the list of elements and isotopes that
                 should be imported; all other spins will be
                 ignored. If the isotope list contains
                 an electron, e.g. {{'E','E'},{'H','1H'}...}, 
                 then EPR mode is assumed - chemical shielding 
                 and scalar couplings are ignored, but g-tensor
                 and hyperfine couplings are included.

    references - a vector of absolute shielding values for 
                 the reference substances that are to be
                 placed at zero ppm chemical shift; you ne-
                 ed to run separate electronic structure 
                 theory calculations for those substances
                 wuth the same method. Absolute isotropic 
                 shielding values for tetramethylsilane in
                 vacuum are:

                  GIAO                  13C       1H 
                  B3LYP/6-31G*        189.6621  32.1833 
                  B3LYP/6-311+G(2d,p) 182.4485  31.8201 
                  HF/6-31G*           199.9711  32.5957 
                  HF/6-311+G(2d,p)    192.5828  32.0710

                  CSGT                  13C       1H 
                  B3LYP/6-31G*        188.5603  29.1952 
                  B3LYP/6-311+G(2d,p) 182.1386  31.7788 
                  HF/6-31G*           196.8670  29.5517 
                  HF/6-311+G(2d,p)    192.5701  31.5989

                 This setting is ignored when electrons are
                 present in the system.

    options.min_j    -  scalar coupling threshold in Hz. J-coup-
                        lings smaller than this value will be 
                        ignored in the NMR mode.

    options.min_hfc  -  hyperfine coupling threshold in Hz. Hy-
                        perfine tensors with a Frobenius norm 
                        smaller than this value will be ignored
                        in the EPR mode.

    options.purge    -  if set to 'on' in EPR mode, removes the
                        spins with hyperfine coupling below 
                        options.min_hfc from the spin system.

    options.no_xyz   -  if set to 1, causes the function to ig-
                        nore the coordinate information and
                        only keep the interaction tensors

Returns

The following subfields of sys and inter data structures are set by this function:

    sys.isotopes          - Nspins x 1 cell array of strings

    inter.coordinates     - Nspins x 3 dense matrix, Angstrom. Not
                            returned if there is an electron in the
                            isotope list (in the EPR case it is not
                            a good idea to use the molecular 
                            coordinates for spins).

    inter.zeeman.matrix   - Nspins x 1 cell array of 3x3 matrices,
                            ppm for nuclei, g-tensor for electrons.
                            Zero interactions have zero matrices.

    inter.coupling.matrix - Nspins x Nspins cell array of 3x3 matrices,
                            all in Hz. Zero interactions have zero 
                            matrices.

    inter.coupling.scalar - Nspins x Nspins cell array of scalar
                            couplings, all in Hz. Zero couplings are
                            returned as zeros.

    inter.spinrot.matrix  - spin-rotation coupling tensors for
                            each nucleus

Examples

A typical example of a Spinach input that uses data import from a Gaussian log appears below.

    % Read the spin system properties (vacuum DFT calculation)
    options.min_j=1.0;
    [sys,inter]=g2spinach(gparse('../standard_systems/sucrose.log'),{ {'H','1H'} },31.8,options);
    
    % Magnet field
    sys.magnet=14.1;
    
    % Basis set
    bas.formalism='sphten-liouv';
    bas.approximation='IK-2';
    bas.connectivity='scalar_couplings';
    bas.prox_level=2;
    
    % Relaxation theory parameters
    inter.relaxation={'redfield'};
    inter.rlx_keep='secular';
    inter.tau_c=1e-9;
    
    % Spinach housekeeping
    spin_system=create(sys,inter);
    spin_system=basis(spin_system,bas);
    
    % Sequence parameters
    parameters.spins={'1H'};
    parameters.rho0=state(spin_system,'L+','1H','cheap');
    parameters.coil=state(spin_system,'L+','1H','cheap');
    parameters.decouple={};
    parameters.offset=1800;
    parameters.sweep=5000;
    parameters.npoints=8192;
    parameters.zerofill=65536;
    parameters.axis_units='ppm';
    parameters.invert_axis=1;
    
    % Simulation
    fid=liquid(spin_system,@acquire,parameters,'nmr');
    
    % Apodization
    fid=apodization(fid,'crisp-1d');
    
    % Fourier transform
    spectrum=fftshift(fft(fid,parameters.zerofill));
    
    % Plotting
    plot_1d(spin_system,real(spectrum),parameters);

Further examples of Gaussian inputs: gaussian_a.txt, gaussian_b.txt, gaussian_c.txt - note that the extra printing flag (#p) should always be present.

Notes

As a reference, here are absolute isotropic shielding values for TMS in vacuum:

    GIAO                  13C       1H 
    B3LYP/6-31G*        189.6621  32.1833 
    B3LYP/6-311+G(2d,p) 182.4485  31.8201 
    HF/6-31G*           199.9711  32.5957 
    HF/6-311+G(2d,p)    192.5828  32.0710
    CSGT                  13C       1H 
    B3LYP/6-31G*        188.5603  29.1952 
    B3LYP/6-311+G(2d,p) 182.1386  31.7788 
    HF/6-31G*           196.8670  29.5517 
    HF/6-311+G(2d,p)    192.5701  31.5989

For chemical shift tensors, the anisotropies computed with electronic structure methods (DFT, MP2, etc.) are usually satisfactory for the purposes of relaxation theory, but the isotropic chemical shifts can differ significantly from the experimental values. After the import is complete, the isotropic parts of chemical shift tensors may be replaced with their experimental values using shift_iso.m function.

See also

gparse.m, oparse.m, create.m, shift_iso.m, c2spinach.m, cyprinol.m, fatty_acid.m, gissmo2spinach.m, karplus_fit.m, killcross.m, killdiag.m, merge_inp.m, methyl_group.m, nuclacid.m, ocparse.m, parsexml.m, protein.m, read_bmrb.m, read_pdb_nuc.m, read_pdb_pro.m, v2spinach.m, weblab2nqi.m, x2spinach.m, Import,_export,_and_visualisation

Version 1.9, authors: Ilya Kuprov