CDIO
Our JMB paper | Download | User Manual | License | Contact
Welcome to the website for the CDIO (Continuous Distribution of Interdomain Orientations).
CDIO is the first fitting program to determine a continuous interdomain orientation distribution from motionally decoupled dynamic NMR data. CDIO is our first step on a sound mathematical ground to reconstruct the conformational distribution of biological macromolecules. Underlying the MATLAB code of CDIO, there are two key components, a continuous model that describes a broad spectrum of interdomain motions and a de novo Branch-and-Bound algorithm that guarantees to find the best-fit. CDIO is applicable to the study of interdomain motions in protein, RNA and DNA molecules. CDIO only requires two alignment tensors of each domain calculated either from residual dipolar couplings or pseudo-contact shifts to determine the best-fit interdomain orientation distribution. CDIO is developed jointly in the lab of Prof. Bruce Donald and the lab of Prof. Terrence Oas at Duke University. Here is the initial version of CDIO. We have plans to generalize the method to incorporate data generated with different reference domains and implement modules to visualize various representations of the determined interdomain orientation distribution. If you have questions about CDIO or suggestions about future implementations, you are very welcome to contact us.
CDIO is free software and can be redistributed and/or modified under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (optionally) any later version. CDIO is distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. Full licensing details, including citation requirements, are found in the license file.
There are several parts of the ConDIOs code to form a processing pipeline, from (1) processing experimental RDC data, (2) to fitting algorithm, and (3) to visualization. The processing pipeline is written in both Mathematica and matlab. I will give a overview of the pipeline and the main code for each part, corresponding to 3 parts/steps:
In this part, we obtained multiple RDC data sets using different alignments and calculate the Saupe tensor for alignment and for each domain. The calculated Saupe tensors are orthogonalized to quantify the information content. The orthogonalized Saupe tensors are used as input for the fitting function (the 2nd step). You can find more description of this step in Chapter 3 of Yang Qi's PhD dissertation there are eight Mathematica notebooks starting with "Calculating Saupe Tensor".
See this zip file:
(1a) Calculating and orthogonalizing Saupe tensors
Each notebook calculates a Saupe tensor for one domain in one alignment. 2) There are also two notebooks starting with "Orthogonalizing S tensors of C/Z domain". As in the title, we do orthogonalization of the Saupe tensors in these two notebooks.
In the future, we would probably recommend to port to using Jeff Martin's Lib-Prot-NMR toolkit.
The code for this part is included in this link:
(2) CDIO fitting code.
Basically, we do
the fitting in this matlab package. The user manual is not complete,
but it does contain the instruction of how to run the package. You
just need to run BnBmain function with the orthogonalized tensors as
inputs from step 1. (You can find the details of the fitting algorithm
in Yang Qi's MS thesis.
You can find the code for visualization in the following links:
(3a) Sampling Code
(3b) Post-procesing Code
The code does HEALPix sampling on a SO(3) space and represent each orientation as a radial line of a disk on the sphere. You can skip the beginning of the notebook because the sampling is pretty automatic. In the session named 'Define Bingham distribution on S3(sol1/sol2)’, that’s where we input the result from step2 and visualize the distribution calculated by step 2. The result from step 2 needs some processing before using in this notebook.
Basically, the results we get from step 2 are some concentration parameters and two quaternions. They define a Bingham distribution. The concentration parameters can be used directly in the notebook by writing them into a diagonal matrix. The two quaternions (left and right quaternions) can be formed into a matrix. The conversion function is provided in the above notebook (which does the conversion for solution 2 as an example). This matrix will be used in the visualization notebook.
An additional tool, pdb2quat.py, computes a rotation matrix and corresponding quaternion to describe the relative orientation of the ZLBT and C domains of the ZLBT-C construct considered in the above work. It also optionally generates PyMol scripts to visualize this rotation. This script could be adapted to other systems. This tool is especially useful as part of a larger workflow to compute CDIOs from discrete ensembles of structures. Together with the above work, it can help explore subtle interdomain movements that occur during binding events or other functional states. These motions can allow proteins to accommodate binding partners, influencing processes such as catalysis, signal transduction, and molecular recognition. The code is available here: pdb2quat.py