Jump directly to: Contents


Hauptnavigation/Hauptmenü: Links auf direkt erreichbare, übergeordnete Webseiten

Grafischer Identitätsbereich:

Weitere Service-Funktionen

Suche auf der Website http://www.chemie.fu-berlin.de


Navigation/Menü: Links auf weitere Seiten dieser Website und Banner





eprfit: EPR programs


EPRFT (Version 3.0, 10.12.1990)

Disclaimer: The EPR programs have been developed around 1990. You may use them at your own risk, there is no support (sorry). Please note that the PC programs run under DOS, there is no Windows user interface. Source code is included, so you may modify the programs according to your needs and recompile them. The source code can also be compiled on Unix systems (some platform specific modifications might be necessary).
B. Kirste, 2007-01-26

EPRFT is a program for the simulation and least squares fit of isotropic EPR spectra, treating hyperfine interaction to first order, assuming constant linewidth. Convolution of lineshape is achieved by using Fourier transform techniques. For the iterative fit procedure, now (version 3) three methods are offered: an evolutionary Monte-Carlo-technique (as in previous versions), the simplex method and the Marquardt algorithm.

New features of version 3.0 (December 1990):

© Copyright:

*** Dr. Burkhard Kirste, Institut für Chemie und Biochemie - Organische Chemie, ***
*** Freie Universität Berlin, Takustraße 3, ***
*** 14195 Berlin, Germany ***

The program may freely be used and distributed by the scientific community, provided that the copyright notice is not removed. The program may also be modified to meet personal requirements. The program may not be sold or used commercially. There is no warranty whatsoever, regarding proper function of the program, errors, or any damage it might cause; i.e., the user takes full responsibility.


IBM-PC/AT or compatible:
EPRFT.EXE (or EPRFTSM.EXE) may be used on its own, but it is recommended to have VIEW.EXE installed (in the same directory or in the search path) which may be called to display spectra. The PC must be equipped with an arithmetic coprocessor, best results are obtained on 486-machines. VIEW.EXE requires a graphics card (EGA, VGA or Hercules).

Atari ST:
EPRFT.PRG (or EPRFTSM.PRG) (not included!) should run on any 1040ST or Mega ST, for graphics display, a monochrome monitor is required. The version compiled with double precision numbers needs a lot of computer memory, therefore desk accessories may have to be removed. An arithmetic coprocessor (68881) is helpful, but computation speed cannot compete with an 386/387 or 486 IBM-AT.

EPRFT (or EPRFTSM) has been successfully compiled on an IBM RT, operating system AIX. Graphics support is not provided, however.

Fitting of experimental spectra

For fitting of experimental spectra, these must be stored on disk in a suitable format. It is assumed that only ordinates (y-values) are given and that the experimental points are equally spaced, maximum number of data points is 4096 (4 K). Data format may be ASCII (certainly the safest way) or 16-bit integer; the program should recognize these formats automatically.

Input of parameters

At the beginning, it is recommended to provide parameters interactively (see below). These parameters may be stored on disk. For subsequent runs, this parameter file may be edited by a suitable text editor or by means of EPRFT. Several numbers on one input line should be separated by spaces, although commas are acceptable. Simple questions (yes/no) are answered by hitting the respective key (case insensitive), i.e. y,Y,n or N without additionally hitting the RETURN key. (Alternatively, RETURN yields the default answer.)

VARiations for fitting

The proper choice of VAR values (the "maximum" variations in an iteration cycle) is of crucial importance in Monte Carlo and simplex methods. They should roughly correspond to the estimated errors. In the Marquardt method, the only difference on input is non-zero (to be modified) or zero (to be held constant). On output, the error estimates are given.

Interactive questions

> Parameter input from/output to file, y/n/quit?
> Name of parameter file:
If the parameter file does not yet exist, a new one is generated. Otherwise the data file names and parameters are read in and the interactive input is skipped. In either case, the final parameters are stored in the file.

> Do you wish to fit an exp. spectrum, y/n/quit?
Answer Y if you want iterative fitting, N for a plain simulation.
> Select Input File:

> Do you wish to store the simulation, y/n/quit?
> Select Output File:

> Number of sets of nuclei (max. 12)?
SETs of equivalent nuclei.
> hfc,spin,number[,var]
Hyperfine coupling constant (e.g., in mT), spin (0.5, 1, 1.5, ...),
number of equivalent nuclei within the set (max. 50),
and estimated error of the HFC (vide supra).

> Lineshape (1=Lorentzian, 2=Gaussian, 3=mixed)?
"Mixed" means mixed Lorentz-Gauss shape with the same peak-to-peak width of the two components and selectable (but fixed) Lorentzian fraction.
> Linewidth peak-to-peak[,var] ?
Peak-to-peak linewidth and its estimated error (units as for HFC)
> Lorentzian fraction (0..1) ?
Only in the case of mixed lineshape (type 3)
> Length of spectrum (units as above) :
Total width of the experimental (or simulated) spectrum
> Position of point 1 (units as above)[, var] ?
This is usually a negative number, because the spectrum center (symmetry center) is taken as 0.0.
> Which part of the spectrum shall be fitted?
> From point (...) to (...)?
Only in the case of iterative fitting; hit RETURN if the whole spectrum shall be taken into account.
> Number of data points (1024, 2048, or 4096)?
Only in the case of a plain simulation.

> Edit (re-edit) input parameters?
(Y or N) - Opportunity to modify parameters selectively; hit RETURN to keep the proposed value, or type in a new value, followed by RETURN:
> No. of sets of nuclei
> --- Set no. %d ---
> hfc
> spin
> number
> var
> Lineshape
> Linewidth
> var
> Lorentzian fraction
> Length of spectrum
> Pos. of point 1
> var

> Method of fitting: C=Monte Carlo, S=simplex, M=Marquardt ?
Note: the Monte Carlo method has "no algorithm" and is probably the most robust method but will need the largest number of iterations. There is no criterion for convergence other than the failure of further improvements in the sigma value. The simplex method also avoids calculation of derivatives but provides a more deterministic scheme.
The Marquardt (or multidimensional Gauss-Newton) method strictly follows gradients and will only work if the starting point is sufficiently close to the global minimum, otherwise convergence will fail. The convergence behavior may be improved by selecting a factor less than unity. Convergence will also fail in cases of counteracting parameters. On the other hand, successful convergence is clearly stated and estimated errors of fitted parameters are given (which are not provided by the other methods).

> Marquardt factor (0.1..1.0):
Only for the Marquardt method, see remarks above. > Number of iterations ?
> Display of iterations: N=none, T=terminal, P=printer ?
> Input done!


Typically, the following set of data and parameter files is used in a session:

sample.DAT (input, experimental data file, only y values)
sample.PAR (output or input/output, parameters)
sample.SIM (output, simulated or fitted spectrum)

Example parameter file (do not use comments # ... !):

  ttbp004.dat                       # name of exp. data file
  ttbp004.sim                       # name of sim. spectrum file
   3                                # no. of sets of nuclei
      2.7981  0.5   1      0.0008   # HFC, spin, no. of nuclei, variation
      0.3011  0.5   9      0.0003
      0.0113  0.5  18      0.0022
   1                                # line shape (1, 2 or 3)
      0.1899      0.0031            # linewidth, variation
      20.000                        # spectrum width
    -10.0529      0.0004            # position of first point, variation
      1   4096                      # first and last point (for fitting)


The program has been compiled by means of Turbo C++ (1.0), but Turbo C (2.0) should also work. Required modules are:
the optional file selector box also requires:
MYHEADER.H, MYINIT.H, MYSTART.C, MYVARS.H, MYSTRING.C, MYSTDLIB.C, MYFRAME.C and SCREENC.OBJ (that material is copyrighted by Said Baloui and Markt&Technik Verlag AG).
Use memory model compact.

The program has been compiled by means of Turbo C 2.0, but version 1.1 should also work. Required files:
Use compiler switches -P (absolute calls) and -M.

fcc eprftsm.c get_fnam.c -o eprftsm


The Monte Carlo method and an early version of program EPRFT have been described in:
B. Kirste, J. Magn. Reson. 73, 213-224 (1987)
[Least-Squares fitting of EPR Spectra by Monte Carlo Methods].
Most standard numerical methods have been taken from:
W.H. Press, B.P. Flannery, S.A. Teukolsky, W.T. Vetterling, "Numerical Recipes", Cambridge University Press, Cambridge, 1986, or from "Numerical Recipes in C".
Acknowledgment is made to Dr. Martin Plato, formerly Institut für Molekülphysik, Freie Universität Berlin, Arnimallee 14, 14195 Berlin, Germany, for supplying me with several simulation programs.

Burkhard Kirste, 2007-01-26


2 Mar 2017:

Paper highlights (archive)




© 2017  Institut für Chemie und Biochemie |  Contact  |
Last modification: 2017-03-01