All notable changes to the project are documented in this file.
The format follows Common Changelog, and the project adheres to Semantic Versioning.
0.7.2 - 2026-01-30
0.7.1 - 2026-01-08
0.7.0 - 2025-11-06
- Upgrade all single-step models to
torch 2.2(#137) (@kmaziarz) - Optimize the internal representation of a
SmilesListInventory(#135) (@kmaziarz) - Suppress warnings produced by single-step models on newer environments (#141) (@kmaziarz)
0.6.0 - 2025-09-23
- Drop support for Python 3.7 (#113) (@kmaziarz)
- Refactor search CLI to make it easier to access programmatically (#126) (@kmaziarz)
- Implement option to expand target even when purchasable (#130) (@kmaziarz)
- Support LRU cache eviction for reaction models (#127) (@kmaziarz)
- Add a utility to load a
SmilesListInventoryfrom file (#124) (@kmaziarz)
- Fix search CLI crash under Python 3.11+ (#114) (@kmaziarz)
- Query the underlying reaction model in a fixed order (#122) (@kmaziarz)
0.5.0 - 2024-11-28
- Reuse search results when given a partially filled directory (#98) (@kmaziarz)
- Expose
stop_on_first_solutionas a CLI flag (#100) (@kmaziarz) - Add an option to set time limit for route extraction (#104) (@kmaziarz)
- Extend single-step evaluation with stereo-agnostic results (#102) (@kmaziarz)
- Install
torch_scatterfrom conda instead of pip (#110) (@kmaziarz) - Remove dependency on
typing_extensionsfor Python 3.8+ (#107) (@austint) - Pin further Chemformer dependencies to avoid
torchreinstallation (#108) (@kmaziarz) - Shift the
pandasdependency to the external model packages (#94) (@kmaziarz) - Fix constructor arguments in
ParallelReactionModel(#96) (@kmaziarz)
0.4.1 - 2024-05-04
- Fix incorrectly uploaded RetroKNN weights (#91) (@kmaziarz)
- Fix GLN weights and issues in its model wrapper (#92) (@kmaziarz)
0.4.0 - 2024-04-10
- Merge reaction and reaction model base classes in
searchandreaction_prediction(#63, #67, #73, #74, #76, #84) (@austint, @kmaziarz) - Make reaction models return
Sequence[Reaction]instead ofPredictionListobjects (#61) (@austint) - Suppress the remaining noisy logs and warnings coming from single-step models (#53) (@kmaziarz)
- Improve efficiency and logging of retro* algorithm (#62) (@austint)
- Improve error handling in single-step evaluation and allow CLI to use the default checkpoints (#75) (@kmaziarz)
- Make basic classes from
interfaceimportable from top-level (#81) (@austint)
- Integrate the Graph2Edits model (#65, #66) (@kmaziarz)
- Improve the docs and add tutorials (#54, #77, #78, #79, #82) (@kmaziarz, @austint)
- Add random search algorithm as a simple baseline (#83) (@austint)
- Add optional argument
limit_graph_nodesto base search algorithm class to stop search after the search graph exceeds a certain number of nodes (#85) (@austint)
- Fix small issues in Chemformer, MEGAN and RootAligned (#80) (@kmaziarz)
- Get all single-step models to work on CPU (#57) (@kmaziarz)
- Make the data loader class work with relative paths (#69) (@kmaziarz)
0.3.0 - 2023-12-19
- Simplify single-step model setup (#41, #48) (@kmaziarz)
- Refactor single-step evaluation script and move it to cli/ (#43) (@kmaziarz)
- Return model predictions as dataclasses instead of pydantic models (#47) (@kmaziarz)
- Make the package compatible with PyPI (#50) (@kmaziarz)
- Add a general CLI endpoint (#44) (@kmaziarz)
- Add support for PDVN to the search CLI (#46) (@fiberleif)
- Add initial static documentation (#45) (@kmaziarz)
0.2.0 - 2023-11-21
- Select search hyperparameters depending on which algorithm and single-step model are used (#30) (@kmaziarz)
- Improve the heuristic used for estimating diversity (#22, #28) (@kmaziarz)
- Add code for PDVN MCTS and extracting training data for policies and value functions (#8) (@austint, @fiberleif)
- Add a top-level CLI for running end-to-end search (#26) (@kmaziarz)
- Release single-step evaluation framework and wrappers for several model types (#14, #15, #20, #32, #35) (@kmaziarz)
- Release checkpoints for all supported single-step model types (#21) (@kmaziarz)
- Support
*.csvand*.smiformats for the single-step evaluation data (#33) (@kmaziarz) - Implement node evaluators commonly used in MCTS and Retro* (#23, #27) (@kmaziarz)
- Add option to terminate search when the first solution is found (#13) (@austint)
- Add code to extract routes in order found instead of by minimum cost (#9) (@austint)
- Declare support for type checking (#4) (@kmaziarz)
- Add method to extract precursors from
SynthesisGraphobjects (#36) (@austint)
- Fix bug where standardizing MolSetGraphs crashed (#24) (@austint)
- Guard against rare issues in MEGAN and LocalRetro (#29, #31) (@kmaziarz)
- Change default node depth to infinity (#16) (@austint)
- Adapt tutorials to the renaming from PR #9 (#17) (@jagarridotorres)
- Pin
pydanticversion to1.*(#10) (@kmaziarz) - Fix compatibility with Python 3.7 (#5) (@kmaziarz)
- Correct some typos and unclear error messages (#39) (@austint)
0.1.0 - 2023-05-25
🌱 Initial public release, containing several multi-step search algorithms and a minimal interface for single-step models.