laue_dials.optimize_indexing

Introduction

This script optimizes Miller indices and wavelengths jointly.

This program takes initial monochromatic estimates of the geometry in a DIALS experiment list and reflection table, and optimizes the indexed solution by allowing the wavelength to vary. Only Miller indices, s1 vectors, and wavelengths for scattered reflections are overwritten by this program - all other geometry variables remain constant here.

The outputs are a pair of files (optimized.expt, optimized.refl), which mimic the input files but with updated Miller indices, s1 vectors, and wavelengths in the reflection table. Note that the experiment list is unchanged entirely.

Examples:

laue.optimize_indexing [options] monochromatic.expt monochromatic.refl

Basic parameters

output {
  experiments = 'optimized.expt'
  reflections = 'optimized.refl'
  log = 'laue.optimize_indexing.log'
}
geometry {
  unit_cell = None
}
filter_spectrum = True
keep_unindexed = False
nproc = 1
n_macrocycles = 3
wavelengths {
  lam_min = None
  lam_max = None
}
reciprocal_grid {
  d_min = None
}

Full parameter definitions

output {
  experiments = 'optimized.expt'
    .help = "The output experiment list filename."
    .type = str
  reflections = 'optimized.refl'
    .help = "The output reflection table filename."
    .type = str
  log = 'laue.optimize_indexing.log'
    .help = "The log filename."
    .type = str
}
geometry {
  unit_cell = None
    .help = "Target unit cell for indexing."
    .type = floats(size=6)
}
filter_spectrum = True
  .help = "Whether to remove reflections outside of the provided wavelength"
          "limits."
  .type = bool
keep_unindexed = False
  .help = "Whether to keep unindexed reflections."
  .type = bool
nproc = 1
  .help = "Number of parallel processes to run."
  .type = int(allow_none=True)
n_macrocycles = 3
  .help = "Number of macrocycles of index optimization to perform. A value of"
          "0 performs one round of assignment without outlier rejection or"
          "crystal rotation."
  .type = int(value_min=0, allow_none=True)
wavelengths {
  lam_min = None
    .help = "Minimum wavelength for beam spectrum."
    .type = float(value_min=0.1, allow_none=True)
  lam_max = None
    .help = "Maximum wavelength for beam spectrum."
    .type = float(value_min=0.2, allow_none=True)
}
reciprocal_grid {
  d_min = None
    .help = "Minimum d-spacing for reflecting planes."
    .type = float(value_min=0.1, allow_none=True)
}