In fact, there are three separate approaches:

- QM+pEXAFS, i.e. QM suplemented by polEXAFS (or an automatic EXAFS-refinement protocol, where QM is used to suplement the EXAFS data to get a full set of coordinates, like MM is used in crystallographic refinement).
- QM/MM+pEXAFS, i.e. QM/MM suplemented by EXAFS inside a full
protein.

- ComQum-X +pEXAFS, i.e. quantum-refinement suplemented by polEXAFS.

The method will be described in:

- U. Ryde, X. Li, P. E. M. Siegbahn, E. Sproviero, V. Batista (2010), to be submitted.

All executables are linked to /away/bio/Bin or /away/bio/Bin/Linux.

- Currently, the program is designed for exerimental data, provided
only in R space.

- Start from Turbomole files of the desired QM system.

Run the program turbo2pfeff to get 3 feff[123].inp files.

The program reads the file transform to perform some coordinate transformations; This is partly hardcoded now (some of the transformations are double transformations), so it will probably not fully work for other proteins.

Currently, the parameters of feff are hard coded, so you need to change the code to modify the parameters.

Consider to change the keywords TITLE, RPATH, NLEG, CRITERIA, and HOLE, (cf. the FEFF page).

It is not possible calculate Debye-Waller factors. Instead, we use fixed factors.

- Run cqpefixenergy to get all three polarised EXAFS calculations.

This program will run feff83 three times. This is the only version of FEFF that seems to work for polarised EXAFS.

The only output of feff83 needed are the xmu.dat file, which then is postprocessed by other programs (xmu2chi and ifeffit) to finally obtain a Chi^2 estimate and a R-factor.

The file all.dat contains the three experimental and calculated spectra, ready to be plotted by gnuplot

Template commands for gnuplot are:

plot "all.dat" using 1:2 with lines,"all.dat" using 1:5 with lines

plot "all.dat" using 1:3 with lines,"all.dat" using 1:6 with lines

plot "all.dat" using 1:4 with lines,"all.dat" using 1:7 with lines

To run this command, you need a comqum.dat file with the following lines:

$weight_exafs

1.0

$weight_qm

1.0

$r_range

1.0 4.3

$e0

6543.3

$expfile

pexafs_exp.txt

$r_range gives rmin and rmax, used in the calculation of chi^2.

$e0 is E0

$expfile is the name of the file with the experimental data

This is all needed to do single-point energy calculations

- To run a geometry optimisation, you need to add some additional
data to the file comqum.dat
file (sample file).

You should check the atoms for which you want to calculate the gradients in the keyword $exafs_gradients (see below for an explanation); by default internal gradients are calculated for all paths shorter than 3.0 Å.

You may change $weight_exafs and perhaps also $weight_qm.

You man also turn on the double-sided gradients (increases the time by a factor 2 in the EXAFS calculations):

$double_sided_gradient on

Finally, you may change the step size for the numerical EXAFS gradients (although the default is normally OK). However, note that you should not use values smaller than ~1E-4, because there are only five decimals in the xmu.dat file, so that you will loose precision and may get zero gradients.

$g_step

1.0D-4

- Set up the Turbomole
ComQum, or ComQum-X calculations as usual, and add the needed keywords
to the comqum.dat file (explained above).

In addition, you need the file with the exafs raw data, the transform file, a file process.iff with the following content (no changes should be needed to this file - it only converts the calculated data from k to R-space):

# This is the file process.iff, set up for ComQum-PExafs calculations

# It converts the calculated data from k-space to R-space.

# Ulf Ryde, 15/3-10, based on templates from V. Batista and E. Sproviero.

#

read_data(file = fe_chi.DAT, type = chi, group = fe_chi)

fek_chi.k = sqrt(0.2624683*fe_chi.k)

newfe.k = range(0,ceil(fek_chi.k),0.05)

newfe.chi = qinterp(fek_chi.k, fe_chi.chi, newfe.k)

fftf(newfe.chi, k=newfe.k, kmin=floor(fek_chi.k), kmax=ceil(fek_chi.k), dk=1,kweight=3, kwindow='hanning')

write_data(file=fe_FT.out,newfe.r,newfe.chir_mag)

exit

- It is normally wise to first run (in a separate directory)

ridft>logd

rdgrad>logg

cqpefixenergy>loge

cqpefixgrad>logi

And then move to the original comqum.dat file

$norm_scale

0.67531351E-09 (or whatever)

Otherwise, the first energy will be different from the following ones.

- Start ComQum-E by

for QM+pEXAFS

jobexpe -backup -ri -c 200

or for QM/MM+pEXAFS:

comqumpe -backup -ri -c 200

or for ComQum-X+pEXAFS:

comqumxpe -backup -ri -c 200

- When finished, the results are in the files energy (the first
energy is the ComQum-EXAFS energy, the third is the Turbomole energy,
and the fourth is chi_squared EXAFS energy) and all.out.

$energy SCF SCFKIN SCFPOT

2 -4043.63646887853 4024.47271869400 -4043.63702859200 22325.04453929200

- If you have problem with convergence, you may:

- reduce dqmax to 0.03 (or smaller; instead of 0.3) to
improve
the convergence, especially if w_Exafs is high.

$coordinateupdate

dqmax=0.03

interpolate on

statistics 5 - Use steepest descent

$forceupdate

none

allow=0.0 threig=0.005 reseig=0.005 thrbig=3.0 scale=1.00 damping=0.0 - Restart the forceapprox file

$forceinit on

diag=default

- Finally, you can remove unnecessary files by typing

purtur

The following programs are needed for running comqume

(they are all in /away/bio/Exafs or /away/bio/Exafs/Linux)

- jobexpe or comqumpe or comqumxpe

- cqefixenergy
- cqefixgrad
- turbo2pfeff
- xmu2chi

CuS2N2 complex, BP/RI, SVP, 7/4-05

$weight_exafs

10000.0

$weight_qm

1.0

$norm_scale

0.25071102E-09

$r_range

1.0 4.3

$e0

6543.3

$expfile

pexafs_exp.txt

$exafs_gradients

internal

4

1 2

1 3

1 27

1 28

$g_step

1.0D-4

$double_sided_gradient on

$end

Alternative formats for $exafs_gradients:

- Cartesian

Cartesian gradients in the three Cartesian directions (x, y, z)

The list gives the atoms for which gradients should be calculated. It can include the absorber(s), but it is normally better to use it to correct the total sum of the forces, using the keyword correct (followed either by the atom to give the negative sum of the forces, or the number of atoms and (on the next line) a list of atoms to which the resultant (divided by #atoms) should be added.

$exafs_gradients

cartesian

4

2 3 27 28

correct

1

1

- Internal

Internal gradients only along a bond.

The two numbers are the absorber and the ligand.

$exafs_gradients

internal

4

1 2

1 3

1 27

1 28

- Shell

Internal gradients only along several bonds.

The first number is the number of atoms in the shell.

The second is the absorber.

The final numbers are the ligand.

The same internal gradient is added to all ligand atoms and the negative of their vector sum to the absorber in each shell.

$exafs_gradients

shell

2

2 1 2 3

2 1 27 28

- Test

Runs both shell and cartesian to check if cartesian is needed.

The format is the same as for shell and the program decides itself for which atoms Cartesian gradients should be calculated.

$exafs_gradients

test

4

1 1 2

1 1 3

1 1 27

1 1 28 - Mixed

Input as for internal gradients:

Cartesian gradients will be used for atoms that are used more than once (either as the first or the second atom) and internal gradients for the other atoms along the specified bond.

$exafs_gradients

internal

4

1 2

1 3

1 27

1 28

4

# Symmetry operations for OEC

# Data from Batista & Sproviero

# Symmetry Transformation 0

-0.841 0.313 -0.440 38.39445

0.314 -0.380 -0.870 47.64779

-0.440 -0.870 0.221 47.85023

# Symmetry Transformation 1

-1.000 0.000 0.000 67.496

0.000 -1.000 0.000 0.000

0.000 0.000 1.000 154.970

# Symmetry Transformation 2

-1.000 0.000 0.000 0.000

0.000 1.000 0.000 114.425

0.000 0.000 -1.000 154.970

# Symmetry Transformation 3

1.000 0.000 0.000 67.496

0.000 -1.000 0.000 114.424

0.000 0.000 -1.000 0.000