schrodinger.application.matsci.sculptcomplex module

Utilities for sculpt complex.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.matsci.sculptcomplex.SiteAtom(entry_id, element, entry_index, ws_index)

Bases: tuple

__contains__

Return key in self.

__init__

Initialize self. See help(type(self)) for accurate signature.

__len__

Return len(self).

count(value) → integer -- return number of occurrences of value
element

Alias for field number 1

entry_id

Alias for field number 0

entry_index

Alias for field number 2

index(value[, start[, stop]]) → integer -- return first index of value.

Raises ValueError if the value is not present.

ws_index

Alias for field number 3

exception schrodinger.application.matsci.sculptcomplex.SculptingError

Bases: Exception

__init__

Initialize self. See help(type(self)) for accurate signature.

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

class schrodinger.application.matsci.sculptcomplex.CoordinationInfo

Bases: object

Holds and yields information about atoms and groups that coordinate at specific sites

__init__()

Create a CoordinationInfo object

addSite(site)

Add information about the next site. Information should be added in the order of the sites i.e. add information about site 1 first, then site 2…

Parameters:site (SiteAtom or str) – For sites occupied by ligand atoms, pass in the SiteAtom for the ligand atom. For sites occupied by capping groups, pass in the str name of the capping group.
ligandSites()

A generator over all the sites attached to the ligand

Return type:(int, SiteAtom)
Returns:Iterates over pairs of index number (zero-based) and the SiteAtom object associated with that site
cappedSites()

A generator over all the sites capped by capping groups

Return type:(int, str)
Returns:Iterates over pairs of index number (zero-based) and the name of the capping group. The name will be a key to the FRAG_DICT dictionary
allGroupsAreCapping()

Check if all sites are capped (i.e. there are no ligand attachments)

Return type:bool
Returns:True if all sites are capped
schrodinger.application.matsci.sculptcomplex.validate_coord_flag(coordinators)

Validate that the -coord flag argument is correct and parse its information

Parameters:coordinators (str) – The command line argument for the -coord flag
Return type:(CoordinationInfo, str)
Returns:The CoordinationInfo object with the command line information and a string that gives the corresponding VSEPR geometry. The string will be one of the buildcomplex geometry constants (OCTAHEDRAL, etc.)
Raises:argparse.ArgumentTypeError – If something is wrong with the input
class schrodinger.application.matsci.sculptcomplex.Sculptor(element, coordination_info, geometry, del_h, title, enumerating)

Bases: object

Does the work of sculpting a ligand around a metal atom and capping open valences with small capping groups.

__init__(element, coordination_info, geometry, del_h, title, enumerating)
Parameters:
  • element (str) – The atomic symbol of the central atom
  • coordination_info (CoordinationInfo) – The CoordinationInfo that gives the information about each coordination site
  • geometry (str) – One of the VSEPR string constants from schrodinger.application.matsci.buildcomplex (OCTAHEDRAL, etc.)
  • del_h (bool) – Whether to delete H atoms at the ligand coordination sites
  • title (str) – The base title for structures created by this Sculptor.
  • enumerating (bool) – True if enumerating multiple ligand structures
sculpt(ligstruct)

Create a sculpted complex from the given ligand structure

Parameters:ligstruct (schrodinger.structure.Structure) – The structure of the ligand
Raises:SculptingError – Too many metal-to-ligand bonds
Return type:schrodinger.structure.Structure
Returns:The structure of the complex
getLigandStructure(struct)

Fix up struct to prepare it for binding in the complex

Parameters:struct (schrodinger.structure.Structure) – The raw structure of the ligand
Return type:list
Returns:The fixed up struct. A list is returned to maintain API compatibitily with code that was implemented for self.getLigandsFromMultiStructures. Left this way in case we implement multiple ligand entries in the future.
coordinatingAtoms(struct)

A generator over all the atoms in the structure that bind or will bind to the metal

Parameters:struct (schrodinger.structure.Structure) – The structure containing the atoms. Can be either a ligand or the full complex.
Return type:schrodinger.structure._StructureAtom, int
Returns:An atom that binds/will bind to the metal and the coordination site it occupies/will occupy
fixLocations()

Reorder the ideal locations list to correspond to the reordered coordination sites in the siteselectors.

Return type:list
Returns:The list of ideal coordination sitess reordered the to same order as shown in the GUI site selection diagrams. Each item of the list is an XYZ tuple giving the coordination site if the metal is at (0, 0, 0)
alignLigands()

Align the ligands to good binding location, ensuring that the coordinating atoms are near (as possible) to the coordination sites and that the ligand is flipped to a reasonable orientation

createBasicStructure()

Create the basic structure of the complex - metal atom plus ligands without the ligands actually bound to the metal and without optimizing their positions

Return type:schrodinger.structure.Structure
Returns:The basic complex structure
addCappingLigands()

Add capping groups to the requested positions

bondLigandsToMetal()

Bond the ligands to the metal atom

addIdealAnchors()

Add dummy atoms at each of the ideal coordination locations

setUpMinimizer(ligname)

Set up the minimizer with the structure and required restraints

Parameters:ligname (str) – The title of the ligand structure
Return type:schrodinger.structutils.minimize.Minimzer
Returns:The minimizer with structure and restraints set
minimizeIdealComplex(mizer)

Minimize the complex using the passed in minimizer

Return type:schrodinger.structutils.minimize.Minimzer
Returns:The minimizer with structure and restraints set
deleteAnchors()

Delete the dummy atoms that mark the ideal coordination sites