aizynthfinder package¶
Subpackages¶
- aizynthfinder.analysis package
- aizynthfinder.chem package
- aizynthfinder.context package
- aizynthfinder.interfaces package
- aizynthfinder.search package
- aizynthfinder.tools package
- aizynthfinder.utils package
- Submodules
- aizynthfinder.utils.exceptions module
- aizynthfinder.utils.files module
- aizynthfinder.utils.image module
- aizynthfinder.utils.loading module
- aizynthfinder.utils.logging module
- aizynthfinder.utils.math module
- aizynthfinder.utils.models module
- aizynthfinder.utils.mongo module
- aizynthfinder.utils.paths module
- aizynthfinder.utils.type_utils module
- Module contents
Submodules¶
aizynthfinder.aizynthfinder module¶
Module containing a class that is the main interface the retrosynthesis tool.
- class aizynthfinder.aizynthfinder.AiZynthFinder(configfile=None, configdict=None)¶
Bases:
object
Public API to the aizynthfinder tool
If instantiated with the path to a yaml file or dictionary of settings the stocks and policy networks are loaded directly. Otherwise, the user is responsible for loading them prior to executing the tree search.
- Variables
config – the configuration of the search
expansion_policy – the expansion policy model
filter_policy – the filter policy model
stock – the stock
scorers – the loaded scores
tree – the search tree
analysis – the tree analysis
routes – the top-ranked routes
search_stats – statistics of the latest search
- Parameters
configfile (Optional[str]) – the path to yaml file with configuration (has priority over configdict), defaults to None
configdict (Optional[StrDict]) – the config as a dictionary source, defaults to None
- Return type
None
- property target_smiles: str¶
The SMILES representation of the molecule to predict routes on.
- build_routes(selection=None, scorer=None)¶
Build reaction routes
This is necessary to call after the tree search has completed in order to extract results from the tree search.
- Parameters
selection (Optional[RouteSelectionArguments]) – the selection criteria for the routes
scorer (Optional[str]) – a reference to the object used to score the nodes
- Raises
ValueError – if the search tree not initialized
- Return type
None
- extract_statistics()¶
Extracts tree statistics as a dictionary
- Return type
StrDict
- prepare_tree()¶
Setup the tree for searching
- Raises
ValueError – if the target molecule was not set
- Return type
None
- stock_info()¶
Return the stock availability for all leaf nodes in all collected reaction trees
The key of the return dictionary will be the SMILES string of the leaves, and the value will be the stock availability
- Returns
the collected stock information.
- Return type
StrDict
- tree_search(show_progress=False)¶
Perform the actual tree search
- Parameters
show_progress (bool) – if True, shows a progress bar
- Returns
the time past in seconds
- Return type
float
- class aizynthfinder.aizynthfinder.AiZynthExpander(configfile=None, configdict=None)¶
Bases:
object
Public API to the AiZynthFinder expansion and filter policies
If instantiated with the path to a yaml file or dictionary of settings the stocks and policy networks are loaded directly. Otherwise, the user is responsible for loading them prior to executing the tree search.
- Variables
config – the configuration of the search
expansion_policy – the expansion policy model
filter_policy – the filter policy model
- Parameters
configfile (Optional[str]) – the path to yaml file with configuration (has priority over configdict), defaults to None
configdict (Optional[StrDict]) – the config as a dictionary source, defaults to None
- Return type
None
- do_expansion(smiles, return_n=5, filter_func=None)¶
Do the expansion of the given molecule returning a list of reaction tuples. Each tuple in the list contains reactions producing the same reactants. Hence, nested structure of the return value is way to group reactions.
If filter policy is setup, the probability of the reactions are added as metadata to the reaction.
The additional filter functions makes it possible to do customized filtering. The callable should take as only argument a RetroReaction object and return True if the reaction can be kept or False if it should be removed.
- Parameters
smiles (str) – the SMILES string of the target molecule
return_n (int) – the length of the return list
filter_func (Optional[Callable[[RetroReaction], bool]]) – an additional filter function
- Returns
the grouped reactions
- Return type
List[Tuple[FixedRetroReaction, …]]
aizynthfinder.reactiontree module¶
Module containing the implementation of a reaction tree or route and factory classes to make such trees
- class aizynthfinder.reactiontree.ReactionTree¶
Bases:
object
Encapsulation of a bipartite reaction tree of a single route. The nodes consists of either FixedRetroReaction or UniqueMolecule objects.
The reaction tree is initialized at instantiation and is not supposed to be updated.
- Variables
graph – the bipartite graph
is_solved – if all of the leaf nodes are in stock
root – the root of the tree
created_at_iteration – iteration the reaction tree was created
- Return type
None
- classmethod from_dict(tree_dict)¶
Create a new ReactionTree by parsing a dictionary.
This is supposed to be the opposite of
to_dict
, but because that format loses information, the returned object is not a full copy as the stock will only contain the list of molecules marked asin_stock
in the dictionary.The returned object should be sufficient to e.g. generate an image of the route.
- Parameters
tree_dict (StrDict) – the dictionary representation
- Returns
the reaction tree
- Return type
- property metadata: StrDict¶
Return a dicitionary with route metadata
- depth(node)¶
Return the depth of a node in the route
- Parameters
node (Union[UniqueMolecule, FixedRetroReaction]) – the query node
- Returns
the depth
- Return type
int
- distance_to(other, content='both')¶
Calculate the distance to another reaction tree
This is a tree edit distance, with unit cost to insert and deleted nodes, and the Jaccard distance for substituting nodes
- Parameters
other (aizynthfinder.reactiontree.ReactionTree) – the reaction tree to compare to
content (str) – determine what part of the tree to include in the calculation
- Returns
the distance between the routes
- Return type
float
- hash_key()¶
Calculates a hash code for the tree using the sha224 hash function recursively
- Returns
the hash key
- Return type
str
- in_stock(node)¶
Return if a node in the route is in stock
Note that is a property set on creation and as such is not updated.
- Parameters
node (Union[UniqueMolecule, FixedRetroReaction]) – the query node
- Returns
if the molecule is in stock
- Return type
bool
- is_branched()¶
Returns if the route is branched
i.e. checks if the maximum depth is not equal to the number of reactions.
- Return type
bool
- leafs()¶
Generates the molecules nodes of the reaction tree that has no predecessors, i.e. molecules that has not been broken down
- Yield
the next leaf molecule in the tree
- Return type
Iterable[UniqueMolecule]
- molecules()¶
Generates the molecule nodes of the reaction tree
- Yield
the next molecule in the tree
- Return type
Iterable[UniqueMolecule]
- reactions()¶
Generates the reaction nodes of the reaction tree
- Yield
the next reaction in the tree
- Return type
Iterable[FixedRetroReaction]
- subtrees()¶
Generates the subtrees of this reaction tree a subtree is a reaction treee starting at a molecule node that has children.
- Yield
the next subtree
- Return type
Iterable[ReactionTree]
- to_dict(include_metadata=False)¶
Returns the reaction tree as a dictionary in a pre-defined format. :param include_metadata: if True include metadata :return: the reaction tree
- Return type
StrDict
- to_image(in_stock_colors=None, show_all=True)¶
Return a pictorial representation of the route
- Parameters
in_stock_colors (Optional[FrameColors]) – the colors around molecules, defaults to {True: “green”, False: “orange”}
show_all (bool) – if True, also show nodes that are marked as hidden
- Returns
the image of the route
- Return type
PilImage
- to_json(include_metadata=False)¶
Returns the reaction tree as a JSON string in a pre-defined format.
- Returns
the reaction tree
- Return type
str
- class aizynthfinder.reactiontree.ReactionTreeLoader(*args, **kwargs)¶
Bases:
abc.ABC
Base class for classes that creates a reaction tree object
This class makes sure that node attributes are set after the graph is generated, and provides utility methods.
- Parameters
args (Any) –
kwargs (Any) –
- Return type
None
- class aizynthfinder.reactiontree.ReactionTreeFromDict(*args, **kwargs)¶
Bases:
aizynthfinder.reactiontree.ReactionTreeLoader
Creates a reaction tree object from a dictionary
- Parameters
args (Any) –
kwargs (Any) –
- Return type
None
- class aizynthfinder.reactiontree.ReactionTreeFromExpansion(*args, **kwargs)¶
Bases:
aizynthfinder.reactiontree.ReactionTreeLoader
Create a ReactionTree from a single reaction
This is mainly intended as a convenience function for the expander interface
- Parameters
args (Any) –
kwargs (Any) –
- Return type
None