CCTBX Python API documentation

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