TheComputational Crystallography Toolbox: crystallographic algorithms in a reusable software framework

Abstract
The advent of structural genomics initiatives has led to a pressing need for high-throughput macromolecular structure determination. To accomplish this, new methods and inevitably new software must be developed to accelerate the process of structure solution. To minimize duplication of effort and to generate maintainable code efficiently, a toolbox of basic crystallographic software components is required. The development of theComputational Crystallography Toolbox(cctbx) has been undertaken for this purpose. In this paper, the fundamental requirements for thecctbxare outlined and the decisions that have lead to its implementation are explained. Thecctbxcurrently contains algorithms for the handling of unit cells, space groups and atomic scatterers, and is released under an Open Source license to allow unrestricted use and continued development. It will be developed further to become a comprehensive library of crystallographic tools useful to the entire community of software developers.