|
International
Tables for Crystallography Volume I X-ray absorption spectroscopy and related techniques Edited by C. T. Chantler, F. Boscherini and B. Bunker © International Union of Crystallography 2024 |
International Tables for Crystallography (2024). Vol. I. ch. 6.21, pp. 833-835
https://doi.org/10.1107/S1574870720003468 Chapter 6.21. VIPER and XANES DactyloscopeaMAX IV Laboratory, Fotongatan 2, 225 94 Lund, Sweden The programs VIPER and XANES Dactyloscope represent a broad collection of analysis tools for EXAFS and XANES spectroscopies. Their 20-year-long history has allowed fine tuning of the codes on numerous data sets from many synchrotron beamlines and their use in various application scenarios. The graphical interface is focused on rich visual representation of the data. This goal is achieved by simultaneous dynamical plotting of several data transforms along the analysis pipeline and by optimizing the usage of the screen space. To handle large data sets and to enable parallel computation, the programs will soon be rewritten as plug-ins to a modern data-analysis platform, but the essence of the analysis pipeline will be inherited from VIPER and XANES Dactyloscope. Both programs are freeware, and can be found online using the keywords `VIPER EXAFS'. The distribution package also includes detailed documentation and examples. Keywords: VIPER; XANES Dactyloscope; EXAFS; XANES; data analysis; Xanda; ParSeq. |
VIPER is a program for data analysis of EXAFS spectra (Klementev, 2001
). It combines the following analysis steps into a dynamically updated data pipeline that can be fed with many datafiles: (i) pre-processing of raw data, which includes energy calibration, various deglitching methods, deconvolution, advanced self-absorption including the XANES part etc.; (ii) various procedures for extraction of the EXAFS function; (iii) merging of spectra; (iv) Fourier analysis; (v) fitting procedures for the first few coordination shells in k and/or r space, including multi-edge fitting, fitting by a radial distribution function and fitting by an oscillatory potential, with flexible user-defined constraints; and (vi) advanced error analysis and statistical tests.
VIPER does not include the calculations of scattering amplitudes and phases; the use of FEFF (Rehr & Albers, 2000
; Kas et al., 2024
) is recommended for this. Alternatively, well isolated first coordination shells in reference spectra can be used for extracting experimental amplitudes and phases. VIPER also does not produce publication-quality graphs. It only exports column files to be loaded by Matplotlib, Veusz or QtiPlot (to mention free software) or other plotting tools.
The dataflow and the desktop space are organized in such a way that all curves and their changes under processing are visual. The visualization is not only a matter of convenience; it also serves for checking the quality of experimental data and processing steps. VIPER is therefore useful for quick quality checking during beam time at synchrotrons. A simple drag-and-drop action quickly reveals the spectrum noise, reproducibility and shape trends in E, k and r space. The visual aspect is also helpful in several analysis steps, in particular in the following.
(i) Stability check of energy axis of multiple spectra by exploring relative shifts in co-recorded reference spectra (usually of a foil).
(ii) Exploring monochromator glitches by colour-marking those on an I0 curve and inspecting their persistence or absence in the propagated coloured regions on μ(E) and χ curves.
(iii) Constructing the pre-edge and post-edge backgrounds and searching for the optimal kmin while inspecting the low-r Fourier transform region.
The screenshot in Fig. 1
shows an example of the analysis pipeline, where a window with the measured signals – currents of ionization chambers – is hidden behind the other windows. The spectra were taken after several in situ preparation steps of a Pd catalyst (Stakheev et al., 2004
) with the two end members being oxide and metal references. This example is also included in the distribution archive.
On one hand, XANES spectra require a simplified analysis pipeline with fewer transformations compared with EXAFS spectra. On the other hand, XANES needs some specific tools, such as pre-edge peak separation by baseline subtraction, factor analysis (principal component analysis and target transformation) and linear combination fitting. XANES Dactyloscope (Xanda) is a program for data analysis of XANES spectra. It implements the simplified pipeline that fits into a single dialogue box and offers the abovementioned specific analysis tools.
Xanda does not include ab initio XANES calculations. It also does not produce publication-quality graphs. It only exports column files to be loaded by another plotting tool.
Although several ab initio XANES calculation codes have been successful in reproducing particular spectra, mostly of metal samples, the quantitative treatment of XANES still remains a challenging problem. For this reason XANES is mostly used for `fingerprint' analysis, which considers specific spectroscopic features (fingerprints): pre-edge peaks, white lines, edge shifts etc. for identifying the chemical state and/or local atomic symmetry. This explains the name of the program: XANES Dactyloscope.
The screenshot in Fig. 2
shows an example of the use of Xanda. The analysis pipeline is defined by a single dialogue, sequentially organized from top to bottom, and the data are displayed in a single graph.
Both programs are accompanied by detailed documentation. As well as explaining the user interface, chapters in the documentation derive the methods, give a historical overview and critically compare different analysis routines. In particular, energy calibration, construction of post-edge background, self-absorption correction, definitions of experimental errors, statistical evaluations in fitting and factor analysis are covered. Each chapter offers something special, for example methods not published elsewhere or extensions to the standard methods.
VIPER and XANES Dactyloscope run on 32-bit and 64-bit Windows systems. They can run under Linux and MacOS in a virtual machine or with Wine (compatibility software).
As dictated by ever-increasing data streams at modern synchrotron XAS beamlines, analysis software has to offer certain capabilities not currently present in VIPER: handling very large volumes of data, parallel data processing, also on GPUs, highly efficient graphics processing and deploying on various operating systems. VIPER and XANES Dactyloscope will therefore be rewritten as plug-ins residing in a general-use dataflow framework. The framework is currently in development under the name ParSeq (see https://github.com/kklmn/ParSeq for screenshots of what is currently available). Each transformation node in ParSeq consists of six main parts:
(i) A file tree for accessing data files. This browses the file system and the content of HDF5 containers in a single viewer.
(ii) A data tree that manages the loaded data. The user selects a subset of data to which the transformation is applied. This tree also acts as a plot legend.
(iii) A widget with data averaging and other cross-data actions.
(iv) A plotting window.
(v) A widget with transformation parameters.
(vi) A help panel that is dynamically created from a reStructuredText source (https://en.wikipedia.org/wiki/ReStructuredText ).
The transformation nodes in the framework are detachable from the main window and thus ParSeq will work efficiently on multi-screen desktops. The programming language is Python, with parallel analysis codes written in OpenCL (https://en.wikipedia.org/wiki/OpenCL ). The GUI part utilizes the PyQt framework.
Acknowledgements
The original Pascal codes written for 16-bit Windows were converted to the 32-bit API with great help from Roman Chernikov (Canadian Light Source).
References
Iida, A. & Noma, T. (1993). Jpn. J. Appl. Phys. 32, 2899–2902.Google Scholar
Kas, J. J., Vila, F. D. & Rehr, J. J. (2024). Int. Tables Crystallogr. I, ch. 6.8, 764–769
.Google Scholar
Klementev, K. V. (2001). J. Phys. D Appl. Phys. 34, 209–217.Google Scholar
Rehr, J. J. & Albers, R. C. (2000). Rev. Mod. Phys. 72, 621–654.Google Scholar
Stakheev, A. Y., Tkachenko, O. P., Kapustin, G. I., Telegina, N. S., Baeva, G. N., Brueva, T. R., Klementiev, K. V., Grunert, W. & Kustov, L. M. (2004). Russ. Chem. Bull. 53, 528–537.Google Scholar