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__(key, /)

Return key in self.

__len__()

Return len(self).

count(value, /)

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=0, stop=9223372036854775807, /)

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__(*args, **kwargs)

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

minimizeIdealComplex(ligname)

Minimize the complex using the passed in minimizer

Parameters

ligname (str) – The title of the ligand structure

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