research papers
The Buccaneer software for automated model building. 1. Tracing protein chains
^{a}Department of Chemistry, University of York, Heslington, York YO10 5DD, England
^{*}Correspondence email: cowtan@ysbl.york.ac.uk
A new technique for the automated tracing of protein chains in experimental electrondensity maps is described. The technique relies on the repeated application of an oriented electrondensity likelihood target function to identify likely C^{α} positions. This function is applied both in the location of a few promising `seed' positions in the map and to grow those initial C^{α} positions into extended chain fragments. Techniques for assembling the chain fragments into an initial chain trace are discussed.
Keywords: Buccaneer; model building; tracing protein chains.
1. Introduction
Automated building of atomic models of protein structures from electron density is an important element of a highthroughput structuresolution environment and a useful tool in a nonautomated environment. Current automated building tools incorporate a range of ideas, some of which have been purposedesigned for automation and others that have been adopted from techniques which already exist in graphical modelbuilding programs.
The approach to automated model building described here incorporates one new technique, the use of an oriented electrondensity likelihood target function to identify likely C^{α} positions, along with a range of methods adapted from existing approaches. The resulting combination of methods is very simple and yet shows significant promise as the basis for a new automated modelbuilding system. Before the new developments are described in detail, some other approaches which have been influential in this work will be discussed.
1.1. Graphical modelbuilding tools
Much of the fundamental work on which current automated model building depends is drawn from the work of Jones and coworkers (e.g. Jones, 2004) on graphical tools for model building and in particular the O software. Two approaches are used. The first involves the calculation of a `skeleton' of ridgelines connecting peaks in the electron density. The skeleton is then interpreted in terms of C^{α} positions, which commonly occur near branch points in the skeleton (Jones et al., 1991). The second involves the location of secondarystructure features, in particular helices and strands, by performing a sixdimensional rotation and translation search with an idealized fragment and evaluating the electron density at the atomic centres (Kleywegt & Jones, 1997). These features provide a starting point from which the rest of the protein chain may be traced.
Another important contribution by Jones and coworkers is the docking of the protein sequence to the mainchain trace (Zou & Jones, 1996). This step provides validation of the chain direction and is often necessary before completion of the mainchain trace because flexible loops connecting the more easily interpreted core regions of the protein may not be visible in the electron density. Zou & Jones (1996) score possible sidechain types by a combination of rotomer fitting and a and then `slide' the known sequence against the residue scores to find the most likely match.
Oldfield went on to develop graphical chaintracing tools to perform assisted and automated building (Oldfield, 2002). Secondarystructure features are identified by geometrical analysis of the skeleton ridgelines and these features are then automatically grown to model the loop regions of the molecule by automatic identification of branch points in the skeleton which extend the chain fragments. The resulting method stands out from subsequent automatic procedures because of its speed. Oldfield suggests that the procedure is limited in most cases to data at resolutions better than 4.0 Å resolution (Oldfield, 2003).
1.2. Nongraphical modelbuilding tools
Automated electrondensity interpretation by the identification of atoms with electrondensity peaks has a long history in the field of smallmolecule et al., 2001). The ARP/wARP package has extended this approach to work at successively lower resolutions (Morris et al., 2002). At lower resolutions, atoms are not resolved and therefore individual atomic peaks disappear; however, it is still possible to construct (underdetermined) atomic models which account for the observed data. Morris et al. (2002) apply information about protein geometry to select plausible C^{α} atoms from these redundant models and then conduct an exhaustive search of possible routes through the resulting list of candidate C^{α} atoms to identify a best trace. This approach works reliably when data is available to 2.5 Å resolution and in some cases to worse resolutions (Cohen et al., 2004). Automated sequence docking and lead to a nearcomplete model in many cases.
and has also been applied to macromolecules at high resolution (see, for example, SheldrickAnother approach to the problem of limited resolution is to search for structures larger than atoms. The templateconvolution method (Kleywegt & Jones, 1997) is an example of this and inspired the Fourierbased FFFear method (Cowtan, 1998), later applied as an electrondensitybased likelihood function (Cowtan, 2001) for locating secondarystructure features and larger domains. A similar approach was later adopted by Terwilliger (2001) for the location of secondarystructure elements, implemented in the RESOLVE phaseimprovement and modelbuilding software. The secondarystructure elements may then be grown and joined to complete the structure by adding residues in conformations consistent with geometrical constraints (Terwilliger, 2003). One particularly powerful technique employed in RESOLVE is the building of two additional residues at a time, with the best combined electrondensity fit for the pair of residues determining the final position for the first of the two residues. This `lookahead' approach is more reliable than building a single residue on the basis of density alone.
The CAPRA software of Ioerger & Sacchettini (2002) has some significant parallels with the current work in that it uses patternrecognition techniques to identify likely C^{α} positions in the electrondensity map. An electrondensity skeleton is calculated and orientationinvariant features of the electron density in a 4 Å sphere about a candidate point are processed using a neural network to identify which points on the skeleton are most likely to represent C^{α} positions. The chain is then traced by selecting connected candidate positions using the scores and geometrical constraints. This approach is effective at 2.8 Å resolution or better (Ioerger & Sacchettini, 2002).
2. Method
2.1. Overview
The approach to chain tracing described here is built on the idea of locating likely C^{α} positions and extending these into a chain. The first step resembles the CAPRA approach, but with one very significant difference: CAPRA locates likely C^{α} positions on the basis of orientationindependent density features, whereas Buccaneer uses an orientationdependent measure. This has two benefits.

The discussion here is given in terms of locating C^{α} groups, where a C^{α} group is considered to include the C^{α} atom, the bonded N, C and H atoms and the C^{β} atom when present, these atoms forming a rigid group. However, exactly the same techniques are equally applicable to the location of planar peptide groups (C^{α}, C, O, N, C^{α}) or of for the tracing of DNA and RNA.
Likely C^{α} positions will be located using a densitylikelihood function, which will score possible positions and orientations in the electrondensity map in a sixdimensional search. Each possible configuration will be scored according to how well the density features reproduce the density features of real C^{α} groups in a simulated electrondensity map for a known structure.
A vital element of the calculation is the preparation of this simulated electrondensity map. For the likelihood target function to be valid, the simulated electron density must be on the same scale, represent broadly similar thermal motion and have the same size and type of noise features as the electrondensity map to be interpreted. This simulation process is a complex calculation in itself and is the basis for both the Pirate statistical phaseimprovement software and the Buccaneer chaintracing software and will be described in another paper (Cowtan, 2006).
The whole calculation can therefore be described in terms of four steps.

2.2. Finding initial C^{α} `seed' positions
The aim of the finding step is to locate a few very probable C^{α} positions in the electrondensity map for use as seed points from which longer chains will be grown. This process is related to the location of αhelices in the RESOLVE modelbuilding software. The location of the C^{α} `seed' positions requires a sixdimensional search in both position and orientation. The accomplishment of this search in reasonable time places some constraints on the type of target function which can be used. The approach adopted here is to use a target function for which the translational search may be achieved with a few fast Fourier transforms (FFTs) and to perform an FFTbased translation search for every possible orientation of the density target.
A suitable target function for this type of calculation is the weighted density agreement function described by Cowtan (1998), which described how a localized density agreement function could be efficiently calculated using FFTs. This work was extended (Cowtan, 2001) by the use of the same function to calculate a density likelihood function in the presence of noise. The analysis here follows the same approach, with the exception that the term introduced there to account for the noise in the target map is replaced by the use of a simulated noisy map in the construction of the likelihood target function.
The search function is constructed using Bayes theorem,
In this case the data are the electrondensity map and the model is a specific placement of the search density for the C^{α} group. Let F represent the case that the electron density arises from a correctly positioned and oriented C^{α} group and represent the case that the electron density arises from any other source (i.e. an incorrectly positioned C^{α} group or density arising from a completely different source). Then, the probability of a correctly positioned C^{α} group given an individual density value from the map is given by
P[ρ(x)] is the probability of the `observed' map density at x. It may be calculated as a marginal distribution of P[ρ(x), C], C ∈ (F, ), i.e.
It is more likely that an electrondensity value will arise from any other source than from a correctly positioned and oriented C^{α} group, therefore will dominate over P(F). Neglecting both this first term and also the prior probabilities P(F) and , which will be assumed to be uniform, (2) becomes
There are a number of C^{α} groups in the reference map, each represented by a different pattern of electrondensity values in the region around it. For each position in the region of a standard C^{α} group placed at the origin, a distribution of electron densities will be calculated based on the different values appearing in that position relative to the C^{α} atom when considering all the C^{α} groups in the reference structure. The probability of a particular electrondensity value given a particular correctly positioned C^{α} group will be approximated by a Gaussian whose mean is the expected electron density and whose variance is given by the variance of the distribution of densities at that position when calculated over all the C^{α} atoms in the simulated reference map. These will be termed ρ_{frag}(x) and σ_{frag}(x)^{2}.
The probability of an observed density value arising from a correctly positioned C^{α} group is then
where x′ is the coordinate relative to the C^{α} which maps to the point x in the map under the current translation and orientation of the C^{α} group.
The probability of an observed density arising from some other source than a correctly positioned C^{α} group is estimated from the simulated reference density map by examining the density in regions not correlated with C^{α} features (but avoiding solvent). If the mean and variance of such uncorrelated density are given by ρ_{rand} and σ_{rand}, then
Substituting these expressions in (4) and discarding the constant terms gives
where
and
Finally, the probability indications for the presence of a C^{α} group on the basis of each individual density value in the map are combined to give an overall indication of the probability of a the C^{α} group being present with the given translation and orientation,
It is more convenient to calculate the logarithm of this expression,
The resulting function may be efficiently calculated for a single orientation as a function of position in the cell using an FFT approach. Let the translation search function, which gives the agreement between the C^{α} group density (in the current orientation) and the electron density as a function of translation, be called t(x). As a simplification, let μ′′(x) = 1/[2σ′′(x′)^{2}]. The search function may then be written as
Note that in the expansion the first term is independent of x and so is only calculated once, whereas the second two terms are convolutions and may therefore be efficiently calculated in as follows,
where represents the Fourier transform, the inverse Fourier transform and * complex conjugation. If the Fourier coefficients of the density and squared density are precalculated, then the translation function may be calculated by three Fast Fourier Transforms (FFTs) per orientation. Since the C^{α} group has no symmetry, the FFTs must be performed in P1.
The electrondensity target function for the location of a C^{α} group is determined by considering the electron density within a 4 Å sphere around each C^{α} in the simulated reference map. This radius was initially inspired by CAPRA (Ioerger & Sacchettini, 2002) and subsequent testing proved it to be a good choice for this method too. The density means and variances are calculated on a fine (0.5 Å) orthogonal grid.
Fig. 1 shows the mean and variance density for a typical search model. The mean density shows the expected pattern of density around the atoms of the C^{α} group, with weaker C^{β} density and bulges in likely C^{γ} directions. However, the variance density shows more interesting features, in particular that the most conserved density is concentrated not only at the mainchain atomic sites, but also at lowdensity positions between the atoms. This highlights the power of the FFFear search function to select both high and lowdensity positions. Note also the hollows around the C^{β} at common C^{γ} sites.
The sixdimensional search is performed over every possible translation and orientation of the C^{α} group and the highest scoring matches are assumed to be correct. Each position and orientation is then refined by a simplex algorithm search and then stored as a `seed' position for chain growth. As a default, one seed position is stored for every five residues expected in the final model, although this parameter is not very critical.
2.3. Growing `seed' positions into chain fragments
The `seed' C^{α} groups are grown into chains by adding additional C^{α} groups both before and after the seed group in positions which optimize the loglikelihood fit to density for the new group while not disobeying the constraints of the Ramachandran plot. The same loglikelihood function is used for evaluating C^{α} positions added by growth as for the initial finding stage; however, it is now evaluated in real space for each candidate position and orientation instead of using the FFT approach.
For the purposes of this calculation, the Ramachandran plot classified by residue type and contoured at two levels: a frequency of >0.0005 rad^{−2} describing an `allowed' region and a frequency of >0.01 rad^{−2} describing a `favoured' region, using the imprecise but commonplace terminology.
The growing process proceeds as follows. To grow a single residue in the forward direction, a search is conducted over the `allowed' values of the Ramachandran angle ψ for the current residue and φ for the next residue. The angles are searched with a uniform angle step of 20°, rejecting any ψ values forbidden by the Ramachandran plot. (When building the first new residue in a chain, no information is available concerning the first φ.) Next, a second residue is built, using a coarser angle search of 30°, but again applying Ramachandran constraints. The best combined loglikelihood score for the two residues is used to select the position of the first residue. The second residue is discarded, having served its sole purpose in validating the position of the first.
This tworesidue lookahead approach is similar to that of Terwilliger (2003). The Ramachandran data used here is from the `Top 500' structures database of Lovell et al. (2003). For the first residue any `allowed' conformation for any residue type is allowed, whereas for the second only `favoured' conformations for nonGly residues are allowed.
Building in the reverse direction occurs in exactly the same manner, except for the reversal of the Ramachandran angles.
A cutoff threshold for the loglikelihood function is required to determine when to stop growing the chain in either direction. This cutoff is established through an effective ad hoc procedure: for each of the initial seed points, three residues are grown in a forward direction. It is then assumed that 90% of the resulting terminal C^{α} atoms will be correct. The scores for the terminal C^{α} atoms are sorted and the value separating the worst 10% from the remainder is used as the cutoff. This is a crude ad hoc criterion which provides only a rudimentary coupling to the quality of the map; however, in practice it is effective in providing useful fragments for processing by the subsequent stages.
Several optimizations are used to improve the performance of this approach. For the full angle search, the loglikelihood function is approximated by only using a subset of the grid points in the calculation. Since each calculation requires a density interpolation from the target map, this saves a significant amount of time. The best 50 conformations of the first residue are used to build the second residue and the best 30 combined scores are then rescored using all the points in the loglikelihood function. Finally, the Ramachandran angles for the best solution are refined using a simplex algorithm search.
2.4. Joining chain fragments
At this stage of the modelbuilding process the model consists of many overlapped chain segments which may or may not be consistent with one another. From these, a single consistent model must be constructed either for visual assessment or for use in conventional
programs. This is achieved in two steps: joining of consistent fragments, followed by pruning of inconsistent fragments.The joining stage merges overlapped fragments wherever this is possible and makes some initial selections between fragments when multiple possible merges are possible. The calculation proceeds as follows.
Firstly, every chain segment is split into a series of overlapping fragments, each containing three residues; i.e. a chain of n residues is split into n − 2 fragments of three residues, with each triresidue fragment overlapping its neighbours by two residues.
Next, multiple traces of the same chain segment are merged by combining any pair of triresidues for which all three C^{α} atoms match to within 2.0 Å. The combination is achieved by averaging all the coordinates of each mainchain atom of each triresidue. This leads to a model in which multiple consistent traces of the same chain segment have been removed.
Next, the triresidues are examined to see how they can be reassembled into chains. A search is conducted over every pair of triresidues to identify any pair for which the second and third C^{α} atoms of the first triresidue match the first and second C^{α} atoms of the second triresidue, to within 2.0 Å. Every such pair is marked as a potential join.
A problem arises when a single triresidue joins to several possible precursors or successors. At this point a decision must be made about the correct routing of the chain. Following the example of Cohen et al. (2004), the different possible routings of the chain are considered and that which yields the longest nonlooped chain is assumed to be correct. An assumption here is that tracing is more likely to skip residues than to insert extra residues.
Identification of the longest possible trace through a list of multiply linked triresidue fragments is a problem of finding the longest path through a directed graph. This is a simple computational problem which is conventionally solved by a dynamic programming technique called `critical path analysis'. However, the conventional implementations must be adjusted to deal with the possibility of looped chains in the hypothetical trace. The implementation is therefore as follows.
Each remaining triresidue is considered to be a numbered node in a directed graph which may have zero or more predecessors and zero or more successors.
The calculation is very fast and leads to the longest possible chain trace through the given fragments in the case where there are no loops. In the case of looped chains, the results are not guaranteed to be optimal; however, they are usually optimal or nearoptimal.
Once a set of chains have been traced through the triresidues, the final atomic coordinates are assembled from the coordinates of the successive triresidues in the chain. A weighted combination of all the overlapped atoms is used in order to achieve a ^{α} towards its extremities.
from one triresidue to the next and thus maintain connectivity in the merged model. The weighting of each triresidue decreases linearly from the central C2.5. Pruning of clashing chain fragments
The previous step will have merged all consistent chain fragments, selecting a single path where fragments branch in different directions. There still remains the problem of inconsistent chain fragments, including two common cases: firstly the case where two fragments trace the same chain in opposite directions and secondly the case where chains cross or clash without any commonality.
Both of these cases are handled by a simple pruning step. Each chain is compared against every other chain, noting any cases where any pair of C^{α} atoms approach to within 2.0 Å. Any clashing C^{α} atoms are removed from the shorter chain. Any segments of the shorter chain which are less than five residues in length are then deleted.
One aim of this approach is to encourage chain tracing in the right direction, under the assumption that reversed chain traces will tend to be shorter than forward traces owing to the use of the Ramachandran constraint in the chaingrowing step. (This is of course only true in loop regions since helices and strands may be traced in either direction without violating Ramachandran constraints; however, in practice the approach is effective.)
2.6. Results
The procedure has been implemented in a software package called Buccaneer using the Clipper crystallographic libraries (Cowtan, 2003). The implementation is extremely simple, involving about 2000 lines of C++ code. The software as outlined here is incomplete in comparison to other software in the field: no of the model or recycling takes place to complete the model and no sequence docking or sidechain building is performed. As a result, the software is not comparable to competing methods at this point. However, some initial results obtained using real data can provide some indications to the capabilities of the method.
The procedure was tested using 58 structures from the Joint Center for Structural Genomics (JCSG) data archive (Joint Center for Structural Genomics, 2006). This is a database of structures solved by largely automated methods. The chosen structures were solved using experimental phasing. For each structure, the JCSG software pursued multiple phasing paths using different software and parameters. A single initial phasing set was chosen for each structure by automatically selecting a structure on the basis of the statistics of the electrondensity map. The selection criteria were crude, however, and so in some cases poor, lowresolution or even wrong phasing has been selected; all of these were kept as a means to test the behaviour of the software.
The selected set of experimental phases for each structure was then subjected to three cycles of phase improvement using the Pirate software (Cowtan, 2000). The resulting phases were used as a starting point for the Buccaneer chaintracing calculation. The calculation for a single structure took between 2 and 30 min on a 2.4 GHz PC, depending on the volume of the and resolution.
The quality of the starting data is described in terms of the data resolution and of the Emap correlation with the map from the final refined structure, the latter being a measure of phase error weighted by E value and figure of merit.
As an initial test, the performance of the `C^{α}finding' step was examined. The sixdimensional FFFear search was used to identify the most probable C^{α} positions in both a good 2.0 Å map (PDB code 1z82) and a poorer lowresolution map (PDB code 1vrb). The likelihood score for the best matches was compared against the distance in angstroms from the candidate position to the nearest C^{α} in the solved structure. The results are shown in Fig. 2. Note that with a good map the likelihood function accurately identifies C^{α} positions. In the poorer map there are a number of wrong positions identified along with the correct ones, although 75% of the candidate positions are still within 1.5 Å of a true C^{α} position. At lower resolutions, later stages in the chaintracing calculation will have to remove fragments traced from incorrect candidates.
Next, the whole procedure was used to trace connected chains. The quality of the Buccaneer model is described in terms of the proportion of the known structure which was correctly built (i.e. completeness) and the proportion of the built model which was correct (i.e. accuracy). These were calculated by counting the proportion of real C^{α} atoms correctly built and the proportion of built C^{α} which were correct. For the purposes of this analysis, a correctly built C^{α} is one which is within 1.9 Å of a true C^{α} position in the known structure and has a neighbour which is in turn within 1.9 Å of a neighbouring C^{α} in the known structure. (1.9 Å was chosen as half the distance separating two C^{α} atoms, a registration error of up to half a residue.)
Table 1 describes the results for the 58 test structures in terms of number of residues, the quality measures of the starting data and the quality measures for the Buccaneer chain trace. The same data are visualized in Figs. 3, 4, 5 and 6.

Completeness varies between 0 and 92% and accuracy between 0 and 100%. Note that neither completeness or accuracy vary strongly as a function of the resolution of the starting data. There is a slight drop in accuracy for the lowest resolution models, but completeness remains consistent. The method appears to be usable at least to the 3.2 Å lowresolution limit of the data available for these tests.
However, completeness and accuracy are strongly related to the quality of the initial phases. An initial Emap correlation of less than 0.6 leads to a poor model. From these results, it can be concluded that the method is not strongly sensitive to the data resolution, but is sensitive to the quality of the phases. Thus, the method appears to be complementary to ARP/wARP (Cohen et al., 2004), which is more sensitive to the data resolution but can give results with quite poor phases.
For the purposes of automated model building, it is common for a first model to be incomplete and to be extended in a recycling process with
and map calculation. The accuracy of the initial model is therefore probably more important than its completeness.The model for the lowest resolution data set in the test, 1vrb (Joint Center For Structural Genomics, unpublished work), shows some interesting features. One subunit of the Buccaneer model from the 3.2 Å experimental phasing data set is shown in Fig. 7. Note that helical regions of the molecule have been well traced; even at low resolution the precision of atom placement is high, often within 0.3 Å. This is to be expected since helical conformations are more common and more uniform than other conformations and so contribute more strongly to the likelihood density target. Nonhelical regions are much more variable and the precision of the chain traces is accordingly much lower. This suggests a future approach involving the use of different density targets for growth in different regions of the Ramachandran plot.
Other differences between the Buccaneer and final models are worth noting. Fig. 8 shows a typical autotracing error where the chain trace has jumped between strands by means of sidechain density. Note this also illustrates how Buccaneer building can be counterintuitive in comparison to programs which seek high density.
Fig. 9 shows a place where Buccaneer has built a loop which was missing from the original model, along with the electron density. Comparison of the number of residues inserted against the sequence of the final model suggests that the trace is correct. The loop density is present, but the connectivity is only evident when the contour level is lowered. This case highlights another feature of Buccaneer. Since the likelihood target function keys on expected lowdensity features as well as high density features, Buccaneer is capable of building regions where the electron density is low. This feature has a cost: Buccaneer can also overinterpret solvent in terms of protein features in some cases. This can be seen in Table 1 in the cases where the completeness of the model is high but the accuracy is low (e.g. 1vjr), i.e. in addition to correctly tracing the protein region, Buccaneer has built protein chain in the solvent region. These cases can be trivially identified using the `Density fit analysis' feature of the Coot modelbuilding program (Emsley & Cowtan, 2004) and will be implemented in future developments of Buccaneer.
3. Conclusions
The chaintracing approach described here is extremely simple, relying on the application of a single likelihood function in several different ways to trace protein main chains in experimentally phased electrondensity maps. The method is reasonably fast, taking minutes to an hour, and can give a partial trace even at low resolutions (i.e. worse than 3.0 Å). However, the method is dependent on the quality of the initial experimental phasing and phase improvement.
The method as presented here is incomplete, lacking implementations for sequence docking, removal of incorrectly traced features,
of the resulting mode or recycling to model completion. However, the initial results suggest that the approach described here provides a suitable basis for future development.Acknowledgements
The author would like to thank P. Emsley and E. Dodson for their helpful suggestions and the JCSG data archive for providing a source of well curated test data. This work was supported by The Royal Society under a University Research Fellowship.
References
Cohen, S. X., Morris, R. J., Fernandez, F. J., Ben Jelloul, M., Kakaris, M., Parthasarathy, V., Lamzin, V. S., Kleywegt, G. J. & Perrakis, A. (2004). Acta Cryst. D60, 2222–2229. Web of Science CrossRef CAS IUCr Journals Google Scholar
Cowtan, K. D. (1998). Acta Cryst. D54, 750–756. Web of Science CrossRef CAS IUCr Journals Google Scholar
Cowtan, K. D. (2000). Jnt CCP4/ESF–EACBM Newsl. Protein Crystallogr. 38, 7. Google Scholar
Cowtan, K. D. (2001). Acta Cryst. D57, 1435–1444. Web of Science CrossRef CAS IUCr Journals Google Scholar
Cowtan, K. D. (2003). IUCr Comput. Commun. Newsl. 2, 4–9. Google Scholar
Cowtan, K. D. (2006). In preparation. Google Scholar
Emsley, P. & Cowtan, K. D. (2004). Acta Cryst. D60, 2126–2132. Web of Science CrossRef CAS IUCr Journals Google Scholar
Ioerger, T. R. & Sacchettini, J. C. (2002). Acta Cryst. D58, 2043–2054. Web of Science CrossRef CAS IUCr Journals Google Scholar
Joint Center for Structural Genomics (2006). JCSG Data Archive. https://www.jcsg.org/datasetsinfo.shtml. Google Scholar
Jones, T. A. (2004). Acta Cryst. D60, 2115–2125. Web of Science CrossRef CAS IUCr Journals Google Scholar
Jones, T. A., Zou, J.Y., Cowan, S. W. & Kjeldgaard, M. (1991). Acta Cryst. A47, 110–119. CrossRef CAS Web of Science IUCr Journals Google Scholar
Kleywegt, G. J. & Jones, T. A. (1997). Acta Cryst. D53, 179–185. CrossRef CAS Web of Science IUCr Journals Google Scholar
Lovell, S., Davis, I., Adrendall, W., de Bakker, P., Word, J., Prisant, M., Richardson, J. & Richardson, D. (2003). Proteins, 50, 437–450. Web of Science CrossRef PubMed CAS Google Scholar
Morris, R. J., Perrakis, A. & Lamzin, V. S. (2002). Acta Cryst. D58, 968–975. Web of Science CrossRef CAS IUCr Journals Google Scholar
Oldfield, T. J. (2002). Acta Cryst. D58, 487–493. Web of Science CrossRef CAS IUCr Journals Google Scholar
Oldfield, T. J. (2003). Acta Cryst. D59, 483–491. Web of Science CrossRef CAS IUCr Journals Google Scholar
Potterton, E., McNicholas, S., Krissinel, E., Cowtan, K. & Noble, M. (2002). Acta Cryst. D58, 1955–1957. Web of Science CrossRef CAS IUCr Journals Google Scholar
Sheldrick, G., Hauptman, H., Weeks, C., Miller, R. & Usón, I. (2001). International Tables for Crystallography, Vol. F, edited by M. G. Rossmann & E. Arnold, pp. 333–351. Dordrecht: Kluwer Academic Publishers. Google Scholar
Terwilliger, T. C. (2001). Acta Cryst. D57, 1755–1762. Web of Science CrossRef CAS IUCr Journals Google Scholar
Terwilliger, T. C. (2003). Acta Cryst. D59, 38–44. Web of Science CrossRef CAS IUCr Journals Google Scholar
Zou, J.Y. & Jones, T. A. (1996). Acta Cryst. D52, 833–841. CrossRef CAS Web of Science IUCr Journals Google Scholar
© International Union of Crystallography. Prior permission is not required to reproduce short quotations, tables and figures from this article, provided the original authors and source are cited. For more information, click here.