XAS Tutorials

XAS Data Analysis with OPT

(You must first install EXAFSPAK)

OPT is the program with EXAFSPAK that performs the data analysis. This involves curve-fitting of the EXAFS data to extract structural information about the coordination around the absorbing atom. This tutorial will provide a basic introduction to the use of OPT, including its interface to feff to provide theoretical scattering functions. More information is available online (http://www-ssrl.slac.stanford.edu/~george/exafspak/exafs.htm). In particular, we will not discuss the theoretical EXAFS expression since this is covered in many published reviews of EXAFS (as well as in the EXAFSPAK manual). If the reader is brand new to the field, we recommend starting with our basic online XAS Tutorial, then consulting reviews reference therein.

The essential goal of curve-fitting (e.g., in OPT) is to determine whether an observed EXAFS data set is consistent with a particular structural model. The most appropriate method to accomplish this is to "build" the model (in silico) and perform a full multiple-scattering computation, complete with Debye-Waller factor calculation from computed force constants, to simulate the EXAFS for comparison wih the observed EXAFS. In late 2007, this is still a formidable challenge and most EXAFS users are satisfied with a less sophisticated analysis. The next level down is to perform the multiple-scattering computation, but not attempt to calculate Debye-Waller factors; rather, these are allowed to vary with some restraints. It is also possible to perform the multiple-scattering computation on only a selected fragment of the entire structure and this is often the approach taken to determine histidine imidazole ligation. The simplest approach is to apply only single-scattering to the EXAFS simulation in which a set of absorber-scatterer radial distances define "shells" of scatterers. In this case, feff can be used to compute quickly the single-scattering theoretical parameters to be used for each shell.

Note that feff is a commercial software package, whereas EXAFSPAK is public domain. You can purchase the latest version of feff (recommended) by going to http://leonardo.phys.washington.edu/feff/. Installation of EXAFSPAK may also provide the previous version of feff for compatibility.

This tutorial has three major sections:

If you are starting on a new data set with no a priori knowledge of what scatterers or distances to expect for an EXAFS model, then you should go through all three sections in order. If you have a pretty good feeling for the major shells and approximate distances (e.g., from analyzing EXAFS data of a closely related sample), then you should be able to skip the first section.

Simple single-scattering fits using shells and "empirical" scattering parameters

With no structural model, you can use OPT to get a feeling for what shells to use in a feff single-scattering calculation. This is done with a set of scattering functions integrated into OPT that are reasonably accurate as a starting point for a feff calculation. They are referred to as McKale parameters (see references in EXAFSPAK Manual).

OPT reads the observed data from an input file (*.AVE) created through PROCESS, and is started by using the command line in the X-window console:

C:\dir>opt <input_file> <parameter_file>

<input_file> specifies a filename of a *.AVE file that has been saved from PROCESS after the EXAFS extraction

<parameter_file> is the filename of an optional ASCII text file containing the parameters associated with the EXAFS model (defined as a set of shells of scatterers or scattering paths)

This parameter file (*.HLD) can be created ahead of time to define a structural model for OPT, but OPT will create this during the curve-fitting as you define your shells within OPT. If <parameter_file> is not specified in the command line, OPT will look for a *.HLD file with the same filename as the *.AVE file; if it is found, initial shells and parameters are read from this file. If it is not found, OPT will say so and will create a *.HLD file with the same filename as fits are performed.

For this tutorial, we will use Au L3 data collected on a frozen solution sample of auranofin provided by Bill Self of the University of Central Florida. Auranofin is prepared as Au(thioglucose)(PEt3), but its structure in 50% aq. DMSO (as here) is unknown. The filename of data from PROCESS is a105a.ave so we use the command

C:\dir>opt a105a

OPT - Main menu

The first task is to read the EXAFS data from the *.AVE file. Pressing 1 in this main menu should bring up the following dialog; if not, make sure your *.AVE file is in the directory from which OPT was run. You should verify that the E0 value is set properly from PROCESS and choose the k-range of data to fit (usually k = 2.0 is the minimum). Since the *.HLD file did not exist, OPT notifies us, then asks for # Components (the number of shells to include in the fit). In the case of auranofin, the Au-P and Au-S distances are probably quite close (from CSD, an average Au-P distance is 2.26 Angstrom and an average Au-S distance is 2.30 Angstrom) and we do not expect to resolve these two shells so for now we define 1 shell (Component). Then we define the edge (L3 for Au) and choose raw data for the fit.

OPT - reading EXAFS data

Back in the main menu, choose 7 to setup and from the SETUP menu, choose 6 to write fit summary to file. After each fit, a set of results are reported on the screen in OPT. It is helpful to have the detailed fit results written to a file for later reference. Any changes you make in the SETUP menu can be saved as defaults for any future OPT sessions by choosing 7 to write setup file from the SETUP menu. Answer the prompts as shown below, using a filename for the *.LIS file that you can recognize. Note that if you do multiple fits in a given OPT session (which is common), this filename will be overwritten each time a set of fit results are generated. If this is not the behavior you want, you will have to change names of files as you go (either in this SETUP menu or in the directory hierarchy in Windows.

OPT - SETUP menu to specify fit output file

Back in the main menu, choose 2 to change parameters to bring up the following screen. This is the screen (or in some cases multiple screens) that specifies the parameters being used to define each Component (shell). Since we chose only 1 Component, there is a header and only one box with shell parameters. If a *.HLD parameter file was already in place, the details from that file would be displayed; the ones shown below are the defaults for a yet-to-be-defined shell. At this point, you should use this screen to set up initial parameters for starting the optimization.

OPT - Parameter initial values

The header (highlighted in tan) provides general information about the fit and the absorber. Iterns (iterations), F-evals (function evaluations), F (goodness-of-fit statistic), and CPU (processor time) will keep track of the optimization when the fit is run. The parameters above the components apply to the entire fit. To move from one field to the next, use Tab. To move to the previous field, use Ctrl-H. Scale is the amplitude reduction factor (S02) and we fix this at 0.9 for all fits. None of the other general parameters are set. Within the Component 1 panel, replace the ...... with a name that makes sense (Au-P defines the shell below). ZBA and ZBP define the scatterer atomic number for amplitude and phase functions, respectively (P is Z = 15). NAT and NPT select the source of amplitude and phase backscattering parameters (leave these set at 1 for now, meaning use the McKale parameters for this component).Setting N to 2 selects two-coordinate P-Au-P and we will guess R = 2.3 (Au-P distance) and leave Sig^2 (Debye-Waller factor) at 0.0025 and E0 at 0.

Function keys (PFn) are used to control how parameters are handled in the fit (and control of the parameter editor). PF3 affects how the highlighted parameter is treated in the optimization. Hitting PF3 cycles the behavior among fix this parameter to the defined value (blank); constrain to a constant ratio with component above (/); constrain to a constant offset from component above - as the above component increases, this component increases (-); constrain to a constant sum with the component above - as the above component increases, this component decreases (+); float this parameter independently of one above (*). Our normal operation is to fix N, float R and Sig^2, and float E0 for Component 1 and constrain with / all other E0 values (this of course applies only to fits with more than 1 component).

OPT - setting starting parameters

Once you have the initial parameter values and behaviors set, use PF1 to exit the parameter editor and return to the main menu. Then press 3 to plot, in the PLOT menu, press 1 to plot EXAFS, and in the PLOT EXAFS menu, press 1 for data + fit.

OPT - PLOT EXAFS menu

This brings up the standard plot with both EXAFS and FT comparisons of data and initial simulation. In this case (below), we got lucky and are already very close to the best fit. If this is not true, you may wish to adjust some parameters to assure that you are near enough the global minimum in the goodness-of-fit surface to converge rapidly to the global minimum.

Notice that this FT has not been phase-corrected (by default), but you can change this. Get back to the main menu (any key brings up a prompt about hard copy; just press Return, then return through submenus) and press 7 to setup. In the resulting SETUP menu, press 4 to change F.T. setup, then answer y to Do you want FT phase correction? [y/n] [N]: and hit Return in response to Enter Component # for correction [1]: This chooses the scattering atom phase of the Au-P component for the phase correction. A second prompt appears: Enter Max. R for FT [6.00000] : It is more typical to use 7.0 for the maximum of the FT plot. Once you have made these selections, they will apply to any plots in this OPT session. As before, if you want this to be the default for any future OPT sessions, choose 7 to write setup file from the SETUP menu.

OPT - initial plot of EXAFS, FT

Once back in the main menu, if you are satisfied with your initial parameter guesses, you should Press 4 for curve-fitting, which takes you to the CURVE-FITTING menu (below). This tutorial will concentrate on the simple single optimization; to learn more about what OPT can do, consult the EXAFSPAK manual.

OPT - CURVE-FITTING menu

Generally, you will want to Press 2 to start Marquardt algorithm. This is a robust steepest-descent algorithm that usually quickly converges to the least-squares minimum (of the difference between fit and observed data). For a simple fit like this one, the convergence is essentially instantaneous; for more complex fits, you will see the header on the following screen update as the algorithm steps through iterations search for a minimum. Once the fit is finished, the green-highlighted message at the top of the screen appears.

OPT - Final result of fit

Take the time to read these results, confirming the values for the fixed parameters and the final values of the varied parameters. In this example (above), R and Sig^2 remained very close to our initial values (as expected given how close our initial simulation was to the experimental data), while E0 changed slightly from 0 to 0.96 (eV). (Note that this parameter is actually a difference between the E0 in the fit and the E0 chosen in PROCESS to define the k scale.) As discussed for PROCESS, we defined the k scale using E0 values that are constant for a given absorber and fall about 10 eV above the elemental inflection point (see Table). Every sample will have a slightly different E0 and this is the reason for allowing it to float in these fits. However, the scattering phase can be altered significantly if E0 is far from its starting point (0 eV). You should be suspicious that you picked the wrong scatterer if the final E0 is more than 10 eV above or below its starting point.

Hitting any key brings up the first screen of results (which are also being written to the *.LIS file if you followed the setup described above.The first screen of results summarizes the parameter values (note the asterisks marking the components that have been varied). For the optimized parameters, in parentheses after the values is the estimated standard deviation. These are probably not true uncertainties as discussed in the EXAFSPAK manual.

OPT -  Fit results screen 1

Pressing any key again retrieves subsequent screens of results; pages 2 and 3 are shown below on a single screen. The Correlation Matrix displays the variances and covariances of the optimized parameters; covariances near 1 (or -1) indicated parameters that are highly correlated with one another (as below for R and E0). The third screen provides the goodness-of-fit statistics in several different forms. Pay attention also to the Expected resolution in distance, R, since this defines the ability to resolve to closely spaced distances in this particular data set.

OPT - Fit results screens 2, 3

All these fit results are also in the file (defined above as a105a.lis). If you are going to do additional fits, but you want to save these results, rename this file now (using Windows) so that it is not overwritten by the fit results of the next optimization. Pressing any key now takes you back to the main menu, from which you can plot the final fit results as described above. For this example, the resulting plot (below) demonstrates that this is a very good first-shell fit. Since this used McKale parameters, this was really only a preliminary effort leading to the use of feff for the final fit.

OPT - Final fit plot

This part of the OPT tutorial gave you a feeling for how simple fits are performed using OPT. Since we used McKale scattering parameters for this fit, we would never publish these results; they are simply a guide for the next step of using feff-calculated scattering parameters for the actual fits. Essentially, this fit just determined the Au-P distance to use in the feff calculation, which is described in the next part of the tutorial.

scott@chem.uga.edu
Department of Chemistry
University of Georgia
Athens, GA 30602-2556
706 542-2240 | FAX: 706 542-2295