Back to TotalFit Methods

Titration classes


General description

To enable analysis of datasets originating from titration experiments we use on of subclasses of the Titration superclass. Generally, data series that correspond to titration experiments will have common properties: receptor concentrations, ligand/receptor ratios and so on. Propagation of random errors in the titrations is very specific and dependent on the particular titration design because, typically, the solutions are made sequentially. Multiple data series may be derived from the same titration experiment (such as multiple peaks from HSQC titration series).

To handle all of this complexity, I implemented the Titration superclass and a set of its subclasses. The Titration superclass implements the basic interface that allows a Totalfit object to associate datasets with the correct titration parameters. The methods of the Titration superclass define the ways you handle object of all its subclasses. The Titration superclass objects are never created. Instead, subclasses are derived from the Titration superclass and their objects are used in data analysis. For details see IDAP/code/@Titration/Titration.m

The sublcasses derived from the Titration superclass encode specific ways of calculating the ligand/receptor ratio and total concentrations of receptor and a ligand. Currently, the following experimental designs are supported:

  1. TitrationIndependentSolutions
    Independently made solutions for all titration points: IDAP/code/@TitrationIndependentSolutions/TitrationIndependentSolutions.m
    Because all solutions are independently created the errors in titration points are completely random. To achieve this one has to prepare solutions such that all titration points were prepared as completely independent solutions (from scratch rather than from common stocks). This is impractical design but this design represents extreme case of completely UNCORRELATED errors in L/R ratio in the sequential datasets. Use this class when you have little information about how the titration series was prepared.
  2. TitrationSequentialLigandAddition
    Classical titration by addition of sequential ligand aliquots:  IDAP/code/@TitrationSequentialLigandAddition/TitrationSequentialLigandAddition.m
    You have an initial volume of your receptor and a stock solution of ligand. You add ligand aliquot by aliquot thus reaching the highest concentration. This titration subclass will take into account ACCUMULATION OF THE ERROR and the fact that deviations of concentrations at intermediate points are CORRELATED.
  3. TitrationDirectMixing
    Mixing of receptor samples with different ligand concentration: IDAP/code/@TitrationDirectMixing/TitrationDirectMixing.m
    Here we use two samples with equal concentration of the receptor but different concentration of a ligand: (sample 1) no ligand, (sample 2) maximum concentration of a ligand. Titration series is prepared by transfer of small aliquots of the sample 2 to the sample 1. Both samples are matched for salts, buffer and pH, therefore the mixing only leads to different concentration of a ligand thus different L/R ratio. This is the most robust titration design eliminating contribution of pH jumps, or other components such as DMSO added with the ligands (in this case, DMSO is added to the sample 1 in equal quantity as to the sample 2). This is a superior titration design because it allow very accurate control of volumes and pH in the experiment.

Some general notes on usage of titration objects

Information on every specific titration is kept in a 'titration_map' field, which contains 'Titration' objects that handle all information about specific titration series as well as list of all spectral series corresponding to a specific titration.

Prior to loading the exp. data one should create a Titration object (using one of the subclasses) and use its functions to display uncertainties in the titration parameters (total receptor concentration, C_R, and molar ligand/receptor ratio, L/R) and to generate initial values for fitting without error estimation.

Then Titration object should be added to into TotalFit's titration_map using a add_titration() method.

As dataset series is loaded into TotalFit session the names of data series should be associated with corresponding titrations through associate_series_with_titration() method.

Use assign_Rtotal_LRration_in_all_series(titration_object, TotalFit_session, 'exact') method to automatically assign Rtotal and LRratio values to a corresponding titration series to datasets in the same order as titration points. This method asks Titration object to go through all datasets of series associated with this titration and set calculated Rtotal and LRratio.

Monte-Carlo based 'fit()' method calls Titration objects from the 'titration_map' to generate perturbed titration parameters and assign them to appropriate data series so the simulated noise in C_R and L/R retains its correlated nature. Taking into account this correlated noise is the main goal of the error analysis via Titration objects.

Addition of a new titration scheme requires creation of a new subclass and encoding corresponding Calculate_LR_CR() function to handle specifics of the titration design.



For examples see IDAP/docs/Tutorials/NMR_line_shapes/Tutorial_7.Using_titration_series


IDAP (C) Evgenii Kovrigin, 2012