schrodinger.application.matsci.buildcomplex2d module¶
Utilities for the 2D-to-3D *sdf to *mae file conversion for a
metal complex.
Copyright Schrodinger, LLC. All rights reserved.
- class schrodinger.application.matsci.buildcomplex2d.DummiesToHydrogens(st)¶
Bases:
objectContext manager to temporarily convert dummy atoms to hydrogens.
- __init__(st)¶
- class schrodinger.application.matsci.buildcomplex2d.RemoveMetalBonds(st)¶
Bases:
objectContext manager to temporarily remove bonds to the metal atom in a complex.
- __init__(st)¶
- exception schrodinger.application.matsci.buildcomplex2d.ComplexSdfToMaeException¶
Bases:
Exception- __init__(*args, **kwargs)¶
- args¶
- with_traceback()¶
Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
- class schrodinger.application.matsci.buildcomplex2d.ComplexSdfToMae(sdf_file, logger=None)¶
Bases:
objectManage the 2D-to-3D
*sdfto*maefile conversion for a metal complex.- SD_PROP_PATTERN = re.compile('><(.*)>')¶
- SD_PROP_STARTER = 's_sd_'¶
- DUMMY_ATOMIC_NUMBER = -2¶
- BIND_PROP = 'b_user_metal_neighbor'¶
- HAPTIC_ATOM_PROP = 'b_user_haptic_atom'¶
- __init__(sdf_file, logger=None)¶
Create an instance.
- Parameters
sdf_file (str) – the 2D
*sdffilelogger (logging.Logger or None) – output logger or None if there isn’t one
- static read_sdf(sdf_file)¶
Wrapper to read an
*sdffile.- Parameters
sdf_file (str) – the
*sdffile- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
- Returns
the structure
- getCenterIdx()¶
Return the atom index that serves as the complex center, typically a metal atom.
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
int
- Returns
the atom index that serves as the complex center
- prepare()¶
Prepare the structure.
- addHydrogens(st)¶
Add hydrogens to the given structure.
- Parameters
st (
schrodinger.structure.Structure) – the structure
- build()¶
Build the complex.
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
- Returns
the complex
- fixRingSpears(st)¶
Fix ring-spears.
- Parameters
st (
schrodinger.structure.Structure) – the structure
- updateProperties(st)¶
Update properties on the given structure.
- Parameters
st (
schrodinger.structure.Structure) – the structure
- run()¶
Run.
- Return type
- Returns
the structure
- write(mae_file=None)¶
Write.
- Parameters
mae_file (str) – the 3D
*maefile- Return type
str
- Returns
the 3D
*maefile
- sculptComplexBuild(sites=None, geometry=None, optimize=True)¶
Build the complex using sculpt complex.
- Parameters
sites (list or None) – contains atom index pair tuples, the first index is for the atom that binds to the metal and is negated for eta-coordinated ligands, the second index is for the atom that represents the metal positioning relative to the ligand and is 0 for eta-coordinated ligands, the order of sites in this list determines the coordination geometry of the complex, if None an arbitrarily ordered list of sites will be determined from the structure
geometry (str or None) – the VSEPR geometry from the buildcomplex geometry constants, if None uses the sculpt complex convention of using the last geometry for a given number of slots coming from the order in buildcomplex.IDEAL_SLOTS
optimize (bool) – whether to perform a standard geometry optimization on the final sculpted complex
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
- Returns
the complex
- buildComplexBuild()¶
Build the complex using build complex.
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
- Returns
the complex
- static type_cast_sdf_file(sdf_file)¶
Type cast the 2D
*sdffile.- Parameters
sdf_file (str) – the 2D
*sdffile- Raises
argparse.ArgumentTypeError – is there is an issue
- Return type
str
- Returns
the 2D
*sdffile
- getAvailableGeometries(geometry=None)¶
Return the available geometries.
- Parameters
geometry (str or None) – the specific coordination geometry to use, if not specified all available geometries will be considered
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
list[str]
- Returns
contains available geometries
- get3DIsomers(geometry=None, out_rep=None, epsilon=2)¶
Return 3D isomers.
- Parameters
geometry (str or None) – the specific coordination geometry to use, if not specified all available geometries will be considered
out_rep (str or None) – if None then the conversion is to the opposite of the given representation, eta to centroid or centroid to eta, if a string then must be either module constant parserutils.CENTROID or parserutils.ETA in which case the conversion will always provide an output representation of the given type
epsilon (float) – the energy window in kcal/mol for binning isomers
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
- Returns
contains 3D isomers
- class schrodinger.application.matsci.buildcomplex2d.ComplexSdfToRxnWF(sdf_file, reference_rxnwf_file=None, handle_rotamers=True, logger=None)¶
Bases:
schrodinger.application.matsci.buildcomplex2d.ComplexSdfToMaeManage the 2D-to-3D
*sdfto*_rxnwf_maefile conversion for a metal complex.- R_GROUP_SD_KEY_PATTERN = re.compile('R(\\d+)(.*)')¶
- SITE_ATOM_KEY = 'i_matsci_Reaction_Workflow_Enumeration_Atom'¶
- REPLACE_ATOM_SD_KEY = 'Replace Indices'¶
- SUPERPOSITION_ATOM_SD_KEY = 'Superimpose Indices'¶
- __init__(sdf_file, reference_rxnwf_file=None, handle_rotamers=True, logger=None)¶
Create an instance.
- Parameters
sdf_file (str) – the 2D
*sdffilereference_rxnwf_file (str) – the reaction workflow file containing the reference structures, used for finding an optimal 3D geometry
handle_rotamers (bool) – whether to rotate mono-dentate haptic ligands containing superposition atoms such that they maximally overlap with the reference reaction workflow
logger (logging.Logger or None) – output logger or None if there isn’t one
- static parse_novel_sdf_file(sdf_file)¶
Parse the novel 2D
*sdffile.- Parameters
sdf_file (str) – the novel 2D
*sdffile- Returns
list, list, list, list
- Returns
(1) contains R-group file data as [R-group file, R-group index] pairs, (2) contains site data as [site “to” index, R-group index] pairs, (3) contains replace indicies, (4) contains superposition indices
- static type_cast_novel_sdf_file(sdf_file)¶
Type cast the novel 2D
*sdffile.- Parameters
sdf_file (str) – the novel 2D
*sdffile- Raises
argparse.ArgumentTypeError – is there is an issue
- Return type
str
- Returns
the novel 2D
*sdffile
- updateProperties(st)¶
Update properties on the given structure.
- Parameters
st (
schrodinger.structure.Structure) – the structure
- buildBestRotamer(nov_st)¶
Build the best rotamer:
- Parameters
nov_st (
schrodinger.structure.Structure) – the novel structure- Raises
ComplexSdfToMaeException – if there is an issue
- run()¶
Run.
- Return type
- Returns
the structure
- write(rxnwf_file=None)¶
Write.
- Parameters
rxnwf_file (str) – the 3D
*_rxnwf.maefile- Return type
str, list
- Returns
the 3D
*_rxnwf.maefile, contains for each site a list of data[from_idx, to_idx, rgroup_idx]
- BIND_PROP = 'b_user_metal_neighbor'¶
- DUMMY_ATOMIC_NUMBER = -2¶
- HAPTIC_ATOM_PROP = 'b_user_haptic_atom'¶
- SD_PROP_PATTERN = re.compile('><(.*)>')¶
- SD_PROP_STARTER = 's_sd_'¶
- addHydrogens(st)¶
Add hydrogens to the given structure.
- Parameters
st (
schrodinger.structure.Structure) – the structure
- build()¶
Build the complex.
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
- Returns
the complex
- buildComplexBuild()¶
Build the complex using build complex.
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
- Returns
the complex
- fixRingSpears(st)¶
Fix ring-spears.
- Parameters
st (
schrodinger.structure.Structure) – the structure
- get3DIsomers(geometry=None, out_rep=None, epsilon=2)¶
Return 3D isomers.
- Parameters
geometry (str or None) – the specific coordination geometry to use, if not specified all available geometries will be considered
out_rep (str or None) – if None then the conversion is to the opposite of the given representation, eta to centroid or centroid to eta, if a string then must be either module constant parserutils.CENTROID or parserutils.ETA in which case the conversion will always provide an output representation of the given type
epsilon (float) – the energy window in kcal/mol for binning isomers
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
- Returns
contains 3D isomers
- getAvailableGeometries(geometry=None)¶
Return the available geometries.
- Parameters
geometry (str or None) – the specific coordination geometry to use, if not specified all available geometries will be considered
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
list[str]
- Returns
contains available geometries
- getCenterIdx()¶
Return the atom index that serves as the complex center, typically a metal atom.
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
int
- Returns
the atom index that serves as the complex center
- prepare()¶
Prepare the structure.
- static read_sdf(sdf_file)¶
Wrapper to read an
*sdffile.- Parameters
sdf_file (str) – the
*sdffile- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
- Returns
the structure
- sculptComplexBuild(sites=None, geometry=None, optimize=True)¶
Build the complex using sculpt complex.
- Parameters
sites (list or None) – contains atom index pair tuples, the first index is for the atom that binds to the metal and is negated for eta-coordinated ligands, the second index is for the atom that represents the metal positioning relative to the ligand and is 0 for eta-coordinated ligands, the order of sites in this list determines the coordination geometry of the complex, if None an arbitrarily ordered list of sites will be determined from the structure
geometry (str or None) – the VSEPR geometry from the buildcomplex geometry constants, if None uses the sculpt complex convention of using the last geometry for a given number of slots coming from the order in buildcomplex.IDEAL_SLOTS
optimize (bool) – whether to perform a standard geometry optimization on the final sculpted complex
- Raises
ComplexSdfToMaeException – if there is an issue
- Return type
- Returns
the complex
- static type_cast_sdf_file(sdf_file)¶
Type cast the 2D
*sdffile.- Parameters
sdf_file (str) – the 2D
*sdffile- Raises
argparse.ArgumentTypeError – is there is an issue
- Return type
str
- Returns
the 2D
*sdffile
- schrodinger.application.matsci.buildcomplex2d.convert_sdf_to_rxnwf(sdf_file, reference_rxnwf_file, handle_rotamers=True, output_rxnwf_file_name=None, logger=None)¶
Convert the given single structure 2D
*sdffile to a 3D*_rxnwf.maefile.- Parameters
sdf_file (str) – the
*sdffilereference_rxnwf_file (str) – the reaction workflow file containing the reference structures, used for finding an optimal 3D geometry
handle_rotamers (bool) – whether to rotate mono-dentate haptic ligands containing superposition atoms such that they maximally overlap with the reference reaction workflow
output_rxnwf_file_name (str) – the output reaction workflow file name
logger (logging.Logger or None) – output logger or None if there isn’t one
- Return type
str, list, list
- Returns
(1) the 3D
*_rxnwf.maefile, (2) contains R-group file data as [R-group file, R-group index] pairs, (3) contains for each site a list of data [from_idx, to_idx, rgroup_idx]
- schrodinger.application.matsci.buildcomplex2d.get_3d_isomers(sdf_file, geometry=None, out_rep=None, epsilon=2, logger=None)¶
Return 3D isomers for the given 2D
*sdffile of a transition metal complex.- Parameters
sdf_file (str) – the
*sdffilegeometry (str or None) – the specific coordination geometry to use, if not specified all available geometries will be considered
out_rep (str or None) – if None then the conversion is to the opposite of the given representation, eta to centroid or centroid to eta, if a string then must be either module constant parserutils.CENTROID or parserutils.ETA in which case the conversion will always provide an output representation of the given type
epsilon (float) – the energy window in kcal/mol for binning isomers
logger (logging.Logger or None) – output logger or None if there isn’t one
- Return type
- Returns
contains 3D isomers