- Focussed bonds feature has been created to allow users to choose bonds to freeze and break.
- Functionality has been added to run the broken bonds scorer with MCTS.
- A disconnection-aware Chemformer expansion strategy has been introduced in the plugins.
- Weights for single expansion policies can now be provided as input through the config file.
- The priors returned from the multi-expansion strategy have been rescaled.
- Functionality to mask reaction templates is now supported in the
TemplateBasedExpansionStrategy
. - The
TemplateBasedDirectExpansionStrategy
has been implemented to directly apply the template in the search process. - Added support for the C++ version of RDChiral.
- The multi-objective MCTS core algorithm is now implemented within the MCTS search functionality.
- A separate GUI component has been introduced for doing MO tree analysis. Additional functionalities have been added to GUI widgets to set two rewards/objectives to MCTS search. Pareto front is automatically plotted if MO-MCTS is run. Route re-ordering is automatically disabled for MO-MCTS.
- Preprocessing of the tree search can now be done using
aizynthcli
. - The
StockAvailablityScorer
has been updated such that it takes and additionalother_source_score
parameter. - A
cutoff_number
parameter can be provided to the multi-expansion strategy to obtain only the top predictions. - A
BrokenBondsScorer
has been created for scoring nodes and reaction trees based on the breaking of atom bonds. - A
RouteSimilarityScorer
has been created for scoring based on an LSTM model for computing Tree Edit Distance to a set of reference routes. - A
DeltaSyntheticComplexityScorer
has been created for scoring nodes based on the delta-synthetic-complexity of the node and its parent 'horizon' steps up in the tree.
- Fixed an issue of sending multiple fingerprints to the GPCR Tensorflow serving model.
aizynthcli
has been fixed after updating with multi-objective analysis such that the tool accurately informs the user if a target is solved or not.
Configuration
now supports arescale_prior
property which rescales the priors inTemplateBasedExpansionStrategy
.- Functionality of
ScorerCollection
has been extended. - Pricing is now supported in
InMemoryInchiKeyQuery
. - Reward scorer has been added to Configuration scorers as
search_reward
item. MaxTransformScorerer
andFractionInStockScorer
have been created to separate scores inStateScorer
.- Reaction routes are scored with all reward scorers after the search is complete.
StockAvailabilityScorer
andReactionClassMembershipScorer
have been added to the scorers.- Atom mapping existing in target molecule can be inherited.
- A caching feature has been add to the expansion strategies.
- Degenerate states can now be grouped in the MCTS algorithm.
ChemformerBasedExpansionStrategy
andModelZooExpansionStrategy
can be found under plugins and used as additional expansion strategies.- Support for the stereocenter model has been added with to support chiral fingerprints for molecules and reactions.
- The
Configuration
format has been entirely revamped to a more easy-to-use format. - A
MolbloomFilterQuery
has been created as a stock query class.
- Python version requirements have been updated to versions 3.9 - 3.11.
MoleculeCost
has been moved from aizynthfinder.context.cost.collection to the Retro* package.
- Graphviz has been removed from aizynthfinder.utils.image.
Reaction
class has been removed from aizynthfinder.chem.reaction.- aizynthfinder.context.cost package has been removed.
- Fixed an issue with
max_transforms
to ensure only the given number of maximum depth is considered. - Pinned Jupyter notebook version to ^6.5.3 to avoid errors when displaying widgets.
- Rollout child has been removed from the MCTS search algorithm.
- Environment variables can be loaded from YAML file.
- Restart feature in AiZynth CLI.
- Use ONNX models for expansion and filtering.
- Default filter is now loaded automatically in AiZynth CLI.
- Using isort to sort the imports of packages.
- Tensorflow is now an optional dependency.
- more-itertools dependencies removed.
- training modules has now been removed.
- Fixing an issue when concatenating JSON data files.
- aizynthfinder can now be installed as a pure-python package
- ReactionTree now store at what iteration the route was created
- ReactionTree now supports a metadata property
- MCTS nodes populate a property that stores at what iteration the route was created
- aizynthcli now outputs stock information and route metadata and scores
- aizynthcli now has better error handling of invalid SMILES input
- Graphviz dependency for route drawing is removed, pure python implementation is used instead
- Dependencies reworked so that a minimal package can be installed
- Extra dependencies are related to route distances, clustering, training, MongoDB and external models
- Downloaded files are now the latest USPTO and Ringbreaker models
- RDKit and route-distances package now installed from pypi
- Documentation updated and extended
- Atom-mapping is tracked from product to reactant
- Support loading of template library from (gzipped) CSV file
- Support of saving aizynthcli output to (gzipped) JSON file
- AiZynthExpander now tracks non-applicable templates
- Fixed failing test case
- Silent progress bar when utilizing local Keras model
- Gracefully fail predictions with aizynthcli if target is unsanitizable (Github issue 66)
- Update version of Sphinx, scikit-learn and Black
- Remove usage of depracted Pandas function append (Github issue 63)
- Correct documentation of aizynthcli (Github issue 67)
- Updated pinned versions of route_distances, jinja2 and tensorflow
- Support for Retro* tree search
- Support for breadth-first exhaustive tree search
- Support for depth-first proof-number tree search
- Possible to save concatenated reaction trees to separate file
- RouteCostScorer fix for rare routes
- Profiling feature enabled in search trees
- New, customizable configuration of training pre-processing tools
- Generic post-processing support in aizynthcli
- Introduce short aliases for filter policies
- Reaction shape support in GraphViz visualisation of routes
- ReactantsCountFiler (Github issue 42) to filter reactions with incompatible number of reactants
- ForwardRegenerationFiler to filter reactions where the forward reaction is incompatible
- Possible to skip quick Keras filter for specific policies
- Possible to select more than one policy in the GUI application
- Reaction classes has a hash function
- Possible to extract sub trees from ReactionTree objects
- RDKit can be used instead of RDChiral for expansions
- Possible to use more than depth 6 in the GUI application
- Fix failure in MctsNode class when expansion policy return no molecules
- Update type hints to be compatible with latest numpy release
- Update route-distances dependency
- Generalized expansion and filter policies - policies no longer need to be Keras models
- Updated image generation for synthesis routes
- Improved code to prune "regeneration reactions" in MCTS (Github issue 38)
- Reactants are sorted in output from ReactionTree class
- New arguments to the "aizynthcli" tool
- Introduce option to return all solved routes from a TreeAnalysis class
- Package structure re-factorization
- Behaviour of RetroReaction, FilterPolicy and ExpansionPolicy classes has been changed
- Configuration class holding search tree settings is no longer loading settings from yaml-file on instantiation
- Removed MCTS-specific routines in the TreeAnalysis class
- Removed code for identifying cycles in ReactionTree
- Remove JSON interface to AiZynthFinder class
- Fixed property assignment when converting MCTS node to ReactionTree
- Documentation updates
- Extensive re-factoring of test cases
- Add
AiZynthExpander
class as public interface to single-step reactions - Route distance calculations and clustering is now dependent on package
route-distances
- Route distance calculations with ML model is now supported
- Reaction tree objects now has property
is_branched
- Introduce an interface for search algorithm working on AND/OR trees
- The progress bar is now removed upon completion of the tree search
- Move
ReactionTree
class to a new module (this will not brake backwards compatibility)
- Fix for Github issue #28 for a training script
scikit-learn
is now imported beforetensorflow
, according to Github issue 30
- Simplified interfaces for some internal classes
- Type hints have been added to the source code
- poetry is now used for dependency management
- Update of black version causing some re-formatting
- Small changes to documentation
- Add option to timeout distance calculation of route collections
- Include templates for producing routes in package
- Add support for clustering of routes
- Add new scorers for total price and route score
- Add support for adding stop criteria to all stocks
- Add stop criteria UI for Jupyter notebook
- Refactor handling of MongoDB instances
- Refactor code to connect with REST and gRPC servers
- Possibility to extract a combined tree for all predicted routes
- New classes to use Tensorflow servers as policies
- Improved code for route visualizaition
- The
Reaction
class is renamed toRetroReaction
- The
Policy
class is renamed toExpansionPolicy
config
,stock
,policy
andscoring
modules moved toaizynthfinder.context
package- Tool "preprocess_rollout" is now called "preprocess_expansion"
- Some of the public methods of
Stock
,Policy
andScorerCollection
classes are renamed - Setting target molecule now destroys the search tree
- Add a filter policy to MCTS to remove unfeasible reactions
- Add tools to train filter policy
- Add logic to prevent cycle forming in MCTS by rejecting creation of parent molecule when expanding
- Introduce new
context
subpackage that contains theconfig
,stock
,policy
andscoring
modules - The
Stock
,ExpansionPolicy
,FilterPolicy
andScorerCollection
classes now has a common interface for selection and loading - Introduce possibility to remove unsantizable reactions from template library when training
- Catch exceptions from RDChiral more gracefully
- Add score "number of pre-cursors"
- Add score "number of pre-cursors in stock"
- Enable the loading of MCTS configuration from dict
- Fix bug in State score for branched reaction trees
- Fix bug in "Number of reaction" score for branched MCTS trees
- Fix bug in Jupyter GUI when selecting policies of several available
- Update python requirement specifications
- Introduce a route scoring framework
- Flag repetetive patterns in routes so they can be hidden
- Enable possibility to use more than one rollout policy
- Add --nproc argument to aizynthcli to enable trivial multiprocessing
- Add missing serialization of reaction metadata
- Add consistency check between rollout neural network and template list
- First public version