-
Notifications
You must be signed in to change notification settings - Fork 7
Home
DUI2 is a graphical user interface for processing macromolecular crystallography (MX) diffraction data with DIALS. It is a client/server application (hence "DUI" — DIALS UI) that wraps the individual DIALS command-line programs (dials.import, dials.find_spots, dials.index, dials.refine, dials.integrate, dials.symmetry, dials.scale, dials.merge, dials.export, etc.) in a single interactive window, so you don't have to type each command by hand.
DUI2 is developed within the CCP4 ecosystem and can be launched in several ways:
- directly from a terminal (with the DIALS/CCP4 environment sourced) by typing
dui2 - from CCP4i2, via the "Integrate Images with DIALS" task
- from CCP4 Cloud, although running it locally from Cloud is not recommended, since it's harder to resume an unfinished session that way
Data processing with DIALS can be done in three ways: typing each tool on the command line, letting xia2 make automated choices for you at every stage, or running the same tools interactively through DUI2. DUI2 sits between those two extremes: it gives you the convenience of a GUI while still letting you see, understand, and control every processing decision DIALS makes.
DUI2 is aimed at:
- Learning and teaching — seeing each DIALS step and its output (log, report, images, reciprocal lattice) makes it easier to understand what is happening at each stage of processing.
- Interactive, exploratory processing — for data that doesn't process cleanly with default, automated settings, DUI2 lets you inspect intermediate results and adjust parameters before moving on.
- Reproducible experimentation — every command you run becomes a node you can revisit, meaning you can try different parameters or strategies without losing earlier results.
The central idea of DUI2 is a tree / flow graph of processing steps. Every DIALS command you run creates a new node in this tree, and you can click on any node to jump back to that point in your processing and continue from there — including forking the tree to try a different path without losing what you already have.
A typical session looks like this:
-
Start DUI2 from inside a working directory. DUI2 writes its files (logs,
.expt/.reflfiles, etc.) to the directory it was launched from, so it's best tocdinto a dedicated processing directory first and then rundui2. -
Import — click Open images, navigate to your data, and select one image (or the master/
.nxsfile for HDF5/Eiger data). DUI2 builds a template matching the full data set. Clicking Run launchesdials.import, which reads the experiment metadata and writesimported.expt. -
Find spots — click the find spots button to create a new node, then Run to launch
dials.find_spots. This searches every image for diffraction spots (written tostrong.refl) and is one of the more time-consuming steps since it reads the whole data set. -
(Optional) Search beam position — if the beam centre looks off in the Reciprocal Lattice viewer, an optional
dials.search_beam_positionstep can refine it before indexing. -
Index — click index and Run to launch
dials.index, which finds the crystal lattice from the spot positions and producesindexed.expt/indexed.refl. -
(Optional) Determine the Bravais lattice —
dials.refine_bravais_settingsproposes possible higher-symmetry lattices consistent with the indexed cell. If you pick one, a Reindex step applies it. -
Refine — click Refine to run
dials.refine, which improves the crystal and experimental geometry model, including scan-varying refinement. -
Integrate — click Integrate and Run to launch
dials.integrate, which measures the intensity of every predicted reflection. This is normally the most computationally expensive step. -
Symmetry — click symmetry to run
dials.symmetry, which determines the crystal's true symmetry (and searches for systematic absences), writingsymmetrized.expt/symmetrized.refl. -
Scale (and merge) — click scale to run
dials.scale, correcting for effects like radiation damage, beam intensity variation, and absorption. From here you can merge (dials.merge) to get a merged MTZ, and/or export (dials.export) to get a scaled, unmerged MTZ. Both can be downloaded/saved from the corresponding node.
Throughout this process, the Log, Report, Image, and Reciprocal Lattice tabs let you inspect the output of each step in detail — the command's raw log, an HTML dials.report summary, the diffraction images with overlays (found spots, predictions, Miller indices), and the reciprocal-space view of the spots. If a step doesn't go the way you want, you can always click back on an earlier node in the tree, fork a new path, and try again with different parameters — without losing your earlier work.
For a detailed, step-by-step walkthrough of this workflow with screenshots, see the Legacy tutorial page. For more advanced scenarios (multi-lattice data, anomalous phasing data sets, CCP4i2/CCP4 Cloud integration) see the Multi‐lattice, THAS1, and Beta lactamase pages.