doi:10.1016/j.jsb.2006.07.020
Copyright © 2006 Elsevier Inc. All rights reserved.
2dx—User-friendly image processing for 2D crystals
Bryant Gipsona, Xiangyan Zenga, Zi Yan Zhanga and Henning Stahlberg
, a, 
aMolecular and Cellular Biology, University of California at Davis, 1 Shields Ave., Davis, CA 95616, USA
Received 11 May 2006;
revised 25 July 2006;
accepted 29 July 2006.
Available online 1 September 2006.
References and further reading may be available for this article. To view references and further reading you must
purchase this article.
Abstract
Electron crystallography determines the structure of two-dimensional (2D) membrane protein crystals and other 2D crystal systems. Cryo-transmission electron microscopy records high-resolution electron micrographs, which require computer processing for three-dimensional structure reconstruction. We present a new software system 2dx, which is designed as a user-friendly, platform-independent software package for electron crystallography. 2dx assists in the management of an image-processing project, guides the user through the processing of 2D crystal images, and provides transparence for processing tasks and results. Algorithms are implemented in the form of script templates reminiscent of c-shell scripts. These templates can be easily modified or replaced by the user and can also execute modular stand-alone programs from the MRC software or from other image processing software packages. 2dx is available under the GNU General Public License at 2dx.org.
Keywords: 2dx Software; Electron crystallography; 2D crystals; Membrane protein; Structure determination; Computer image processing; MRC software
Fig. 1. The five programs of the 2dx package. 2dx_manager coordinates the project, and launches the 2dx_image and 2dx_diffraction programs for the processing of images and diffraction patterns. Data will be merged by 2dx_merger. 2dx_logbrowser assists in the evaluation of the log-files.
Fig. 2. 2dx_manager in its current state assists in the generation of a default directory structure for a protein project, which here is called “Prot”. Images should reside in their own dedicated directory (e.g., Prot0012345678), which are grouped according to their nominal tilt angles (here: non-tilted in “Prot-00”, and 30-deg tilted in “Prot-30”). Merging directories for the 2D merging of the non-tilted images, and for the 3D merging of the entire project are also provided.
 |
Fig. 3. An example for the script template used by 2dx_image. This c-shell template contains code words that control the widget generation in the graphical user interface (GUI) of 2dx_image. “# Title:” and “# SORTORDER:” allow the definition of the title and order under which the script will appear in the GUI. “# SECTION:” signals the beginning of a new parameter section in the central panel of the GUI. The following 6 lines define one parameter entry for that pane: LABEL is the title of the parameter, LEGEND is the short explanation in the pop-up window associated with that parameter. EXAMPLE allows suggesting the syntax for a correct entry. HELP defines the web page, where online help can be found. TYPE instructs the GUI to construct the widget for this parameter in a specific way (here as Drop_Down_Menu). Finally, “set test_spacegroups_val =” defines the default value for that parameter. The following section with the code words “# GLOBAL:” requests other globally known parameters that should appear in the GUI (here only RESMAX). This section is terminated with the flag “#$end_local_vars”. The following section requests parameters, which the GUI will enter when translating this script template into the actual executable script. In this example, “realang” and “realcell” will not be editable in the GUI for this script, because they are not declared as “# GLOBAL:”. However, these values will available for this script. This section terminates with “#$end_vars”. The remainder of the script template is a normal c-shell script. The output of the command echo “
@progress: 10
” will cause the GUI to advance the progress bar, setting it here to 10% of the execution progress. Logfile output starting with “::” will be displayed by the GUI also under only the lowest verbosity settings. “:” defines moderate verbosity output, and lines without leading colons appear only under highest verbosity settings. Output into the file 2dx_allspace.results (<filename>.results) in the form of, for example, “echo “set SYM = ${SPCGRP}”
2dx_allspace.results” would return a new value for the parameter SYM to the GUI, which would store it in the 2dx_image.cfg database. The results file can also be used to flag image files that should appear in the list of images for inspection. “echo “# IMAGE: outputimage.mrc”
2dx_allspace.results” in this example instructs the GUI to include this image file in the list of viewable images. The final command “echo “
@progress: 100
” advances the progress bar to 100%.
Fig. 4. The 2dx_image graphical user interface. For a description see text. The bottom left pane displays either the image file header information, as in this example, or the image thumbnail preview.
Fig. 5. The 2dx_image workflow. 2dx_image maintains a local database (2dx_image.cfg), with which script templates are translated into local executable scripts. These scripts can be launched, with their output and processing results then channeled back into 2dx_image.
 |
Fig. 6. The 2dx_image full-screen browser, here displaying a Fourier transformation of an image. A pull-down menu allows activating various panels. The Coordinate Info panel displays the current mouse coordinates, the corresponding resolution, and the Miller indices of the closest lattice spot. The Contrast/Brightness panel allows adjusting the display parameters. The Parameters panel allows defining the dimensions of the different symbols. The spots in the current spotlist are displayed when the “Peaks” option is selected. The current Lattice and Second Lattice can be displayed, as well as the Thon rings of the contrast transfer function (CTF), which is defined by the given defocus and astigmatism values. A Spot Selection mode and a Lattice Refinement mode allow manually editing or refining the spotlist and lattice vectors. The entire display can be zoomed up or down. Following the excellent development in the MRC program Ximdisp.exe, a mouse-activated local zoom window can be produced with the mouse. Determined values for the spotlist, the lattice vectors or the defocus values are automatically transferred back into the 2dx_image GUI.
Fig. 7. The QVal-based parameter refinement. A search for the best parameter for maskb1 resulted, in this example, in an optimal QVal value with maskb1 = 10.