Computational Crystallography Toolbox¶
- Installation overview
- Manually building from sources under Linux and macOS
- Manually building from sources under Windows 2000 or higher
- Tour of the cctbx
- CCTBX development history
- libtbx - low-level utilities and infrastructure for CCTBX
- boost_adaptbx - wrappers for Boost functionality
- iotbx - file readers and writers
- scitbx - general-purpose scientific programming infrastructure
- cctbx - core crystallographic objects and functions
- mmtbx - macromolecular crystallography
Welcome to CCTBX’s documentation!¶
High level organization¶
The SourceForge cctbx project currently contains these modules. The core libraries required for most other applications are libtbx, boost_adaptbx, scitbx, cctbx, and usually iotbx. Functionality specific to macromolecules and small molecules lives in mmtbx and smtbx, respectively.
libtbx¶
The build system common to all other modules. This includes a very thin wrapper around the SCons software construction tool. It also contains many useful frameworks and utilities to simplify application development, including tools for regression testing, parallelization across multiprocessor systems and managed clusters, and a flexible, modular configuration syntax called PHIL (Python Hierarchial Interface Language) used throughout the CCTBX.
boost_adaptbx¶
A very small adaptor toolbox with platform-independent instructions for building the Boost.Python library.
scitbx¶
Libraries for general scientific computing (i.e. libraries that are not specific to crystallographic applications). This includes a family of high-level C++ array types, a fast Fourier transform library, and a C++ port of the popular L-BFGS quasi-Newton minimizer, and many mathematical utilities, all including Python bindings. These libraries are separated from the crystallographic code base to make them easily accessible for non-crystallographic application developers.
cctbx¶
Libraries for general crystallographic applications, useful for both small-molecule and macro-molecular crystallography. The libraries in the cctbx module include algorithms and data structures for the handling of crystal symmetry, basic geometry restraints, reflection data, atomic displacement parameters, X-ray scattering, and high-level building blocks for refinement algorithms. Note the distinction between the CCTBX project and the cctbx module.
iotbx¶
Libraries for reading and writing common file formats, including PDB, CIF, many reflection formats, electron density maps, and sequences.
mmtbx¶
Functionality specific to macromolecular crystallography. This includes all of the machinery required for setup of geometry restraints, bulk solvent correction and scaling, analysis of macromolecular diffraction data, calculation of weighted map coefficients, and most of the methods implemented in phenix.refine. The majority of infrastructure for the MolProbity validation server (and Phenix equivalent) is also located here.
xfel¶
Software for processing serial data collected using an X-ray free electron laser. Includes spotfinding, integration, data clustering/filering and merging tools.
smtbx¶
Functionality specific to small-molecule crystallography, including a complete refinement program (smtbx.refine).
API Documentation for smtbx
dxtbx¶
The Diffraction Image Toolbox, a library for handling X-ray detector data of arbitrary complexity from a variety of standard formats. (Also used by routines in iotbx.)
API documentation for dxtbx
Tour¶
Tour of the cctbx.
Tour of the scitbx (by Michael Hohn)
Tour of the array_family (by Michael Hohn)
Tutorials¶
Installation¶
Installation instructions for both binary installation and installation from sources.
The cctbx build system is based on SCons.
Reference Documentation¶
Most documented C++ interfaces are also available at the Python layer. Unfortunately the documentation tools available are not capable of merging the documentations. Therefore Python users need to also consult the C++ documention.
Links¶
Contact¶
There is also a mailing list (cctbxbb) where developers can answer questions from the community. To join/manage your subscription, please visit http://www.phenix-online.org/mailman/listinfo/cctbxbb.