Release history#

This section lists features and improvements of note in each release.

The full release history can be viewed at the GitHub cinnabar releases page.

v0.6.0#

Added:

  • Added the predictive index (PI) metric to compare ranking performance, this is also exposed in bootstrap statistics and can be used in plots PR#194.

  • Added the ability to define new estimators by subclassing the Estimator class and implementing the _estimate method, these can then be applied to the FEMap to generate absolute DG estimates. PR#193.

  • Added FEMap.get_cycle_closure_dataframe to calculate cycle closure errors for all cycles in the network, reporting raw closure errors, per-edge contributions, and uncertainty-normalized cycle closures. PR#107.

  • Added FEMap.get_cycle_closure_edge_statistics_dataframe to report per-edge cycle closure statistics. PR#107.

  • Added plotting.plot_cycle_closure to visualize the cycle closure error distribution as a histogram. PR#107.

  • Documentation and tutorials for the ECDF plotting functionality PR#206.

  • Added error estimates to ECDF plots via bootstrapping PR#201.

  • Added ECDF plotting functionality to visualize the empirical cumulative distribution function of predicted vs experimental absolute, relative and all-to-all pairwise binding free energies PR#172.

  • Exposed stats calculation functions in the cinnabar.stats module to the public API and added docs allowing users to use them directly PR#186.

  • Added the compute_fraction_best_ligands function to compute the fraction of best ligands metric PR#164.

  • Added highlight_edges argument to the draw_graph function, allowing the user to highlight edges in the network graph PR#203.

  • Guidelines on scatter plots can now be set manually, the values are also annotated on the plots PR#204.

  • Added get_all_to_all_relative_dataframe() function the the FEMap class to compute pairwise relative free energy differences between all ligands in a dataset PR#187.

  • The get_relative/absolute/all_to_all_relative_dataframe() functions can now return values as pIC50. This is controlled by passing observable_type="pic50" PR#208.

  • All scatter and ECDF plotting functions can now plot as pIC50. This is controlled by passing observable_type="pic50" PR#213.

  • Added an affinity conversion function convert_observable which provides value and uncertainty conversions to and from dg, ki, ic50 and pic50 with units PR#182.

Changed:

  • The FEMMap.get_absolute_dataframe and FEMap.get_relative_dataframe methods now return dataframes in a sorted order of node labels grouped by source flags to enable easier comparisons between sources and with experimental values PR#192.

  • The FEMap.get_relative_dataframe now also includes experimental differences for the simulated legs in the dataframe to enable easier comparisons between predicted and experimental values PR#192.

  • cinnabar.arsenic has been renamed to cinnabar.cli, other references to arsenic have also been removed. PR#158.

  • Plotting functions plot_DDGs, plot_DGs and plot_all_DDGs now require an FEMap as input along with a computational source, see the API tutorial for more details PR#212.

  • The MLE estimator will now raise an error on any uncertainties of exactly zero on calculated edges due to issues with SVD calculations PR#177.

Deprecated:

  • plotting._master_plot is deprecated and will be removed in a future version. Use plotting.pair_plot instead PR#204.

  • FEMap.to_legacy_graph method is now deprecated and will be removed in a future release PR#212.

Fixed:

  • Fixed bug in FEMap.get_relative_dataframe() which gave the wrong values if absolute values were generated first using FEMap.generate_absolute_values() PR#206.

  • The plot_all_DDGs function now correctly uses the covariance matrix when available to compute error bars for the predicted values PR#212.

v0.5.0#

Added:

  • Added support for python 3.13.

  • Vendored openff-models (PR #131).

  • Adding operator now available in FEMap, i.e. you can add FEMap instances using + (PR #114).

Changed:

  • FEMap instances no longer allow .graph to be accessed directly, and instead use to_networkx() and from_networkx() methods (PR #112).

  • Scatter plots markers now have edge outlines for clearer visibility (PR #113).

v0.2.1 - Release#

Bugfixes#

Fix erroneous MLE estimate when self-edges are included (PR #38).