Table of Contents


marIndex - Fully automatic autoindexing program using diffraction spots collected by program marPeaks.


marIndex [ -v <mode> ] [ -s <service> ] [ -f FILE ] FILE


marIndex reads a list of reflexion spot coordinates from one or more images as obtained by program marPeaks. The spot file produced by marPeaks (<name>.pks) features a header that contains the most relevant parameters required for autoindexing. These parameters are wavelength, sample-to-detector distance, approximate beam position, and goniometer angle(s)/spindle axis setting(s) of the image(s), as well as the pixel size.

Otherwise, marIndex can read a keyworded parameter file (<name>.ctrl or <name>.amp; amp="automar parameters") with the keywords described below. marIndex will also consider the contents of a file called <name>.prm if it resides in the current directory. This ".prm" file is supposed to contain fixed parameters valid for all images of a data set, e.g. the wavelength or distance. Note, that the entries found in the ".ctrl" file will take precedence over entries found in the ".prm" file! The keyword nomenclature for both ".prm" and ".ctrl/.amp"-files is the same.

marIndex does not need a guess even for the order of magnitude of the lattice constants; nor is marIndex necessarily lost if the beam position is off by more than half the spot distance. marIndex will usually come up with the right answers if at least 20 spots are available; in favourable cases it may succeed with as few as a dozen.

marIndex produces a file (<name>.amp) containing all input parameters and - in addition - the resulting cell axes, angles, orientation and zone axes refinement parameters. This file can be taken directly as input to prediction (marPredict) and integration (marProcess). marIndex also produces an extensive log file called <name>.marIndex.

The program can be run stand-alone but usage within the graphical user interface automar is highly recommended.


Print usage information.

-v <mode>
Verbose mode. <mode> can be "p" (for protocol). Gives more extensive program log output.

-s <service>
Gives the type of orientation matrix output format. Can be "NONE" or any combination of "AUTOMAR", "DENZO", "MOSFLM", "MARXDS" and "XDS". The default is "NONE" for the standard output (on terminal window) and "AUTOMAR MOSFLM DENZO XDS" for the log file. When using "-s MOSFLM", a file called <name>.UMAT will be produced that contains the matrix in MOSFLM notation (which should be entered then with keyword UMAT) and a file called <name>.mosflm containing keywords to be used within MOSFLM.

Read diffraction parameters from file FILE, e.g. marIndex.ctrl. Alternatively, a spot file as produced by marPeaks (<name>.pks).

Coordinate System

The coordinate system is defined such that X is the horizontal axis and Y the vertical axis, the origin being the lower left corner when seen in direction of the beam onto the detector surface.

Detector tilt and rotation are defined by 3 rotation angles around X, Y, and the detector normal Z (axis not used otherwise), in the math. +ve sense. Positive tilt_X or tilt_Y bring the upper or left half of the detector closer to the sample. A positive rotation (turn_Z) rotates the detector plane counter-clockwise as seen from the sample.

To avoid confusion, crystal coordinates x & y are defined parallel to X & Y, making the z-axis anti-parallel to the beam direction.

Crystal axes are defined by permutation indices {l1,l2,l3} with values +|-(1,2,3) where "1" denotes the a*-axis, "2"=b*, "3"=c*; "+" means parallel and "-" anti- parallel to a coordinate axis; in this way l1 gives the reciprocal crystal axis along the x-axis; l2 that one "up" in the x-y-plane. The l3 index (towards the radiation source) is redundant, but may be forced to yield a left- handed system.

Orientation angles are given in degrees and are numbered the same way but are applied from right to left:

rotates around the z-axis (counter-clockwise when looking along the beam). Applying this missetting first allows easy setting of e.g. a crystallographic face diagonal along the rotation axis by phi_z = 45. + delta_phi_z, where delta_phi3 is the true missetting angle. The 45 deg. are not altered by any of the other phi_x,phi_y

rotates around the y-axis, again in the math. +ve sense.

is a mere correction of the spindle axis (if it is horizontal) and may thus be used as an offset for the PHI axis reading.

Example: hexagonal c*-axis along the (horizontal) PHI-axis, a* up => (3,1,2). phi_x=30 brings the b*-axis exactly against the beam.

marIndex always produces setting parameters with missetting angles < 45 deg. (except for trigonal alternatives) and assigns permutation indices accordingly, although an easier permutation of axes may exist - especially in the case of equivalent axes (e.g. a cubic crystal might always be described by "axes 1 2 3" but may be assigned "3 1 2").


The accepted keywords in the parameter file (either ".amp", ".ctrl" or ".prm) are given below. Lines starting with "!", "#", "*", "----" or "remark" will be ignored. In addition, a "!" somewhere in a line will make the rest of the line to be ignored. Keywords are case insensitive.

SPAC*e-group <number> or <name>
Space group of crystal.
Default: SPACE-GROUP ? (undefined)

LATT*ice <name>
Bravais lattice or extinction group: one of "aP", "mP", "mC", "mA", "mB", "mI", "hP", "hR", "oP", "oC", "oI", "oF", "tP", "tI", "cP", "cI", or "cF". Obsolete when SPACEgroup given.
Default: LATTICE ? (undefined)

CELL <a> <b> <c> [<alpha> <beta> <gamma>]
Unit cell parameters in Ang, deg. The cell parameters will not really be used by the program, but if given, a consistency check will be made with the given spacegroup or lattice.
Default: undefined

DIST*ance <dist> [tolerance] [fix]
Sample to detector distance in mm. Optional arguments are a tolerance (in percent of the input distance) for shifts of the distance during parameter refinement. A tolerance value of 0.0 can be given as argument "fix", i.e. the distance will not be allowed to vary.
Default: DISTANCE 100.0 1.0

WAVE*length <lambda1> [delta_lambda1/lambda1] [<lambda2> [delta_lambda2/lambda2]]
Wavelength of radiation in Ang.. May be given as "Cu", "Mo" or "Ag". With "Mo" or "Ag" the program will consider K-alpha_1 and K-alpha_2 components of the radiation. With "Cu", the program will consider K-alpha and K-beta components of the radiation. Delta_lambda1/lambda1 is optional (e.g. 0.003 for Cu-radiation). A second wavelength and its delta_lambda2/lambda2 may optionally be given.

MOSA*icity <mosa_x> [<mosa_y>]
Mosaic spread of crystal in degrees. When no y-component is given, the mosaicity will be assumed to be isotropic. The mosaic spread will not actually be used by the program, but when specified no refinement will be carried out.
Default: undefined

DIVE*ergence <div_y> [<div_x>]
Divergence of the beam in degrees. When no x-component is given, the divergence will be assumed to be isotropic. The divergence will not actually be used by the program, but when specified no refinement will be carried out.
Default: undefined

CHI <chi>
CHI angle in degrees.
Default: CHI 0.0

OMEGA <omega>
OMEGA angle in degrees.
Default: OMEGA 0.0

TWOTHETA <twotheta>
2-Theta angle in degrees.
Default: TWOTHETA 0.0

RESO*lution <max>
Max. resolution limit in Angst.
Default: RESOLUTION 2.0

BEAM*center <xcen> <ycen> [fix]
Center of beam in x and y (pixels). By providing the optional argument "fix", the center will not be refined.
Default: Half plate diameter.

PIXE*lsize <pixelsize_x> [<pixelsize_y>]
Pixelsize in x (and y, if differing from x) in mm .
Default: PIXELSIZE 0.150

IMAG*e <ffrm> <lfrm> START <phi_beg> OSC <dphi>
First (<ffrm>) and last (<lfrm>) image for which to generate reciprocal lattice coordinates, the PHI position at the beginning of image <ffrm> (<phi_beg>) and the delta-PHI (<dphi>) per image.
Example: IMAGE 1 1 START 0.0 OSC 1.0

PEAK*file <peak_file.pks>
Specifies the complete spot file name as produced by program marPeaks. This keyword is mandatory when used on a input file of type ".ctrl" or ".amp" and obsolete on a peak file as input file.
Example: PEAKFILE ./index.pks

SCAN <size_x> [<size_y>]
No. of pixels in image in 1 dimension. Use one of: 1200, 1600, 1800, 2000, 2300, 3000 or 3450 (all IP) or 2048 (CCD)
Default: read from peak file header

AXES <l1 l2 l3>
Direction of the reciprocal axes in marIndex notation. When given, the assignment will be forced, leading to possibly large orientation angles.
Default: undefined

TILT <tilt_X> [<tilt_Y>]
Detector tilt in the horizontal plane and in the vertical plane in degrees.
Default: TILT 0.0 0.0

ROT <turn_Z>
Detector rotation with respect to the projection of the 2-theta axis in degrees.
Default: ROT 0.0

SKEW <tilt_X> <tilt_Y> <turn_Z>
Combines keywords TILT and SKEW (see above).
Default: SKEW 0.0 0.0 0.0

(BEAM-)STOP <x_beg> <y_beg> <x_end> <y_end> [<width>]
Reject spots within a rectangle defined by <x&y_beg> in the lower left corner to <x&y_end> in the upper right corner (in pixel units). To exclude areas that are not running parallel to the horizontal and vertical plane, specify the <width> of the rectangular section. In that case, the x&y-coordinates given mark the start and end of a line and 2*<width> would be the thickness of the line .
Default: STOP 0 0 0 0 0

FIX [beam or center] [distance] [cell]
Given parameters will be excluded from refinement.

Input Files

marIndex requires the input file to reside in the local directory. Input files can be just a spot file produced by program marPeaks in "AUTOMAR" format (i.e. extension .pks). Otherwise, a control parameter file (<name>.ctrl) and/or the output parameter file of marIndex (<name>.amp) can be used. Parameters will also be read from a file <name>.prm if it exists in the local directory. Parameters found in this file will override parameters given in any other input file!

Output Files

Depending on the <service> switch on command line input, marIndex will produce one or more files with orientation parameters and/or keyworded parameter files compatible to programs MOSFLM, DENZO and XDS:


The program itself is called in a very simple way:

marIndex marIndex.ctrl
The program reads parameters from file marIndex.ctrl in the local directory.

marIndex xtal_001
The program reads parameters from file xtal_001.amp in the local directory. If xtal_001.amp doesn’t exist, xtal_001.pks will be tried.

marIndex xtal_001.pks
The program reads spots from file xtal_001.pks in the local directory. If xtal_001.pks doesn’t exist, xtal_001.mar will be tried. Note, that the ".pks" file contains all required parameters (distance, wavelength) in the file header!

Example of file contents of the input parameter file:

scanmode1200 x 1200
pixelsize0.150 0.150
beamcenter600.0 600.0

See Also

automar, marPeaks, marPredict,



Klaus Bartels, marXperts GmbH, Norderstedt, Germany


© Copyright 1997-2003 marXperts GmbH, Norderstedt, Germany


marXperts GmbHPhone: +49 - (40) - 529 884-0
Werkstr. 3 FAX: +49 - (40) - 529 884-20
D-22844 Norderstedt -

Table of Contents