History of changes



  • The Python interface to libBioLCCC has been renamed to pyteomics.biolccc.
  • The codes are now compiled with custom-built python scripts. In practice, that means that the binary C++ library and C++ test suite temporarily lack building scripts. This functionality will be restored as soon as needed.



  • Add mixingCorrection option to ChromoConditions. When mixingCorrection is true (default is false), immediate composition of the solvent in the column does not equal to the composition of the pumped solution, but is calculated according to the differential equation of solute accumulation: d[SS] / dt = flow rate / (V0 + Vp) * ([SS]pump - [SS]), where [SS] is the second solvent concentration in the column, and [SS]pump is the concentration in the pumped solution, V0 is the interstitial volume, Vp is the volume of pores.
  • The code of calculateRT() is significantly simplified, a part of it is moved to ChromoConditions.



  • Add a general expression for the rod model. The previously used special expression did not account for bridge conformations of a polymer, in which both its ends are adsorbed to the opposite walls of a pore. The special expression is valid only when polymerLength < slitWidth - 2 * layerWidth. The newly introduced general expression is valid for polymers of any length, but requires more computational resources. The general expression is disabled by default and can be enabled by setting specialRodModel variable of a ChemicalBasis to false.
  • Add bindArea variable to ChemicalGroup class. This variable contains the size of the chemical group. This size is defined as a number of binary solvent molecules which are desorbed when the chemical group is adsorbed to the surface. By default every chemical group has a size of 1.0, except for the terminal groups, that have zero size.
  • Add experimental option neglectPartiallyDesorbedStates. Corresponding citation from the documentation: “In BioLCCC model, the distribution coefficient of a polymer is calculated by integration over all its possible conformations. These could be differentiated into three distinct groups: totally adsorbed, totally desorbed and partially desorbed states. The latter are of particular interest, because these conformations give rise to sequence specificity of BioLCCC model. Using setNeglectPartiallyDesorbedStates function, these conformations can be excluded from calculation. This option is intended for study of BioLCCC properties, and should not be used in routine applications.”
  • Code refactoring: biolccc.cpp/.h was splitted into biolccc.cpp/.h, parsing.cpp/.h, rod_model.cpp/.h and chain_model.cpp/.h.

API changes:

  • Parsing functionality is now available through parsing.cpp.



  • Add the fast version of calculateRT function which calculates Kd only in a few points and than use interpolation to find the remaining values.
  • Change the way dV is used. Now the accuracy of calculateRT is almost independent of dV for shallow gradients.
  • The introduced changes are documented in the chapter “Changing the precision of calculation”.

API changes:

  • New arguments in calculateRT function: numInterpolationPoints and backwardCompatibility. The former is used to set the number of points used to interpolate the value of Kd. The default value is 0, which means that interpolation is disabled. backwardCompatibility controls the way dV is treated. If it is true, then the old equations for RT are used, otherwise the new routine is invoked which almost independent of dV.
  • New “auxiliary” sublibrary, which contains various math functions. Currently, it contains interpolation routines.



  • Multiples fixes in the documentation.

API changes:

  • Add variable VERSION which contains the version of the library.
  • COIL model is CHAIN now.
  • ModelType, setModel and model and now PolymerModel, setPolymerModel and polymerModel.



  • The first public release.
  • The project now uses mercurial instead of bazaar.
  • The project now uses SCons instead of CMake.
  • Add API documentation generated by doxygen.
  • Add general documentation generated using Sphinx.
  • Add test suite both for libBioLCCC and pyBioLCCC.
  • Massive API rework.


  • Fix the bug in the expression for the effective binding energy of the binary solvent. The relative adsorption strength is used properly now.
  • Add the relative adsorption strength of layers in COIL model.
  • Add the new segmentation mechanism.

Predefined chemical bases:

  • Add the new set for RP/ACN/FA/ROD.
  • Change the label for C-terminal carboxylic group from ‘-COOH’ to ‘-OH’.

API changes:

  • Functions do not return error codes now.
  • Add the exception-based mechanism of error handling.
  • Merge Terminus and Aminoacid into ChemicalGroup class. Remove corresponding methods of ChemicalBasis. Add new chemicalGroups(), clearChemicalGroups(), addChemicalGroup() methods.
  • Add isNTerminus(), isCTerminus() methods to ChemicalGroup class.
  • calibrationParameter is relativeAdsorptionStrength now.
  • adsorbtionLayerWidth is adsorptionLayerWidth now (what a shame!).
  • Add ModelType type. It contains two values: COIL and ROD.
  • Change setModel() method of ChemicalBasis.
  • Add PredefinedChemicalBasis type. It contains two values: RP_ACN_FA_ROD and RP_ACN_TFA_COIL.
  • Change the ChemicalBasis() constructor. The default constructor, which takes no arguments, returns an empty chemical basis now. Add the new constructor which takes a PredefinedChemicalBasis argument.
  • No more standardChemicalBasis. Instead, there are two new const ChemicalBasis instances: rpAcnFaRod and rpAcnTfaCoil.
  • Add snyderApproximation parameter to ChemicalBasis.
  • Add adsorbtionLayerFactors to ChemicalBasis.
  • segmentLength is monomerLength now.
  • Remove persistentLength parameter from ChemicalBasis class.
  • Add KuhnLength in angstroms to ChemicalBasis class.
  • Add methods to change the densities and the molar masses of the solvents to ChemicalBasis class.
  • Change the arguments and return value of parseSequence().
  • Change the arguments of calculateRT, calculateKd. There is no more the default value for the ChemicalBasis argument.
  • Remove calibrateBioLCCC and calculatePeptideProperites methods.
  • Add setters to ChemicalGroup class.


  • Remove the “min_inf” methods from ChemicalBasis.
  • Add the new dict-like syntax for ChemicalBasis, ChemicalGroup and ChromoConditions.


  • Initial release.