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:
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