aizynthfinder.chem package¶
Submodules¶
aizynthfinder.chem.mol module¶
Module containing classes to deal with Molecules - mostly wrappers around rdkit routines.
- class aizynthfinder.chem.mol.Molecule(rd_mol=None, smiles=None, sanitize=False)¶
Bases:
object
A base class for molecules. Encapsulate an RDKit mol object and functions that can be applied to such a molecule.
The objects of this class is hashable by the inchi key and hence comparable with the equality operator.
- Variables
rd_mol – the RDkit mol object that is encapsulated
smiles – the SMILES representation of the molecule
- Parameters
rd_mol (Optional[RdMol]) – a RDKit mol object to encapsulate, defaults to None
smiles (Optional[str]) – a SMILES to convert to a molecule object, defaults to None
sanitize (bool) – if True, the molecule will be immediately sanitized, defaults to False
- Raises
MoleculeException – if neither rd_mol or smiles is given, or if the molecule could not be sanitized
- Return type
None
- property inchi: str¶
The inchi representation of the molecule Created by lazy evaluation. Will cause the molecule to be sanitized.
- Returns
the inchi
- property inchi_key: str¶
The inchi key representation of the molecule Created by lazy evaluation. Will cause the molecule to be sanitized.
- Returns
the inchi key
- property index_to_mapping: Dict[int, int]¶
Return a dictionary mapping to atom indices to atom mappings
- property mapping_to_index: Dict[int, int]¶
Return a dictionary mapping to atom mappings to atom indices
- property weight: float¶
Return the exact molecular weight of the molecule
- basic_compare(other)¶
Compare this molecule to another but only to the basic part of the inchi key, thereby ignoring stereochemistry etc
- Parameters
other (aizynthfinder.chem.mol.Molecule) – the molecule to compare to
- Returns
True if chemical formula and connectivity is the same
- Return type
bool
- fingerprint(radius, nbits=2048, chiral=False)¶
Returns the Morgan fingerprint of the molecule
- Parameters
radius (int) – the radius of the fingerprint
nbits (int) – the length of the fingerprint
chiral (bool) – if True, include chirality information
- Returns
the fingerprint
- Return type
numpy.ndarray
- has_atom_mapping()¶
Determines if a the molecule has atom mappings
- Returns
True if at least one atom has a mapping
- Return type
bool
- make_unique()¶
Returns an instance of the UniqueMolecule class that is representing the same molecule but is not hashable or comparable.
- Returns
the unique molecule
- Return type
- remove_atom_mapping(exceptions=None)¶
Remove all mappings of the atoms and update the smiles
- Parameters
exceptions (Optional[Sequence[int]]) – keep the listed atom mappings
- Return type
None
- sanitize(raise_exception=True)¶
Sanitizes the molecule if it has not been done before.
- Parameters
raise_exception (bool) – if True will raise exception on failed sanitation
- Raises
MoleculeException – if the molecule could not be sanitized
- Return type
None
- class aizynthfinder.chem.mol.TreeMolecule(parent, transform=None, rd_mol=None, smiles=None, sanitize=False, mapping_update_callback=None)¶
Bases:
aizynthfinder.chem.mol.Molecule
A special molecule that keeps a reference to a parent molecule.
If the class is instantiated without specifying the transform argument, it is computed by increasing the value of the parent.transform variable.
If no parent is provided the atoms with atom mapping number are tracked and inherited to children.
- Variables
mapped_mol – the tracked molecule with atom mappings
mapped_smiles – the SMILES of the tracked molecule with atom mappings
original_smiles – the SMILES as passed when instantiating the class
parent – parent molecule
transform – a numerical number corresponding to the depth in the tree
- Parameters
parent (Optional['TreeMolecule']) – a TreeMolecule object that is the parent
transform (Optional[int]) – the transform value, defaults to None
rd_mol (Optional[RdMol]) – a RDKit mol object to encapsulate, defaults to None
smiles (Optional[str]) – a SMILES to convert to a molecule object, defaults to None
sanitize (bool) – if True, the molecule will be immediately sanitized, defaults to False
mapping_update_callback (Optional[Callable[['TreeMolecule'], None]]) – if given will call this method before setting up the mapped_smiles
- Raises
MoleculeException – if neither rd_mol or smiles is given, or if the molecule could not be sanitized
- Return type
None
- property mapping_to_index: Dict[int, int]¶
Return a dictionary mapping to atom mappings to atom indices
- property mapped_atom_bonds: List[Tuple[int, int]]¶
Return a list of atom bonds as tuples on the mapped atom indices
- class aizynthfinder.chem.mol.UniqueMolecule(rd_mol=None, smiles=None, sanitize=False)¶
Bases:
aizynthfinder.chem.mol.Molecule
A special molecule with the hash set to the id of the object. Therefore no two instances of this class will be comparable.
- Parameters
rd_mol (Optional[RdMol]) – a RDKit mol object to encapsulate, defaults to None
smiles (Optional[str]) – a SMILES to convert to a molecule object, defaults to None
sanitize (bool) – if True, the molecule will be immediately sanitized, defaults to False
- Raises
MoleculeException – if neither rd_mol or smiles is given, or if the molecule could not be sanitized
- Return type
None
- aizynthfinder.chem.mol.none_molecule()¶
Return an empty molecule
- Return type
aizynthfinder.chem.reaction module¶
Module containing classes to deal with Reactions.
- class aizynthfinder.chem.reaction.RetroReaction(mol, index=0, metadata=None, **kwargs)¶
Bases:
abc.ABC
,aizynthfinder.chem.reaction._ReactionInterfaceMixin
A retrosynthesis reaction. Only a single molecule is the reactant.
This is an abstract class and child classes needs to implement the _apply and _make_smiles functions that should create the reactants molecule objects and the reaction SMILES representation, respectively.
- Variables
mol – the TreeMolecule object that this reaction is applied to
index – a unique index of this reaction, to count for the fact that a reaction can produce more than one outcome
metadata – meta data associated with the reaction
- Parameters
mol (TreeMolecule) – the molecule
index (int) – the index, defaults to 0
metadata (Optional[StrDict]) – some meta data
kwargs (Any) –
- Params kwargs
any extra parameters for child classes
- Return type
None
- classmethod from_serialization(init_args, reactants)¶
Create an object from a serialization. It does 1) instantiate an object using the init_args and 2) set the reactants to a tuple-form of `reactants
- Parameters
init_args (StrDict) – the arguments passed to the __init__ method
reactants (List[List[TreeMolecule]]) – the reactants
- Returns
the deserialized object
- Return type
- property reactants: Tuple[Tuple[TreeMolecule, ...], ...]¶
Returns the reactant molecules. Apply the reaction if necessary.
- Returns
the products of the reaction
- property smiles: str¶
The reaction as a SMILES
- Returns
the SMILES
- property unqueried: bool¶
Return True if the reactants has never been retrieved
- copy(index=None)¶
Shallow copy of this instance.
- Parameters
index (Optional[int]) – new index, defaults to None
- Returns
the copy
- Return type
- mapped_reaction_smiles()¶
Get the mapped reaction SMILES if it exists :return: the SMILES
- Return type
str
- to_dict()¶
Return the retro reaction as dictionary This dictionary is not suitable for serialization, but is used by other serialization routines The elements of the dictionary can be used to instantiate a new reaction object
- Return type
StrDict
- class aizynthfinder.chem.reaction.TemplatedRetroReaction(mol, index=0, metadata=None, **kwargs)¶
Bases:
aizynthfinder.chem.reaction.RetroReaction
A retrosynthesis reaction that uses a reaction SMARTS and RDChiral to produce reactant molecules. The SMILES representation of the reaction is the SMARTS (modified by RDKit)
- Parameters
mol (TreeMolecule) – the molecule
index (int) – the index, defaults to 0
metadata (Optional[StrDict]) – some meta data
smarts – a string representing the template
kwargs (Any) –
- property rd_reaction: RdReaction¶
Return the RDKit reaction created from the SMART
- to_dict()¶
Return the retro reaction as dictionary This dictionary is not suitable for serialization, but is used by other serialization routines The elements of the dictionary can be used to instantiate a new reaction object
- Return type
StrDict
- class aizynthfinder.chem.reaction.SmilesBasedRetroReaction(mol, index=0, metadata=None, **kwargs)¶
Bases:
aizynthfinder.chem.reaction.RetroReaction
A retrosynthesis reaction where the SMILES of the reactants are given on initiation
The SMILES representation of the reaction is the reaction SMILES
- Parameters
mol (TreeMolecule) – the molecule
index (int) – the index, defaults to 0
metadata (Optional[StrDict]) – some meta data
reactants_str – a dot-separated string of reactant SMILES strings
kwargs (Any) –
- to_dict()¶
Return the retro reaction as dictionary This dictionary is not suitable for serialization, but is used by other serialization routines The elements of the dictionary can be used to instantiate a new reaction object
- Return type
StrDict
- class aizynthfinder.chem.reaction.FixedRetroReaction(mol, smiles='', metadata=None)¶
Bases:
aizynthfinder.chem.reaction._ReactionInterfaceMixin
A retrosynthesis reaction that has the same interface as RetroReaction but it is fixed so it does not support SMARTS application or any creation of reactants.
The reactants are set by using the reactants property.
- Variables
mol – the UniqueMolecule object that this reaction is applied to
smiles – the SMILES representation of the RDKit reaction
metadata – meta data associated with the reaction
reactants – the reactants of this reaction
- Parameters
mol (UniqueMolecule) – the molecule
smiles (str) – the SMILES of the reaction
metadata (Optional[StrDict]) – some meta data
- Return type
None
- copy()¶
Shallow copy of this instance.
- Returns
the copy
- Return type
- to_smiles_based_retroreaction()¶
Convert a FixedRetroReaction to a SmilesBasedRetroReaction.
- Returns
the SmilesBasedRetroReaction.
- Return type
- aizynthfinder.chem.reaction.hash_reactions(reactions, sort=True)¶
Creates a hash for a list of reactions
- Parameters
reactions (Union[Iterable[RetroReaction], Iterable[FixedRetroReaction]]) – the reactions to hash
sort (bool) – if True will sort all molecules, defaults to True
- Returns
the hash string
- Return type
str
aizynthfinder.chem.serialization module¶
Module containing helper classes and routines for serialization.
- class aizynthfinder.chem.serialization.MoleculeSerializer¶
Bases:
object
Utility class for serializing molecules
The id of the molecule to be serialized can be obtained with:
serializer = MoleculeSerializer() mol = Molecule(smiles="CCCO") idx = serializer[mol]
which will take care of the serialization of the molecule.
- Return type
None
- property store: Dict[int, Any]¶
Return all serialized molecules as a dictionary
- class aizynthfinder.chem.serialization.MoleculeDeserializer(store)¶
Bases:
object
Utility class for deserializing molecules. The serialized molecules are created upon instantiation of the class.
The deserialized molecules can be obtained with:
deserializer = MoleculeDeserializer() mol = deserializer[idx]
- Parameters
store (Dict[int, Any]) –
- Return type
None
- get_tree_molecules(ids)¶
Return multiple deserialized tree molecules
- Parameters
ids (Sequence[int]) – the list of IDs to deserialize
- Returns
the molecule objects
- Return type
Sequence[aizynthfinder.chem.TreeMolecule]
- aizynthfinder.chem.serialization.serialize_action(action, molecule_store)¶
Serialize a retrosynthesis action
- Parameters
action (RetroReaction) – the (re)action to serialize
molecule_store (MoleculeSerializer) – the molecule serialization object
- Returns
the action as a dictionary
- Return type
StrDict
- aizynthfinder.chem.serialization.deserialize_action(dict_, molecule_store)¶
Deserialize a retrosynthesis action
- Parameters
dict – the (re)action as a dictionary
molecule_store (MoleculeDeserializer) – the molecule deserialization object
dict_ (StrDict) –
- Returns
the created action object
- Return type
Module contents¶
Sub-package containing chemistry routines