schrodinger.comparison.comparison module

Answers to the question of ‘are these two structures the same?’ using various definitions of ‘the same’

schrodinger.comparison.comparison.are_isomers(st1, st2)

Determines if the two structures are isomers (same number of each type of element)

Parameters:
Return bool:
schrodinger.comparison.comparison.are_conformers(st1, st2, use_lewis_structure=True, use_stereo=False)

Determines if the two structures are conformers (atom order independent). This does not make any assumptions about atom ordering being initially correct and, if that is your case this may not be the appropriate tool.

Parameters:
  • st1 (Structure) – the first structure
  • st2 (Structure) – the second structure
  • use_lewis_structure (bool) – if True, use atomic symbol, formal charge and bond orders to define equivalence of atoms, else use only atomic symbol. The former definition is more traditional whereas the latter only requires consistent connectivity
  • use_stereo (bool) – if True also use atomic stereochemical labels generated by mmstereo to equate atoms. This includes E/Z labels but excludes the labels ANR, ANS. i.e. answer the question of whether these structures are stereoisomers
Returns:

bool

schrodinger.comparison.comparison.are_tautomers(st1, st2, use_stereo=False)

Determines if the two structures are tautomers by inspecting if the heavy atom connectivity is the same. Here, the definitioon of the same uses connectivity only, it is not assumed bond orders are the same. This does not make any assumptions about atom ordering being initially correct and, if that is your case this may not be the appropriate tool.

Parameters:
Returns:

bool

schrodinger.comparison.comparison.are_stereoisomers(st1, st2, use_lewis_structure=True)

Determines if the two structures are stereoisomers (atom order independent). A molecule is not a stereoisomer of itself, i.e. are_stereoisomers(st, st)==False This does not make any assumptions about atom ordering being initially correct and, if that is your case this may not be the appropriate tool.

Parameters:
  • st1 (Structure) – the first structure
  • st2 (Structure) – the second structure
  • use_lewis_structure (bool) – if True, use atomic symbol, formal charge and bond orders to define equivalence of atoms, else use only atomic symbol. The former definition is more traditional whereas the latter only requires consistent connectivity
Returns:

bool

schrodinger.comparison.comparison.are_enantiomers(st1, st2, use_lewis_structure=True)

Determines if the two structures are enantiomers (atom order independent). This does not make any assumptions about atom ordering being initially correct and, if that is your case this may not be the appropriate tool.

Parameters:
  • st1 (Structure) – the first structure
  • st2 (Structure) – the second structure
  • use_lewis_structure (bool) – if True, use atomic symbol, formal charge and bond orders to define equivalence of atoms, else use only atomic symbol. The former definition is more traditional whereas the latter only requires consistent connectivity
Returns:

bool

schrodinger.comparison.comparison.are_diastereomers(st1, st2, use_lewis_structure=True)

Determines if the two structures are diastereomers (atom order independent). This does not make any assumptions about atom ordering being initially correct and, if that is your case this may not be the appropriate tool.

Parameters:
  • st1 (Structure) – the first structure
  • st2 (Structure) – the second structure
  • use_lewis_structure (bool) – if True, use atomic symbol, formal charge and bond orders to define equivalence of atoms, else use only atomic symbol. The former definition is more traditional whereas the latter only requires consistent connectivity
Returns:

bool

schrodinger.comparison.comparison.are_same_geometry(st1, st2, rms_thresh=0.25)

Determines if two structures are conformers with the same geometry. Assumes that structures are already consistently numbered.

Parameters:
  • st1 (Structure) – the first structure
  • st2 (Structure) – the second structure
  • use_lewis_structure (bool) – if True, use atomic symbol, formal charge and bond orders to define equivalence of atoms, else use only atomic symbol. The former definition is more traditional whereas the latter only requires consistent connectivity
  • rms_thresh – Threshold for RMSD to be considered the same geometry
Returns:

bool