SpinEvolution Driver

TPPM Lineshapes

Problem

1) Table 1 of the SpinEvolution JMR paper compares the efficiency of SpinEvolution with that of SIMPSON in simulations of TPPM decoupling in CHn spin systems for a range of n values. In order to obtain data for this table, one may create an individual set of input files (main input file, coordinates, CS, and CSA files) for each n. This is not very convenient, however.

Make a single “universal” input file that can be used to run these simulations for any n. This file should load the coordinates from ch9.cor and CSA’s from ch9.csa. Hint: Use the extended molecule functionality and the -macro and -sys options.

2) The spin system size cannot be changed within a single simulation, so a separate computation for each n must be run even with the file you just created. This can be done manually, from a script, or from some other program. Do this from another SpinEvolution simulation. To be more specific: create an input file that runs such simulations for n from 1 to 6, loads the spectra obtained in these simulations, and saves them all in one file. Hints: Define n as a scan parameter and run the simulations for different n using the system() function. You will also need to use str(), save(), and load() functions.

 

Solution

1) tppmchn

****** The System *******
spectrometer(MHz)  500
spinning_freq(kHz) 15.625
channels           C13 H1
nuclei             *
atomic_coords      ch9.cor
cs_isotropic       0.0 -0.3 0.5 0.5 0.2 0.2 0.2 0.0 0.0 0.0
csa_parameters     ch9.csa
j_coupling         *
quadrupole         *
dip_switchboard    *
csa_switchboard    *
exchange_nuclei    *
bond_len_nuclei    *
bond_ang_nuclei    *
tors_ang_nuclei    *
groups_nuclei      *
******* Pulse Sequence ******************************
CHN 1
timing(usec)      (8)1024x1000
power(kHz)         0
phase(deg)         0
freq_offs(kHz)     0
CHN 2         
timing(usec)      (4   4)
power(kHz)        125 125
phase(deg)         0   15
freq_offs(kHz)     0   0
****** Variables **************************************
spinning_freq=15.625
n=8
t=500/spinning_freq/n
pulse_1_1_1=2*t
pulse_2_1_[1:2]=t
power_2_1_[1:2]=500/t
******* Options etc ***********************************
rho0               I1x
observables        F1p
EulerAngles        rep168
n_gamma            8
line_broaden(Hz)   2
zerofill           *
FFT_dimensions     1 Hz
options            -re -v0 -sysch{N}
********************************************************
-- This input file is run by the tppmx input file
-- The option -macro{N}=, where  is the number of protons, must be specified from the command line

 
2) tppmx (the driver)

****** The System *******
spectrometer(MHz)  *
spinning_freq(kHz) *
channels           H1
nuclei             H1
atomic_coords      *
cs_isotropic       *
csa_parameters     *
j_coupling         *
quadrupole         *
dip_switchboard    *
csa_switchboard    *
exchange_nuclei    *
bond_len_nuclei    *
bond_ang_nuclei    *
tors_ang_nuclei    *
groups_nuclei      *
******* Pulse Sequence ******************************
CHN 1
timing(usec)       0
power(kHz)         0
phase(deg)         0
freq_offs(kHz)     0
****** Variables **************************************

data=zeros(1024,7)

** The main loop: run tppmchn
scan_par n/1:6/
system("spinev tppmchn -macro{N}=" & str(n))

** Get the results from each loop cycle
data(:,1+n) = (load("tppmchn_re.dat"))(:,2)

** Get the labeling column (from the last cycle result)
data(:,1) =   (load("tppmchn_re.dat"))(:,1), data_re

** Save the all results in one file
save(data,"tppmx_re.dat"), data_re

legend = "CH$_1$,CH$_2$,CH$_3$,CH$_4$,CH$_5$,CH$_6$"
fig_options=f"tppmx_re.dat --legend [legend] --xlim=-9.5,9.5 --xlabel 'Frequency Offset, kHz' --title 'TPPM Lineshapes @ $\omega_1/2\pi=125$ kHz'"

******* Options etc ***********************************
rho0               I1x
observables        I1x
EulerAngles        *
n_gamma            *
line_broaden(Hz)   *
zerofill           *
FFT_dimensions     *
options            -o0 -split0 -py -pu