Skip to content

0.12.0

Compare
Choose a tag to compare
@Scienfitz Scienfitz released this 28 Jan 16:41
· 6 commits to main since this release
ac805e8

What's Changed

Breaking Changes

  • Lookup callables for simulation are now expected to accept/return dataframes with
    the corresponding parameter/target column labels

Added

  • SHAP explanations via the new SHAPInsight class
  • Optional insights dependency group
  • Insights user guide
  • Example for a traditional mixture
  • allow_missing and allow_extra keyword arguments to Objective.transform
  • add_noise_to_perturb_degenerate_rows utility
  • benchmarks subpackage for defining and running performance tests
  • Campaign.toggle_discrete_candidates to dynamically in-/exclude discrete candidates
  • filter_df utility for filtering dataframe content
  • arrays_to_dataframes decorator to create lookups from array-based callables
  • DiscreteConstraint.get_valid to conveniently access valid candidates
  • Functionality for persisting benchmarking results on S3 from a manual pipeline run
  • remain_switched option to TwoPhaseMetaRecommender
  • is_stateful class variable to MetaRecommender
  • get_non_meta_recommender method to MetaRecommender

Changed

  • SubstanceParameter encodings are now computed exclusively with the
    scikit-fingerprints package, granting access to all fingerprints available therein
  • Example for slot-based mixtures has been revised and grouped together with the new
    traditional mixture example
  • Memory caching is now non-verbose
  • CustomDiscreteParameter does not allow duplicated rows in data anymore
  • De-/activating Polars via BAYBE_DEACTIVATE_POLARS now requires passing values
    compatible with strtobool
  • All arguments to MetaRecommender.select_recommender are now optional
  • MetaRecommenders can now be composed of other MetaRecommenders
  • For performance reasons, search space manipulation using polars is no longer
    guaranteed to produce the same row order as the corresponding pandas operations
  • allow_repeated_recommendations has been renamed to
    allow_recommending_already_recommended and is now True by default

Fixed

  • Rare bug arising from degenerate SubstanceParameter.comp_df rows that caused
    wrong number of recommendations being returned
  • ContinuousConstraints can now be used in single point precision
  • Search spaces are now stateless, preventing unintended side effects that could lead to
    incorrect candidate sets when reused in different optimization contexts
  • qNIPV not working with single MIN targets
  • Passing a TargetTransformation without passing bounds when creating a
    NumericalTarget now raises an error
  • Crash when using ContinuousCardinalityConstraint caused by an unintended interplay
    between constraints and dropped parameters yielding empty parameter sets
  • Minimizing a single NumericalTarget with specified bounds/transformation via
    SingleTargetObjective no longer erroneously maximizes it
  • allow_* flags are now context-aware, i.e. setting them in a context where they are
    irrelevant now raises an error instead of passing silently

Removed

  • botorch_function_wrapper utility for creating lookup callables

Deprecations

  • Passing a dataframe via the data argument to Objective.transform is no longer
    possible. The dataframe must now be passed as positional argument.
  • The new allow_extra flag is automatically set to True in Objective.transform
    when left unspecified
  • get_transform_parameters has been replaced with get_transform_objects
  • Passing a dataframe via the data argument to Target.transform is no longer
    possible. The data must now be passed as a series as first positional argument.
  • SubstanceEncoding value MORGAN_FP. As a replacement, ECFP with 1024 bits and
    radius of 4 can be used.
  • SubstanceEncoding value RDKIT. As a replacement, RDKIT2DDESCRIPTORS can be used.
  • The metadata attribute of SubspaceDiscrete no longer exists. Metadata is now
    exclusively handled by the Campaign class.
  • get_current_recommender and get_next_recommender of MetaRecommender have become
    obsolete and calling them is no longer possible
  • Passing allow_* flags to recommenders is no longer supported since the necessary
    metadata required for the flags is no longer available at that level. The
    functionality has been taken over by Campaign.

Merged Pull Requests

New Contributors

Full Changelog: 0.11.2...0.12.0