Download citation
Download citation
link to html
This paper presents the computer program D+ (https://scholars.huji.ac.il/uriraviv/book/d-0), where the reciprocal-grid (RG) algorithm is implemented. D+ efficiently computes, at high-resolution, the X-ray scattering curves from complex structures that are isotropically distributed in random orientations in solution. Structures are defined in hierarchical trees in which subunits can be represented by geometric or atomic models. Repeating subunits can be docked into their assembly symmetries, describing their locations and orientations in space. The scattering amplitude of the entire structure can be calculated by computing the amplitudes of the basic subunits on 3D reciprocal-space grids, moving up in the hierarchy, calculating the RGs of the larger structures, and repeating this process for all the leaves and nodes of the tree. For very large structures (containing over 100 protein subunits), a hybrid method can be used to avoid numerical artifacts. In the hybrid method, only grids of smaller subunits are summed and used as subunits in a direct computation of the scattering amplitude. D+ can accurately analyze both small- and wide-angle solution X-ray scattering data. This article describes how D+ applies the RG algorithm, accounts for rotations and translations of subunits, processes atomic models, accounts for the contribution of the solvent as well as the solvation layer of complex structures in a scalable manner, writes and accesses RGs, interpolates between grid points, computes numerical integrals, enables the use of scripts to define complicated structures, applies fitting algorithms, accounts for several coexisting uncorrelated populations, and accelerates computations using GPUs. D+ may also account for different X-ray energies to analyze anomalous solution X-ray scattering data. An accessory tool that can identify repeating subunits in a Protein Data Bank file of a complex structure is provided. The tool can compute the orientation and translation of repeating subunits needed for exploiting the advantages of the RG algorithm in D+. A Python wrapper (https://scholars.huji.ac.il/uriraviv/book/python-api) is also available, enabling more advanced computations and integration of D+ with other computational tools. Finally, a large number of tests are presented. The results of D+ are compared with those of other programs when possible, and the use of D+ to analyze solution scattering data from dynamic microtubule structures with different protofilament number is demonstrated. D+ and its source code are freely available for academic users and developers (https://bitbucket.org/uriraviv/public-dplus/src/master/).

Supporting information

pdf

Portable Document Format (PDF) file https://doi.org/10.1107/S1600576718018046/vg5099sup1.pdf
The supporting information contains the following sections: Uniformly spaced 3D Cartesian grid; Finding the rotation angles of an object; PDBUnits: Accessory tool for identifying the rotation and translation of repeating subunits in a PDB file; Finding the principal axes of an atomic structure; Supernatant subtraction from microtubule sample; Comparing D+ with CRYSOL; Performance analysis; Comparing experimental microtubule solution scattering data to microtubule models with varying protofilament number; Validation tests of D+; Solvation layers of complexes; References; 52 supporting figures


Follow J. Appl. Cryst.
Sign up for e-alerts
Follow J. Appl. Cryst. on Twitter
Follow us on facebook
Sign up for RSS feeds