schrodinger.application.pathfinder.analysis module

A module to perform retrosynthetic analysis.

Examples:

# retrosynthetic analysis
reactions = reaction.read_reactions_file('reactions.json')
retrosynthesis = analysis.retrosynthesize(amide, reactions)
print(retrosynthesis.asString())
for route in retrosynthesis.getRoutes():
    print(route.asString())
    print("Starting materials:")
    for sm in route.getStartingNodes():
        print("-", sm)
    route.write('route.json')
schrodinger.application.pathfinder.analysis.retrosynthesize(target_mol, reactions_dict, max_depth=1, exclude=None, require_bonds=None, frozen_atoms=None, broken_bonds=None, fragments=None, label_attachment_atoms=False)

Generate a retrosynthetic tree to the desired depth based on the target molecule.

Parameters:
  • reactions_dict (dict {str: Reaction}) – Reaction dictionary by name.
  • exclude (set of str) – Set of tags or reaction names to exclude. Tags are matched exactly; names are matched using shell globbing (*, ?, []).
  • require_bonds (set of tuple of int) – If provided, only reactions which break at least one bond in this set will be used for the analysis. Each bond is a sorted tuple of two 1-based atom indexes.
  • frozen_atoms (set of int) – If provided, reactions which break any bond between two atoms in this set are skipped.
  • broken_bonds (set of (int, int)) – If provided, this set will be filled with pairs of atom indexes for all the bonds that were broken during the analysis.
  • fragments (set of tuple of int) – If provided, this set will be filled with tuples of atom indexes for the fragments identified during the analysis. “Fragment” here is understood as a subset of atoms in the original molecule that is also present in a precursor.
  • label_attachment_atoms – if true, add atom mapping numbers to “attachment atoms”, which are atoms that were present in the target molecule and which were involved in any broken bond.
Return type:

RetrosynthesisNode

schrodinger.application.pathfinder.analysis.reaction_is_excluded(reaction, exclude)

Check if a reaction meets any of the exclusion criteria.

Parameters:exclude (set of str) – Set of tags or reaction names to exclude. Tags are matched exactly; names are matched using shell globbing (*, ?, []).
Returns:True if reaction is meets any of the exclusion criteria
Return type:bool
schrodinger.application.pathfinder.analysis.filter_reactions(reactions, exclude)

Return a shallow copy of a list of reactions, filtering out those matching any of the exclusion criteria.

Parameters:exclude (set of str) – Set of tags or reaction names to exclude. Tags are matched exactly; names are matched using shell globbing (*, ?, []).
Return type:list of reaction