Donald Lab Graphic

Software Developed by the Donald Lab


Our software is

Our software is
Free software

Dlab software:

Software previously released by the Donald Lab:

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.

Structure of the Code and How to Download

For a thorough explanation, See our paper,

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:

  1. Part 1. Process RDC data: calculate Saupe tensors and orthogonalize them

    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 these zip files:
    (1a) Calculating and orthogonalizing Saupe tensors
    (1b) More 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.

  2. Part 2. Fitting function: find a Bingham distribution best describing the experimental data

    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.

  3. Part 3. Visualization: visualize a Bingham distribution in the Disk-On-Sphere representation

    You can find the code for visualization in the following links:
    (3a) Sampling Code
    (3b) Post-procesing Code
    (3c) More Post-Processing 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.