CCTBX Python API

Tools for analysis and manipulation of crystallographic and cryo-EM data

Core cctbx Toolboxes

iotbx

High-level data_manager for input and output, map_manager for map manipulation and map_model_manager for working with maps and models together, along with libraries for reading and writing common file formats, including PDB, CIF, many reflection formats, electron density maps, and sequences.

cctbx

Libraries for general crystallographic and cryo-EM applications, useful for both small-molecule and macro-molecular crystallography and cryo-EM. 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.

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.

mmtbx

High-level classes for manipulation of macromolecular models and functionality specific to macromolecular crystallography and cryo-EM. 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.

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.

Specialized cctbx Toolboxes

boost

Boost Python methods.

boost_adaptbx

A very small adaptor toolbox with platform-independent instructions for building the Boost.Python library.

cbflib_adaptbx

CBFLIB Adaptor methods.

cma_es

CMA_ES methods.

cootbx

Tools for communication with Coot

crys3d

Phenix diffraction viewer tools

cudatbx

Tools for using cuda

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.)

fable

Tools for automatic conversion of FORTRAN to C++ code

fast_linalg

Fast linear algebra routines

fftw3tbx

FFTW3 routines

gltbx

Python bindings for OpenGL and GLU_, and gl() and glu functions. The original C interfaces are preserved as much as possible.

omptbx

Open MP routines

qttbx

Tools for communication with various graphical display programs

rstbx

RSTBX: A reciprocal space toolbox to autoindex small molecule Bragg diffraction, given the reciprocal space vectors.

serialtbx

Tools for serial crystallography

smtbx

Functionality specific to small-molecule crystallography, including a complete refinement program (smtbx.refine).

spotfinder

Bragg spot finder using machine learning

wxtbx

Tools for the wx package

xfel

Software for processing serial data collected using an X-ray free electron laser. Includes spotfinding, integration, data clustering/filering and merging tools.