OnWorks favicon

artemis - Online in the Cloud

Run artemis in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command artemis that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



Artemis - interactive EXAFS data analysis


Artemis is a program for analyzing EXAFS data using theoretical standards from Feff.
Artemis includes interfaces to Atoms and Feff as well as forms for defining parameters and
applying those parameters to the paths from the Feff calculation. Artemis uses chi(k) as
it's input. It does not handle any data processing chores, such as converting raw data to
mu(E) or doing background removal. Artemis's sister program Athena is the data processing


Artemis is a graphical and interactive program written in the perl programming language,
using the Tk display engine, the Ifeffit EXAFS library, and the PGPLOT plotting library.
(See below for a list of relevant URLs.)

Artemis helps you organize all aspects of a fitting project, including running the Feff
calculation, settings parameters for the Fourier transform and fitting of the data,
parameterizing the paths from the Feff calculation, running the fit, and plotting the
results. The Artemis window is divided into three panels. The largest panel is the space
where most of the work happens. Its content is model and depends on the state of the Data
and Paths List. This list is in the center, skinny panel. The other skinny panel
contains the controls the are used to specify how plots are made.

At the top of the window are the menubar and the project bar. The project bar displays
the name of the current project file. It also contains an indicator that tells you if the
project has been modified since the last time it was saved. Clicking on the modified
indicator will save the project (just like C-s or the "Save project" item in the File
menu). At the bottom of the screen is the echo area, where Artemis writes all sorts of
helpful messages as you use the program.

The Data and Paths list contains a tree-like list of all of the objects that can be
manipulated as you use Artemis. When the program starts, two such items are displayed.
As you run Feff calculations, import Feff paths and other data sets, and run fits, more
items are added to this list. In total, there are five kinds of entries in this list,
each of which controls a diffferent aspect of Artemis. These five kinds of list entries
are: (1) fitting parameters, (2) data, (3) fits, (4) Feff calculation, or (5) Feff path.
When you click on an item in the Data and Paths List, that item will be "selected" and
"anchored". A selected item is highlighted in orange. An anchored item is outlined with
a dashed line. Only one item can be anchored. 0, 1, or more items can be selected.

The anchored item determines the mode of the large panel. For instance, when the "Guess,
Def, Set" item is anchored, the main panel will display a page used for setting the
fitting parameters. When a data item is anchored, the main panel will display a page for
setting Fourier tranform parameters, the fitting range, and other parameters associated
with the data. Many functions in Artemis depend upon the mode of the main panel. Some
features are available only in certain modes. Each of the modes is described in its own
document section. See "SECTIONS OF THE DOCUMENT".

Plots in Artemis are always made using the selected items. To plot, for example, data, a
fit, and several individual paths, it is necessary to select each of those items. Many
other functions in Artemis also work on the set of selected items.

Anchoring and setting paths is usually done by using the mouse in the Data and Paths List,
although there are several other ways of changing the anchor and selection using the mouse
or the keyboard. Here is a list of mouse events useful in the Data and Paths List:

Left mouse button
Clicking the left mouse button will clear all selections then select and anchor the
item clicked. The main panel will display the page apporpriate to the anchored item.

Center mouse button
Clicking the center mouse button will anchor the item clicked without changing the
selection. The main panel will display the page apporpriate to the anchored item.

Right mouse button
Clicking the right mouse button will anchor the item clicked without changing the
selection. It will also post a menu of functions appopriate to the item clicked.
These menus are the same as the menus in the menubar at the top of the window. The
main panel will display the page appopriate to the anchored item.

Control key + left mouse button
Clicking the left mouse button while holding down the control key will add the item
clicked to the group of selected items. The anchor is not changed.

Shift key + left mouse button
Clicking the left mouse button while holding down the shift key will select all items
between the anchor and the item clicked, inclusively. The anchor is not changed.

Left mouse button + mouse drag
Clicking the left mouse button then dragging the mouse while holding down the button
will select all items that you drag the cursor over. The item initially clicked will
be anchored and the main panel will display the page appopriate to the anchored item.

Control-k, Control-j
Hitting the k or j keys while holdong the control key will move the anchor to the
previous or next item in the list without changing the selection. The main panel will
display the page appopriate to the anchored item. These two key sequences, behave
differently when the Guess, Def, Set item is anchored. See The Guess, Def, Set page
for details

Hitting the l key while holding down the control key will put focus on the Data and
Path List. This allows you to navigate the list using the arrow keys.

The color and font of the text in the Data and Paths List indicates the status of each
item. Any item written in black, upright text is an item that can be plotted. When a
data set or Feff path is excluded from the fit, it will be written in brown text. The
Guess, Def, Set item and the Feff calculation items are written in italic text. The
italic text indicates items that cannot be plotted. Although these non-plotable items can
be selected, they will be ignored when a plot is made.

ARTEMIS: The Data Page

ARTEMIS - The data page

The data page is displayed in Artemis's main panel when a data item is anchored in the
Data and Paths List. See the main document section for an explanation of anchoring and
selecting items in the Data and Paths List.

The data page is divided into five sections. At the top is a box containing the title
lines associated with these data. These are read from the input data file, but can be
edited at any time by the user. When the data are written to output files, the contents
of this box are written as headers. Below the titles box is the name of the data file
that was imported. Below that are four boxes containing groups of related controls.

Data toggles
This box contains three toggles that control certain aspects of the fit. The first two
are only relevant in a multiple data set fit. When setting up a project containing a
multiple data set fit, it is sometimes useful to exclude an entire data set from the fit
without deleting it from the project. This can be done with the first toggle. When a
data set is excluded, it and all items beneath it are shown in brown text in the Data and
Paths List to indicate that they have been excluded from the fit.

After the fit is complete, Artemis wants to show off her handiwork and display a plot of
the data and the just-finished fit. In the case of a multiple data set fit, you might
have a preference about which data set gets plotting. Click this toggle on for your
prefered data set.

The third toggle tells Artemis to do a corefinement of the background spline when it
performs the fit. This corefinement is, effectively, the same operation that was
performed by Athena to remove the background from the data. The "rmin" parameter serves
the same purpose as Athena's "rbkg" parameter. When the fit is performed with the
background corefinement, a spline is used to fit the Fourier components of the data below
"rmin" and the Feff paths are used to fit the Fourier components between "rmin" and
"rmax". The number of parameters used to determine the spline is the number of
independent points in that portion of the data: "2*delta_k*delta_R/pi", where "delta_k" is
the range of the Fourier transform and "delta_R" is the range between 0 and "rmin". The
advantage of doing the background corefinement, other than the possibility of making the
fit look nicer at low R, is that correlations between the background parameters and the
fitting parameters can be measured.

Fourier transform and fitting parameters
This box contains the controls used to set the ranges of the forward Fourier transform and
of the fit. The fit range is also used as the backward Fourier transform range when a
plot is q space is made. See "Pluck buttons" for a discussion of the little quare buttons
marked with a blue x.

Other controls are used to set the functional forms of the Fourier transform window used
in k and R. The widths of the sills of those functions are set usng the entry boxes
labeled "dk" and "dr".

k-weight parameters
The controls in this box are used to set the values of k-weight to be used in the fits.
There are togles for turning on k-weight of 1, 2, or 3. There is also a toggle for
specifying an arbitrary value of k-weight.

These are the k-weight values used in the fit but not the k-weight used to plot the data.
These two purposes of k-weight are handled independently by Artemis. See Plotting in
Artemis for a discussion of the plotting k-weight controls.

People sometimes get confused by the concept of multipl k-weights for fitting. The
prupose of choosing a low or high value for k-weight is to attempt to emphasize either the
low- or high-k end of the data. Because different regions of the data are sensitive to
different kinds of parameters, one might choose a low or high value to increase the
precision of measurement of certain parameters. Doing multiple k-weight fits is a sort of
compromise -- a way of emphasizing both ends of the data in the fit.

The fit is determined by minimizing a quantity called chi-square. Chi-square is evaluated
by summing the squares of the difference between the data and the theory. Since the FT is
complex, there is a real part and an imaginary part. So chi-square is proporitional to:

/ \
sum < Re[ data(R) - th(R) ]^2 + Im[ data(R) - th(R)]^2 >
R \ /

In a multiple k-weight fit, there are simply more terms in the sum. Let's take a kw=1&3
fit as an example. This summation is made for the kw=1 data and theory. And the
summation is made for the kw=3 data and theory. The summations are added together and the
full sum is used to evaluate chi-square.

At the end of the day, there is only one set of guess parameters that have been optimized
by the fit. These guess parameters along with the set parameters are used to evaluate the
def parameters and the path parameters. The path parameters are used to evaluate the
exafs equation for each path. The exafs equations for the paths are summed up to make the
best-fit theoretical chi(k). You have a data chi(k) and a best-fit chi(k). Those can
then be plotted however you like -- even using a k-weight that was not used in determining
the fit.

Other parameters
The last box contains several controls that did not fit into theother boxes. There is a
menu for selecting the fitting space. You can choose to fit the data in any of k, R, or q
space. The default is to fit in R.

Epsilon is the uncertainty used to evaluate chi-square. Normally it is fine to let
Artemis use the default value (which is determined from the RMS value of the data between
15 and 25 angstroms in R-space). In some situations, you may find it useful to explicitly
set a value for epsilon.

After the fit, Artemis writes a log file documenting the fit. Among the information in
that log file are the correlations between all the fitting parameters. You can set the
level below which Artemis will exclude a correlation from this report.

Finally, there is a menu for selecting the path to use for phase corrected plots. This
menu contains the first five paths from each Feff calculation used with the data set.
When a path is selected for phase corrected plots, the full phase shift of that path --
both the central atom and scattering atom portions -- will be subtracted from anything
that is Fourier transformed before it is plotted. If a path is selected for phase
correction and you make a plot of, say, the data, the fit, and several paths, the selected
phase shift will be subtracted from each item before it is plotted. Phase correction is
for plotting only. Fits are always done on non-phase-corrected data.

Pluck buttons
Several of the controls on this page a have a small button with a blue x next to them.
These are called pluck buttons and are used for grabbing values from the plot window.
When you click on one of these buttons, a prompt will be written to echo area asking you
to click on a pointin the plot. When you do so, the value that you clicked on will be
inserted into the entry box adjacent to the pluck button. Artemis is careful not to let
you pluck a k-value from a plot in R, or vice versa.

Context menus
As you pass the mouse over labels on the data page, the text under the mouse will change
color. This color change is an indication that mouse clicks will do something. A left
mouse click on one of these labels will cause a brief description of that parameter to be
displayed in the echo area. Many of these descriptions also suggest reasonable values for
the parameter.

Clicking the right mouse button on one of the labels will post a context menu of useful
function. One such function is restore that parameter to its default value. If you have
a muliple data set fit, the other menu options allow you to constrain the parameter
between data sets.

The labels at the top of the boxes are all sensitive to the left mouse button. The labels
atop the Fourier transform and fit range box and the k-weights box are also sensitive to
the right mouse click.

ARTEMIS: Guess, Set, Def Parameters

ARTEMIS - Guess, set, def parameters

This page is used to define the parameters of the fitting model. In Artemis there are six
kinds of parameters:

Guess parameters are the ones that are optimize during the course of the fit to best-
fit the theory to the data.

Def Def parameters are typically expressed as math expressions which may be functionally
dependant upon other parameters. These math expressions are updated throughout the
course of the fit. As the guess parameters are update, so are the def parameters.

Set Set parameters are evaluated at the beginning of the fit and not updated throughout
the fit. This is the main difference between def and set parameters. Set parameters
can be numbers or math expressions.

Restraints are math expressions which, like def parameters, are updated throughout the
course of the fit, but which take on a special role in the fit. A restraint is
evaluated and added in quadrature to the evaluation of the chi-square parameter. A
restraint, therefore, can be used to incorporate a a bias in the fitting result
towards a piece of prior knowledge about the physical system. See the Ifeffit for a
complete discussion of restraints.

Skip parameters are maintained in the project but are not used in any capacity in the
fit. The point of a skip parameter is to maintain but not use a complicated parameter
with a complicated math expression.

An after is similar to a def parameter in that it may be a math expression dependent
upon other parameters. An after is not, however, a part of the fitting model.
Instead it is a parameter that will be evaluated upon completion of the fit using the
best fit values. The list of after parameters will be reported in the log file.
Using an after parameter anywhere in your fitting model will result in Artemis
reporting an error in the model. Afters can depend upon other afters, but you should
take care in with the order that the afters appear in the list. The after parameters
will be evaulated only once after the fit, thus circular or out-of-order dependencies
will not be resolved.

The Guess, Def, Set page is divided into two sections. At the top is a listbox containing
the list of all defined parameters. At the bottom is the edit area which contains the
controls used to establish the parameters.

The parameter listbox
This area contains a four-column list of all the parameters defined in a project. The
left-most column counts the parameters. The second column contains a tag identifying the
type of the parameter. The third column contains the parameter name. The right-most
column contains the parameter's math expression.

Parameters are coded by color and by the tag in the second column. Guess parameters are
written in purple text and have the "g:" tag. Def parameters are written in green text
and have the "d:" tag. Set parameters are written in black text and have the "s:" tag.
Restraints are written in pink text and have the "r:" tag. Skip parameters are written in
grey text and have no tag. After parameters are written in blue-grey text and have the
"a:" tag.

There are a large number of mouse clicks and key sequences that serve a purpose in the

1. A left mouse click selects a parameter and displays it in the edit area.

2. A double click of the left mouse button selects a parameter, displays it in the edit
area, and prompts you for the parameter annotation. See "Parameter annotations".

3. A right mouse click selects a parameter, displays it in the edit area, and posts a
contextual menu about that parameter. The menu has several items in it. The "Move"
submenu is sued to reposition the current parameter in the list. The "Make" submenu
serves to change the type of the parameter. The "Copy" item will replicate the
anchored parameter, appending a few characters to the end of its name. The "Build
restraint" item is discussed below. The "Annotate" menu item prompts for the
parameter annotation. The "Find" menu item will search through all parameter and path
parameter math expressions and show you how that parameter is used in the project.
The "Grab" menu item is only enabled for guess parameters and will insert the best-fit
value from a fit as the value for that parameter. Finally the "Discard" menu item
will remove that parameter from the list after prompting for confirmation.

4. Control-d will define the parameter in the edit area.

5. Control-g will grab the current parameters best-fit value from a fit.

6. Control-e will show the editing area if it is hidden.

7. Control-k and control-j will move the selection up and down in the list. Note that
these two key-sequences serve to move the anchor up and down in the Data and Path List
when the Guess, Def, Set page is not showing.

8. Control-n will clear the selection and focus on the parameter name entry box so that
you can create a new parameter.

9. Control-y will prompt you to then hit any of the g, d, s, r, k or e keys to set the
type of the parameter. This is only way of setting the parameter type that does not
involve the mouse.

Extended selection
Multiple items in the list of parameters can be selected using the control-click, shift-
click, and click-drag sequences described for the Data and Paths List and for the log
viewer. Only the anchored list item (i.e. the one surreounded by a dashed line and
displayed in the edit area) can have its name and math expression edited.

The advantage of extended selection is that certain of the context menu options discussed
above in item #3 can operate on many parameters at once. By doing extended selection then
clicking the right mouse button somewhere in the selected region, the context menu will be
posted with options for the group of selected parameters. Currently, groups of parameters
can have their types set and can be discarded in this manner.

If you right-click outside the selected region, the extended selection will be cleared and
the parameter clicked on will be anchored and selected.

The edit area
There are three rows of controls in the edit area. The top row has two entry boxes. The
smaller one on the left is for entering the name of the parameter. The larger one on the
right is for entering the parameter's math expression.

Below the entry boxes are a set of five radiobuttons for selecting the type of parameter
being edited.

At the bottom of the edit area are five buttons for acting upon the parameter being
edited. The "Undo edit" button clears the entry boxes and discards whatever changes were
just made. The "New" button is used to define a brand new parameter. It clears the entry
boxes, unselects parameters in the listbox, and gives focus to entry box for entering the
parameter name. The "Grab" button becomes enabled after a fit is run. It inserts the
best-fit value for a guess parameter. The "Discard" button deletes a parameter from the
list. A dialog pops up confirming deletion. Finally, the "Hide" button removes the edit
area from view to allow more parameters to be visible in the listbox. When the edit area
is hidden, it is replaced by a button for restoring the edit area.

Here are the details of the behavior of these controls:

1. Hitting return in the parameter name entry box defines the parameter, inserts or
updates it in the listbox, and puts focus on the math expression entry box. If a math
expression has not yet been defined, the parameter will be defined as 0.

2. Hitting return in the math expression entry box defines the parameter, inserts or
updates it in the listbox, and leaves focus on the math expression entry box.

3. Clicking on any of the radiobuttons defines the the parameter, inserts or updates it
in the listbox, and leaves the focus unchanged.

Parameter annotations
An annotation is a short text string that is associated with the parameter. This string
is written to the echo area whenever the parameter is selected in the listbox on the
Guess, Def, Set page. The purpose of he annotation is to write a little hint about the
role played by the parameter in the fiting model. If a guess parameters has no annotation
when a fit is run, its annotation will be generated automatically. The automatic
annotation for a guess parameter is its best fit value +/- its error bar. The automatic
annotation for a def, after, or restrain parameter is its evaluated value after the fit.

Building restraints
One of the items in the context menu displayed when right-clicking on a parameter is for
building restraints based on guess or def parameters. This tool provides a dialog for
constructing one particular type of restraint -- the type that coerces a parameter to stay
within a boundries for its value. The dialog prompts for a minimum and maximum value and
for a term called the "amplifier". The math expression constructed is this one:

restrain param_res = penalty(param, min, max) * amp

The penalty function evaluates to 0 when "param" is between "min" and "max", to
"abs(min-param)" when "param" is less than "min", and to "abs(param-max)" when "param" is
greater than "max". This is added in quadrature to reduced chi-square as the fit is

The amplifier term determines the magnitude of the penalty. A large value for "amp" will
force the fitted value of "param" not to stray too far outside its bounds. A small value
will allow the fit more freedom to let "param" deviate from your initial guess.

See the Ifeffit FAQ, question 8.1 for more discussion of restraints, including discussion
of other ways to set restraints that do not involve the "penalty()" function.

A cautionary note: restraints are not always appropriate. As an example, if a fit is
returning a negative value for sigma^2, it may not be appropriate to apply a stiff
restraint as a way of forcing that sigma^2 to be a value that you expect. Often, a
negative sigma^2 is indicative of some other problem in the fitting model such as
excessive structural disorder, a coordination number that is forced to be too small, the
incorrect atomic species for a backscatterer, or some such. Using a restraint on sigma^2
in a case like this would not fix the problem. Quite the opposite, it might foster a
false sense of accomplishment by "fixing" the sigma^2 "problem" without actually
addressing the actual problem in the fitting model.

There is an option in the GDS menu for highlighting parameters. This prompts you for a
text string. Any parameter names or math expressions that match that string will be
marked with a green background. This is particularly useful for large parameter lists.
The text string is interpreted as a perl regular expression and so any valid perl
metacharacters can be used. (This includes regular expressions using "(?{ code })" and
other similar constructions, a practice the author of Artemis does not recommend, but does
not prevent.)

Importing and exporting text files
For large, complex fitting models, it may be convenient to edit the parameter list with a
text editor or even to write a program which generates the parameters and writes them to a
text file. In that case, it is convenient to be able to import and export a textual
respresentation of the parameter list. These files are of a simple format. Any line like

guess a 5
set b 6
def c a+b

can imported to and exported from the Guess, Def, Set page via the GDS menu. In an
imported file, any line beginning with any of "guess", "def", "set", "restrain", "after",
or "skip" will be imported as a parameter. The second word on the line will be taken as
the parameter name and the remaining words on the line will be concatinated to form the
math expression. On export lines will follow this format:

type name = math_expression

Very little error checking is performed upon import to verify that the parameter is
defined sensibly, so use this feature with caution.

ARTEMIS: ATOMS, The Crystallographic Front End to FEFF

ARTEMIS - ATOMS, The Crystallographic Front End to FEFF

The purpose of Atoms is to generate a "feff.inp" file from crystallographic data. The
hard part of making a "feff.inp" file is creating the long list of atomic coordinates.
Atoms thus makes the hard part of running Feff easy, at least for crystalline matrials.

This page can be used to create input data for Atoms from scratch. It will also be used
to display crystallography data imported from an "atoms.inp" file or a CIF file. To
import an "atoms.inp" file or CIF file, use the normal file import dialog.

The title box
At the top is a text box for entering title lines identifying the crystallographic data.
These lines will be written to the "feff.inp" file and to the top of the Feff
interpretation page. This is a good place to cite the literature reference or to provide
other important information about the crystal.

Crystal parameters
To the left side of the page are entry boxes for entering space group, lattice constants,
and lattice angles of the crystal. A space group must always be provided. Atoms is very
flexible about how the space group symbol is entered. You can use the Hermann-Maguin or
Scheonflies symbols or the index of the space group from the International Tables. The
algorithm that interprets the symbol is insensitive to white space and capitalization --
"P m -3 m" and "PM-3M" are interpreted the same. For complete details about how the
symbols are interpreted, see the Atoms docuemntation on Bruce's web site.

Lattice constants are entered in units of Angstroms, angles are entered as decimal numbers
in degrees (and not in arc minutes -- i.e. 89 and a half degrees is entered as 89.5 rather
than 89'30"). Many space groups have symmetries that make some lattice angles and
constants the same. In those situations, it is only necesary to fill in the essential
values. For instance, a cubic space group only requires a value for the "a" constant.
Atoms will know to set the other lattice constants the same and to set the angles to 90
degrees. For lower symmetry groups, you must provide all the necessary information.

Below the lattice constants are entry boxes for "Rmax" and the shift vector and a menu for
selecting the absorption edge of the Feff calculation. "Rmax" is the radial extent of the
cluster that will be written to the "feff.inp" file. Some space groups are given in the
International Tables with two different origins -- i.e. the origin is placed at sites with
two different point symmetries. The fractional coordinates of the sites are different for
the two different settings of the crystal. In those cases, Atoms requires that you use a
particular one of the two choices. If your input data has used the other origin choice,
it should be fairly obvious. In that case, coordination numbers and distances to the
coordination shells will usually be obviously wrong. When you use one of the space groups
for which two origin choices exist, Artemis will issue a warning. If you suspect that the
wrong origin choice has been used, insert the values for the shift vector that were
reported in the warning message.

On occassion, crystals are reported in the literature using origins other than the
standard one used in the International Tables. A famous example is germanium oxide. Here
is the crystal data for GeO2:

title GeO2 (hexagonal)
space p 32 2 1
a=4.98502 c=5.64800
rmax=6.0 core=Ge
shift 0 0 0.66667
Ge 0.4513 0.0 0.0
O 0.3969 0.3021 0.0909

For some reason, the crystallography reference for this material uses an origin that is
shifted by 2/3 in the z direction relative to the origin used in the International Tables.
To get Atoms to compute this structure correctly, the shift vector given above must be

The atoms list
To the right side of the page is the list of unique crystallographic sites. As new sites
are created, they are inserted into the list. The sites are not edited directly, instead
the editing area at the bottom of the screen is used and the list of all sites is
displayed here. This works much the same as the Guess, Def, Set page.

To edit a site, left-click on its entry in the list. It's element symbols, coordinates,
and site tag will be displayed in the edit area. A right click on a site in the list will
post a context menu with several functions that can be perfromed on that site. You can
re-order the list using the "Move" menu item. A site can be copied and the copy added to
the list using the "Copy" menu item. The "Discard" menu item completely removes the site
from the list. The list supports extended selection. When many sites are selected (i.e.
highlighted in yellow), the "Discard" menu item will work on all the selected sites.

Sites can also be reordered using the keyboard. "Alt-k" and "Alt-j" can be used to move
the selected site up or down in the list.

The edit area
At the bottom of the page is the collection of widgets used to actually create and edit
unique crystallographic sites. The element box is used to insert the two-letter element
symbol for the site. The site will not be created if this is not a valid symbol. The tag
can be any 10-letter string used to identify the site. The tag is used to differentiate
sites that contain the same element.

The boxes for the "x", "y", and "z" coordinates can be filled with floating point numbers
or simple fractions. That is, 0.5 and "1/2" are both acceptable. These coordinates are
fractional positions in the unit cell and are not Cartesian coordinates.

Once you have created all sites in your crystal, click the "Run Atoms" button. This will
process the crystallographic data, create the "feff.inp" file, display the "feff.inp"

Atoms template files
The "feff.inp" data that is generated when the "Run Atoms" button is pressed is determined
by the contents of a special template file. Artemis is distributed with a number of
template files serving different purposes. The structure of the "feff.inp" data is set by
the value of the "atoms->template" preference. The default value is "feff", which tells
Artemis to use the template file suitable for running Feff6.

If you want to run some other version of Feff, you should set the "atoms->template"
preference variable to the appropriate value. Templates are provided with Artemis for
writing Feff7 and Feff8 input files. Feff8 input files can be written which are suitable
for XANES or non-self-consistent EXAFS calculations.

Sometimes, it is useful to modify template files for writing out specialized "feff.inp"
data. If these modified template files are placed in "~/.horae/atp/" (unix) or "C:Program
Files\Ifeffit\horae\atp" (windows), Artemis will be able to find them.

Final note
A full explanation of how the Atoms algorithms works is beyond the scope of this document

ARTEMIS: The FEFF Input File

ARTEMIS - The FEFF input file

This page displays the Feff input data, which includes some control parameters and a long
list of atomic coordinates. This page is no more sophisticated than a text box which
serves as a primitive editor and a button at the bottom for running Feff. Explaining Feff
is beyond the scope of this document.

When feff is finished, you will presented with a dialog asking how many paths to import.
The choices are none, the first path, the first 10 paths, and all paths. The number in
the third option is configurable in the preferences dialog. Should you ever need to rerun
Feff after starting a project, "none" is usually the right answer. The other options may
result in one or more paths being defined twice in the project -- a confusing situation.

If Feff fails to run to completion, Artemis will try to recognize the problem and post a
suggestion for how to solve the problem. If Artemis does not recognize your problem,
explain it Bruce so he can add that problem to Artemis's database of troubleshooting

ARTEMIS: Interpretation of the FEFF Calculation

ARTEMIS - Interpretation of the FEFF calculation

This page provides a concise overview of the Feff calculation. At the top of the page is
a summary of some of the statistics of the calculation. Below that is a chart showing the
details of each path from the calculation. For each path, the degeneracy, the half path
length and the amplitude factor are shown. The last column shows a tokenized summary of
the scattering path -- this allows you to see at a glance which atoms were involved in the

The information and context menus available on this page allow you organize, understand,
and manipulate the paths in this Feff calculation. Pretty much all functions involving
the paths except writing math expressions for the path parameters are available on this

The interpretation chart
The colors and fonts used in the chart convey information:

Bold, black font
These are paths that have been imported into the project and are included in the fit.

Bold, brown font
These are paths that have been imported into the project but are excluded in the fit.

Normal, black text
These are paths that have not been imported into the project but which are available
to be imported.

Normal, grey text
These are paths that are unavailable for importation into the project. These can be
made available by re-running the Feff calculation. After the Feff run, it is best to
choose the "import no paths" to avoid reimporting paths already in the project. After
that, these paths will be written in normal, black text, indicating that they are
available for import.

Light brown background
The light brown background is used to indicate single scattering paths.

Light blue background
The light blue background is used to indicate collinear or nearly collinear multiple
scattering paths.

Context menus
There are interesting and useful context menus on every part of this page. These menus
are available by right clicking.

Right clicking anywhere in the text box at the top of the page will pop up a menu with
options for viewing files from the Feff calculation.

Right clicking in the interpretation chart will post a menu of options relevant to the
path on the line on which you clicked. Each of the four kinds of paths given by the four
fonts described above has its own menu.

For paths that are imported in the fit, the menu offers options for plotting the path,
displaying that path's page, including or excluding the path in the fit, selecting or
deselecting that path for plotting, making that path the default for evaluation of def
parameters after a fit, displaying the text of the file containing the path, or discarding
the path. The choices for including or excluding and for selecting or deselecting depend
on the state of that path in the Data and Paths List. Also some options might be greyed
out depending on the state of that path.

For paths that have not been imported into the project, the context menu allows you to
import the path with the option of displaying its page or leaving the display on the Feff
interpretation. For paths that are unavailable for import, a message saying so is posted
when one of those lines is right-clicked.

The interpretation chart allows for extended selection of lines in the chart. You can
select additional paths by holding the control key while clicking with the left mouse
button. Holding the shift key while left clicking selects all line between the anchor
(the one outlined with a dashed line) and the one you click on. You can also click and
drag to select all the lines you drag over. When more than one line is selected, the
content of the context menu change to reflect functionality that makes sense for many
paths. Extended selection in the interpretation chart is therefore a good way of
including/excluding, selecting/deselecting, or plotting a large number of paths.

The context menu that pops up when many lines are selected may be a little surprising.
Its contents depend upon the state of the anchored line, which in this case is the one
that you right-click on to post the menu. The options in the context menu will be
suitable to the state of the anchored selection regardless of the states of the other
selected lines. If you choose a menu item that does not make sense for some of the
selected lines, those lines will be ignored.

Here is a concrete example. Suppose that you select a number of lines, some of which are
included in the fit and some of which have not been imported in the fit. If you then
right click on one of the included paths, you will get options appropriate to included
paths. If you then ask to plot the selected paths along with the data, the included paths
will be plotted and the imported paths will be ignored. If, instead, you click on one of
the paths that has not been imported yet, the context menu will give you the option of
importing the selected paths. In that case, the paths that have already been imported
will be ignored.

Trouble shooting
On occassion you might see that lines in the Feff interpretation do not properly report on
the contents of the path. When this happens, site tags are replaced by this string:
"<?>". There are a couple common reasons you might see the "<?>" tags:

1. You have done some advanced voodoo with Feff, editing the "files.dat" or "paths.dat"
files then rerunning the last module to produce specialized output.

2. You have discovered a bug in the algorithm Artemis uses to harvest information from
the Feff calculation. IN that case, you should send the "feff.inp" file or the
Artemis project file to Bruce so he can fix the problem.

Note that the appearance of the "<?>" tags is probably not an indication that Feff has
misbehaved. The Feff calculation has to run to completion and generate its normal output
before this problem can manifest itself. The Feff calculation is almost certainly usable
to analyze the data. The Feff interpretation page is Artemis's attempt to organize
information about the Feff calculation in some user-friendly format. That this
organizational effort failed is not necessarily an indication that Feff failed.

ARTEMIS: The Path Page

ARTEMIS - The path page

The path page is displayed whenever a Feff path is selected from the Data and Paths List.
This page is used to establish the math expressions of the path parameters for this path.

At the top of the page is a line identifying which Feff calculation this path is from.
Below that are three toggles. One is used to include of inlcude or exclude the path from
use in the fit. There are many other ways in Artemis to include and exclude paths other
than to use this toggle. See The Feff interpretation page and "artemis_menubar" for more
discussion of this. Also Control-t is the same as clicking this toggle.

The second toggle is used to specify paths that you would like plotted after a fit (or sum
of paths) is finished. By default, the data and the fit (or sum) is plotted after the fit
(or sum) and no paths are plotted. Any paths selected for plotting will be added to the
plot after the fit (or sum) is finished.

The third toggle is used to set which path is the default path for evaluation of Def
parameters after the fit. It is possible to write math expressions which evaluate
differently for different paths. An example might be a math expression using the "reff"
parameter. For any such Def parameters, it is necessary to tell Artemis which path should
be used for the reporting of those parameters in the log file. The default is to use the
first path listed in the Data and Paths List.

Below that is a box which summarizes the path. This gives some statistics about the path
as well as displaying a color-coded "map" of the scattering path. The central atom is
always displayed in red text. Other atoms are in black text. The grey text shows the
length and scattering angle of each leg of the path. In the case of a high-order multiple
scattering path which has legs which have a non-zero Eulerian eta angle between them, the
eta angle will be displayed as well. If that last sentence was gibberish, it suffices to
know that paths of that sort are almost never observable in real EXAFS data.

At the bottom of the page is the list of path parameters. This is the most important
section of the page because it is here that the details of the fitting model are realized.
There is an entry box for each of the various types of path parameters. The math
expression approporiate for each parameter should be entered in the entry box.

When a Feff calculation is imported into Artemis, a set of automatic parameters are
generated, entered into the list on the Guess, Def, Set page, and entered into the path
parameetr boxes for each path imported. The default behavior of Artemis is to generate a
set of parameters appropriate for a simple, single scattering, first shell fit. While it
might be OK to immediately click the big green button, most fitting models will require
substantial editing.

The right mouse button serves many important purposes on the path page. Clicking the
right mouse button anywhere in one of the entry boxes will highlight the word underneath
the cursor and post a menu. The entries in the menu are for for defining the word as a
parameter on the Guess, Def, Set page. For each parameter type there is the option of
jumping or staying. In either case, the parameter is defined and added to the list on the
GDS page. For jumping, the GDS page is then displayed. For staying, the current path
page remains displayed.

Right clicking on one of the path parameter labels will post a menu of functions related
to defining path parameter math expressions. The "Edit" option will pop up a dialog used
for entering a math expression and then optionally exporting its value to other paths.
The "Clear" option doies just that.

The various "Export" options are ways of constraining path parameters to be the same for
other paths. The "Grab" options make the current path parameter the same as the path
parameter in the previous or following path.

The "sigma^2" label has some additional options. These insert the syntactically correct
text appropriate to using either the Correlated Debye or single frequency Einstein models
for the sigma^2 of the path.

To enable the display of spaces for the "dphase", "k_array", "amp_array", or "phase_array"
path parameters, you must click on the "Extended path parameters" button in the Paths

ARTEMIS: The Log Viewer

ARTEMIS - The log viewer

When a fit is anchored in the Data and Paths list, the log file viewer is displayed in the
main panel. The purpose of this page is to examine log files from the most recent fit or
from previous fits. These log files can be read individually or reports can be generated
based on their contents.

When this page is displayed, each fit is entered into the list box on the left side of the
page. Double clicking the left mouse button on a fit in the listbox will display that
fit's raw log file. Right clicking on a fit will post a menu with choices for displaying
that fit's log file in raw, quick, or columnar form or for performing some other tasks
related to that fit.

Much more interesting than displaying the log files, though, is to generate reports on the
log files. Near the top of the page is a combo box for selecting among the parameters on
the Guess, Def, Set page. Choosing one, then clicking on the "Write report" button will
find extract that parameters best-fit value and uncertainty from each log file. This
feature allows you to track the evolution of individual fitting parameters as you develop
your fitting model.

The combo box containing the names of the fitting parameters is filled using the contents
of the Guess, Def, Set page. Sometimes it may be useful instead to fill the combo box
with the parameter names extracted from a log file. This would be useful, for instance,
for examining a parameter that is was used at one point, but is no longer on the GDS page
or has been made into a skip parameter (and so is not included in the combo box by
default). To do this, right click on a fit and select the "Get parameter list" item.

Some modifications can be made to the reports generated by the log viewer. Clicking on
the "Compute the average value" button tells Artemis to compute the arithmetic mean and
standard deviation of the parameter from the values extracted from the various log files.
These will be displayed in the header of the report.

Clicking on the "Fit Einstein temperature" button will tell Artemis to fit sigma^2 data to
a model consisting of a single frequency oscillator plus a constant offset. The report
header will then contain the best fit values and uncertainties for the characteristic
temperature and constant offset. This calculation will only happen is the figures of
merit for the selected log files are temperatures and the best fit values for the chosen
parameter are reasonable sigma^2 values. This function makes a series of checks on the
figures of merit and best fit values to determine if they seem to be data appropriate for
this calculation. These heuristics can be tuned by setting parameters in the logview
section of the preferences dialog.

The final item in the context menu that is displayed when right clicking on an item in the
log files list is an option to restore that fitting model. Among the information that is
saved every time a fit is made is a complete description of the fitting model, including
which data file is being fit, the complete list of Feff path used, and all fitting, data,
and path parameters. This feature allow you to revert Artemis to the state it was in when
a past fit was made. When you do this reversion, Artemis will clear out the contents of
the Data and Paths List and then recreate the project in the form of the selected fitting
model. This is more that just a change of parameter values. Artemis keeps track of all
data and Feff paths used throughout the course of the project and can restore even fits
that are significantly different from the current fit.

Importing Athena project data || Output files || Artemis project files ||

ARTEMIS: Plotting Data

ARTEMIS - Plotting data

Plots in Artemis are made using the selected items in the Data and Paths List, which are
the ones highlighted in orange. See the main document section for an explanation of how
to selected items for plotting.

At the top of the plot panel are three big, red buttons. One is for making a plot in
k-space, one is for R-space, and the third is for q-space (i.e. back-transformed k-space).

Below the plot buttons are a set of radiobuttons for setting the k-weight to use in the
plots. The k-weight chosen will be used to weight a plot in k-space or to weight data for
Fourier transforming. The same k-weight is used for each selected item. The button
marked "kw" needs some explanation. When this button is chosen, the k-weight to use in
the plot will be determined from the data being plotted. If the arbitrary k-weight
enabled for the data set,the value for the arbitrary k-weight will be used, other wise the
smallest k-weight value enabled will be used. There are two reason to use the "kw"
button. One is to plot using your arbitrary weight. The other is to make a plot of two
or more data sets using a different k-weight for each data set.

Note that these k-weight controls are unrelated to the controls which set the k-weight
used in the fit. K-weighting for fitting and plotting are controlled independently.

Selecting What Gets Plotted
Below the k-weight radiobuttons are menus for choosing which part of the complex functions
chi(R) or chi(q) to plot. Plots involving multiple parts of the complex functions (e.g.
real+envelope) are not currently possible.

Below these menus are three checkbuttons used for plotting the Fourier transform window,
the background function, and the residual. If the window button is pressed, the
appropriate window function will be plotted in any plot. The background and residual
functions are only plotted if one of the selected items is a fit. The background will
only be plotted if a background corefinement was made for that fit. If a fit is not among
the selected items, the background and residual will not be plotted. Note that a plot
with more than one selected fit may be quite confusing if the background or residual
buttons are depressed since the background and residual will be plotted for each fit.

The ranges over which the plot will be made in the three spaces are controlled by the
three sets of entry boxes.

Extra Plotting Features
The two additional tabs in the plotting panel contain the controls for the following


Indicators are vertical bars that can be placed at user-chosen locations in k-, R-, or
q-space. These indicators will get displayed every time a plot is made. The idea is that
indicators are a guide to the eye, drawing attention to a place of interest as the data
being plotted changes.

Indicators selected in either k- or q-space will be plotted in both k- and q-space, but
not in R-space. Likewise, indicators selected in R-space will not be plotted in k- or

Several characteristics of the indicators, including the number, the linetype, and the
color, can be set in the Plot section of the preferences dialog.

The indicators play well with each of the plotting options described below.


Stacking refers to a vertical displacement the various traces. This is most useful for
plotting the various path contributions in k-space, but is sometimes useful in other kinds
of plots as well. Stacking requires three parameters which are set in the stacking
notecard. The first control is series of radio buttons for choosing whether stacking
happens in k-space, always, or never. If the k-space option is chosen, then q-space plots
of the real or imaginary parts will also be stacked. (Basically, the "k-space" choice
refers to any wiggly function of wavenumber.) The other two controls set the initial
offset value and the increment between staces.


Inverting is a useful tool for displaying the path contributions in "|chi(R)|" plots.
When this is selected, the "|chi(R)|" from any paths included in the plot will be
multiplied by -1 so that they stick down below the zero-axis. Hopefully this kind of plot
help reduce clutter while still helping to show which paths contribut where. The
radiobuttons on this notecard allow you choose between never inverting, inverting
"|chi(R)|", or inverting both "|chi(R)|" and "|chi(q)|". The real and imaginary parts in
R- or q-space are never inverted. chi(k) is also never inverted. Inverting is turned off
whenever stacking is selected and would effect the current plot (i.e. you cannot stack and
invert at the same time).

Data set offsets

This feat ure is useful for multiple data set plots. This is similar to stacking in that
the parameter denotes a vertical offset for use i the plot. Each trace associated with a
particular data set is plotted at the same lavel, but the data sets will be offset by the
amount specified by this control. This provides a way of simultaneously visualizing all
parts of a multiple data set fit. Negative values are recommended, with a negative
offset, the traces will be plotted in the same order from top to bottom as in the plot

Stacking is disabled when data set offsets are used. Inverting is used with data set
offsets, although I think this results in confusing plots.

Palettes || Using the Data and Paths List || =head1 ARTEMIS: Editing Math Expressions

ARTEMIS - Editing math expressions

The math expression editing dialog is a way of setting path parameter math expressions for
many paths at once. It works on a given path parameter, e.g. it sets e0 or sigma^2 for
many paths but does not touch other path parameters. This dialog is available in two
different context menus. If you right click on a path parameter label on the path page
and selection "Edit for many paths", then the dialog will pop up for editing that
parameter. If you right click on an entry on the Feff interpretation page and select the
"Edit path parameters" cascade, then select a path parameter, the dialog will pop up for
editing that parameter.

Operation of the dialog
The dialog is fairly simple. At the top is a text entry box for typing in your math
expression. Below that are various radiobuttons for specifying how to apply the math
expression to the various paths in your project. The options are:

1. Add the math expression to every path in the current Feff calculation.

2. Add the math expression to every path in the each Feff calculation.

3. Add the math expression to every path in the each Feff calculation associated with the
current data set.

4. Add the math expression to selected paths (i.e. the ones highlighted in orange in the
Data and Paths list).

You can write your math expressions using token. Tokens are short character strings which
will be replaced by path-specific information as the math expression is applied to each
path. The tokens are:

%i The path index from the Feff calculation. This is actually computed from the name of
the `feffNNNN.dat' file from the Feff calculation. For instance, if the file is
`feff0029.dat', then %i will expand to 29.

%I The path index from the Feff calculation, padded to fill four characters. For
instance, if the file is `feff0029.dat', then %I will expand to 0029.

%r The effective path length (or "reff") from the Feff calculation for the path.

%d The degeneracy of the path.

%D A template for the Debye function. This always expands to the string
"debye(temp,thetad)" and may need be edited after the fact to use the correct variable
names. This is offered because the author finds it hard to remember the order of the
arguments to the Debye function.

%E A template for the Einstein function. This always expands to the string
"eins(temp,thetae)" and may need be edited after the fact to use the correct variable
names. This is offered because the author finds it hard to remember the order of the
arguments to the Einstein function.

ARTEMIS: Automated First Shell Theory

ARTEMIS - Automated first shell theory

Sometimes thinking about a fitting model is more than a problem merits. You just want a
quick 'n' dirty stab at the first shell -- perhaps to measure the centroid of the
distribution, perhaps to tell if a sample is 4- or 6-coordinated. Whatever.

Artemis is not extremely well suited to rapid-fire, first shell analysis. By design,
Artemis tends to force the user to slow down and think hard about every step. Artemis is
powerful, but she ain't simple.

The quick first shell (QFS) theory tool is an attempt at addressing this shortcoming. It
works like this:

1. Import some data. Set the Fourier transform and fitting parameters to suitable
values. Specifically, be sure to set the fitting range such that it encloses the
first peak of the data.

2. Select "Quick first shell theory" from the Theory menu. This will display the QFS

3. The QFS dialog provides spaces for selecting the parameters for a simple first shell
theory. These include the atomic species of the absorber and the scatterer, the
absorption edge of the experiment, the approximate distance between the absorber and
scatterer, and the coordination geometry to use in the Feff calculation.

Currently the following coordination geomatries are available:

· 4-coordinate crystal

· 6-coordinate crystal

· octahedral molecule

· tetrahedral molecule

· square-planar molecule

The QFS theory is probably not highly sensitive to the choice of coordination
geometry. Since the unknown sample is probably not well described by any of these
geometries, they are all merely approximations for use in a quick 'n' dirty fit.

4. Once you have set up the parameters for the QFS theory, click the "Do it!" button.
This will step through the following without pausing:

a. Build an input file for the Feff calculation

b. Run Feff

c. Import the first path from the Feff calculation

d. Create a set of guess parameters for the amplitude, the sigma^2, the e0, and the
delta R. Also created are set parameters for the third and fourth cumulants, but
they are set to zero. These higher cumulant set parameters are created to make it
easy to consider higher cumulants in subsequent fits merely by changing them from
set to guess.

If you have a mixed first shell, you might choose to repeat steps 2 through 4 two or more

At the end of this sequence, you are left with Artemis in its normal state. You may need
to adjust the parameters used in the fit. The QFS dialog is really just a tool for
initially setting up the project. It in no way changes the normal operation of Artemis.

If you import data from an Athena project file, the species of the absorber and the edge
will be set correctly when you start the dialog.

The Menubar || The preferences dialog ||


Here are the relevant URLs:






You betcha!


Artemis was the goddess of the hunt, an apt metaphor doing EXAFS analysis. ARTemis is also
a pun on the nature of EXAFS analysis that works in English and in the romance languages.

Use artemis online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Open-source tool to access Amazon S3
    file storage. S3cmd is a free command
    line tool and client for uploading,
    retrieving and managing data in Amazon
    S3 and ot...
    Download s3cmd
  • 2
    XyZerKunG ServerTool
    XyZerKunG ServerTool
    XyZerKunG ServerTool helps you to make
    your own Minecraft server and play with
    your friend for a few minutes.
    Features:Automatically create a
    Minecraft serverU...
    Download XyZerKunG ServerTool
  • 3
    Java source intended to serve as a
    nexus for teaching both mathematics and
    software solutions for computation on
    iterative equations. Public interfaces
    allow a...
    Download CalcTools
  • 4
    Rocket.Chat Desktop Client
    Rocket.Chat Desktop Client
    Rocket.Chat Desktop client is the
    official desktop app for Rocket.Chat,
    the simple but powerful open source web
    chat platform. It's tested on macOS,
    Download Rocket.Chat Desktop Client
  • 5
    OfficeFloor provides inversion of
    coupling control, with its: - dependency
    injection - continuation injection -
    thread injection For more information
    visit the...
    Download OfficeFloor
  • 6
    DivKit is an open source Server-Driven
    UI (SDUI) framework. It allows you to
    roll out server-sourced updates to
    different app versions. Also, it can be
    used fo...
    Download DivKit
  • More »

Linux commands