schrodinger.application.matsci.cg_mapping module

Utilities for mapping CG structures to AA

Copyright Schrodinger, LLC. All rights reserved.

schrodinger.application.matsci.cg_mapping.get_chiral_hash(x)
schrodinger.application.matsci.cg_mapping.get_chiral_pair(x)
exception schrodinger.application.matsci.cg_mapping.NonContiguousBondingError(msg='Particles containing atoms that are not contiguously bonded are currently not supported.', *args, **kwargs)

Bases: Exception

Exception to handle non contiguous bonding in CG

__init__(msg='Particles containing atoms that are not contiguously bonded are currently not supported.', *args, **kwargs)

Exception with default error message

args
with_traceback()

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

schrodinger.application.matsci.cg_mapping.extract_and_contract(struct, idxs=None, pbc=None, fast=False)

From the given indices and structure extract a structure and contract it according to the PBC.

Parameters:
  • struct (structure.Structure) – the structure from which to extract
  • idxs (set or None) – a set of integer atom indices defining the structure to be extracted or None in which case all indices will be used
  • pbc (schrodinger.infra.structure.PBC) – A pre-computed PBC for the structure
  • fast (bool) – True if the computation should be done on a throw-away structure that will not be used for more than a center of mass calculation, False if the extracted structure must preserve properties such as atom formal charge and structure properties.
Return type:

structure.Structure

Returns:

the extracted and contracted structure

schrodinger.application.matsci.cg_mapping.center_of_mass(struct, idxs=None, pbc=None)

Return the center of mass of the given indices in the given structure accounting for if the structure has a PBC.

Parameters:
  • struct (structure.Structure) – the structure containing the atoms for which the center of mass is needed
  • idxs (set or None) – a set of integer atom indices for which the center of mass is needed or None in which case all atoms will be used
  • pbc (schrodinger.infra.structure.PBC) – A pre-computed PBC for the structure
Return type:

numpy.array

Returns:

the center of mass

class schrodinger.application.matsci.cg_mapping.Particle

Bases: object

Create a coarse grain particle.

__init__()

Create an instance.

setXYZ(xyz=None, astructure=None, pbc=None)

Set the position of the given particle.

Parameters:
  • xyz (numpy.array or None) – the position of the particle or None if there isn’t one
  • astructure (structure.Structure or None) – the structure from which the parent structure will be extracted and for which the center of mass is needed or None if there isn’t one
  • pbc (schrodinger.infra.structure.PBC) – A pre-computed PBC for the structure
setVDWRadius(vdw_radius=None)

Set the VDW radius in Ang.

Parameters:vdw_radius (float or None) – the VDW radius of the given particle in Ang. or None if there isn’t one
setAtomicWeight(atomic_weight=None)

Set the atomic weight in g/mol.

Parameters:atomic_weight (float or None) – the atomic weight of the given particle in g/mol or None if there isn’t one
setFormalCharge(formal_charge=None)

Set the formal charge.

Parameters:formal_charge (int) – the formal charge of the given particle or None if there isn’t one
setPartialCharge(partial_charge=None)

Set the partial charge.

Parameters:partial_charge (float) – the partial charge of the given particle or None if there isn’t one
setParentStructure(astructure)

Set the parent structure.

Parameters:astructure (structure.Structure) – the structure from which the parent structure will be extracted
setParentStructureStr()

Set the parent structure string.

setParentIndices(parent_indices)

Set the parent indices.

Parameters:parent_indices (list) – the parent indices, i.e. indices of the parent atomic structure for this particle
setParentCutBonds(astructure)

Set the parent cut bonds.

Parameters:astructure (structure.Structure) – the structure from which the parent structure was extracted and thus for which the bonding information is needed
setFormula(formula=None)

Set the formula of the given particle.

Parameters:formula (str or None) – the formula for the given particle or None if there isn’t one
setName(name)

Set the name of the given particle.

Parameters:name (str) – name of the particle
setRGBColor(rgb_color)

Set the RGB color of the given particle.

Parameters:rgb_color (tuple) – a triple of integers in [0, 255] that give an RGB color for the given particle
setAtomType(atom_type)

Set the atom type of the given particle.

Parameters:atom_type (int) – atom type of the given particle
setKey(key)

Set the key of the given particle, this is the key that indicates the parent structure string.

Parameters:key (str) – key of the given particle
defineAtom(astructure, index)

Define the given atom.

Parameters:
  • astructure (structure.Structure) – the structure containing the atom to define
  • index (int) – index of the atom to define
static getParentIndices(cg_structure, cg_idx)

Return the parent indices for the given coarse grain particle index in the given coarse grain structure.

Parameters:
  • cg_structure (structure.Structure) – the coarse grain structure
  • cg_idx (int) – the coarse grain particle index
Return type:

tuple

Returns:

the parent indices for the given coarse grain particle index

static getParentCutBonds(cg_structure, cg_idx, reverse=False)

Return the parent cut bonds for the given coarse grain particle index in the given coarse grain structure.

Parameters:
  • cg_structure (structure.Structure) – the coarse grain structure
  • cg_idx (int) – the coarse grain particle index
  • reverse (bool) – by default the first atom index of a pair from the returned tuple of pairs is for the particle with the given index and the second atom index of the pair is for the outside particle, if reverse is True it reverses this ordering
Return type:

tuple

Returns:

the parent cut bonds for the given coarse grain particle index

static getParentBonds(cg_structure, cg_idx_i, cg_idx_j)

Return the parent bonds between the given coarse grain particles indices in the given coarse grain structure.

Parameters:
  • cg_structure (structure.Structure) – the coarse grain structure
  • cg_idx_i (int) – the first coarse grain particle index
  • cg_idx_j (int) – the second coarse grain particle index
Return type:

tuple

Returns:

the parent bonds between the given coarse grain particle indices

class schrodinger.application.matsci.cg_mapping.CoarseGrainBond(name_1, idx_1, name_2, idx_2)

Bases: object

Manage a coarse grain bond.

FORMAT_START = '('
FORMAT_END = ')'
DUMMY_ELEMENT = 'DU'
__init__(name_1, idx_1, name_2, idx_2)

Create an instance.

Parameters:
  • name_1 (str) – the name of particle 1
  • idx_1 (int) – the index particle 1
  • name_2 (str) – the name of particle 2
  • idx_2 (int) – the index particle 2
setParentData(cg_structure)

Set the parent data.

Parameters:cg_structure (structure.Structure) – the CG model
getAllParentIndices()

Return a tuple containing all parent indices.

Return type:tuple
Returns:contains all parent indices
setSmiles(st)

Set a unique SMILES for the parent indices.

Parameters:st (structure.Structure) – the parent model
setDefaultParticleLabels(cg_structure, st)

Set the default particle labels for the two coarse grain particles.

Parameters:
setChiralHash(st)

Set the chiral hash.

Parameters:st (structure.Structure) – the parent model
setParentBondsHash(st)

Set the parent bonds hash.

Parameters:st (structure.Structure) – the parent model
static formatParticleLabel(label)

Format the particle label.

Parameters:label (str) – the label to format
Return type:str
Returns:the formated label
class schrodinger.application.matsci.cg_mapping.CGMapperMixin

Bases: object

A common mixin class for mapping all-atoms molecules to coarse-grain

getAtomPolymerNames(atom, name)

Get the polymer names for this atom.

Parameters:
Return type:

list

Returns:

polymer names

getAtomResidueNames(atom, name)

Get the residue names for this atom.

Parameters:
Return type:

list

Returns:

residue names

getAtomDefinitions(atom, existing_definitions)

Get the definitions for this atom.

Parameters:
  • atom (structure._StructureAtom) – the atom for which definition data is needed
  • existing_definitions (list) – Each item of the list is a (name, number) tuple from DEFINITION_KEYS that should be searched on the atom.
Return type:

list

Returns:

contains (idx, name, numberstr) tuples, where idx is the index of the sought definition (used later for sorting available definitions), name is the name of the definition, and numberstr is the molecule number (n), chain name (c), and match index (m) combined as ‘n-c-m’, for example (2, GLY, 4-B-7) means that this atom matches the 3rd sought definition (0 indexed) (which is for PDB residues) with a name of GLY and is in the 4th molecule, chain B, and 7th of such residues

trimDefinitionDict(definition_dict)

Trim the given definition dictionary to get rid of redundant definitions.

Parameters:definition_dict (OrderedDict) – keys are particle type strings, values are tuples of tuples of integers of particle occurrences
getDefinitionDict()

Get definition dict.

Return type:OrderedDict
Returns:keys are particle type strings, values are tuples of tuples of integers of particle occurrences
areContiguous(indices)

Return True if for the given indices the atoms are contiguously bonded, False otherwise.

Parameters:indices (tuple) – the indices to check
getParticles(particles, aname, acolor, aatom_type, akey)

Return list of particle objects.

Parameters:
  • particles (list) – contains particle indices as lists of atom indices
  • aname (str) – name for the particles
  • acolor (tuple) – a triple of integers in [0, 255] that give an RGB color for the particles
  • aatom_type (int) – atom type for the particles
  • akey (str) – a structure property key indicating the parent structure string
Return type:

list

Returns:

contains Particle instances

inheritProperties(cg_structure)

Inherit properties for the CG model from the parent structure.

Parameters:cg_structure (structure.Structure) – the CG model
markParticleAtoms(particle_index, atom_indices)

Mark the atoms in the structure by particle index.

Parameters:
  • particle_index (int) – the particle index
  • atom_indices (list) – contains the atom indices for this particle
buildCGFromParticles(all_particles, allow_unassigned=False)

Build coarse grain structure from the particle

Parameters:
  • all_particles (list) – list of lists of Particles, where each list corresponds to each mapping group
  • allow_unassigned (bool) – If False particles not mapped will be ignored, if True they will be ignored leading to no CG bond creation.
Return type:

structure.Structure

Returns:

the new CG model

getAssignedAndUnassigned(all_particles)

Get currently mapped (assigned) and upmapped (unassigned) atoms in the all-atom structure.

Parameters:all_particles (list) – list of lists of Particles, where each list corresponds to each mapping group
Return type:tuple(set, set)
Returns:tuple where first element is indexes of all-atom atoms that have been assigned mapping scheme and second are the atoms that have not been assigned any mapping scheme
categorizeBonds()

Return a dictionary of categorized bonds.

Return type:OrderedDict
Returns:sorted keys where keys are pair tuples of coarse grain particle names, values are OrderedDicts where keys are (SMILES, chiral_hash) tuples and values are lists of CoarseGrainBond
__init__

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

class schrodinger.application.matsci.cg_mapping.CGMapper(struct)

Bases: schrodinger.application.matsci.cg_mapping.CGMapperMixin

Class create a mapped coarse grain model from an all-atom structure.

TYPE_MAX = 400
__init__(struct)

Initiate CGMapper class.

Parameters:struct (structure.Structure) – All-atom structure to be mapped to CG
getMappedParticles()

Create Particles for the assigned mapping scheme.

Return type:list(Particles)
Returns:list of lists of Particles, where each list corresponds to each mapping group
validateAllAssigned(all_particles)

Check if all the atoms in the structure have been assigned mapping scheme.

Parameters:all_particles (list) – list of lists of Particles, where each list corresponds to each mapping group
Raise:ValueError if all particle have not been assigned names
markCGBonds()

CG bonds that are mapped to same named atoms but resulted from different all-atom bonding environment will be marked as unique. Thus, resulting in individual parameters for each.

areContiguous(indices)

Return True if for the given indices the atoms are contiguously bonded, False otherwise.

Parameters:indices (tuple) – the indices to check
buildCGFromParticles(all_particles, allow_unassigned=False)

Build coarse grain structure from the particle

Parameters:
  • all_particles (list) – list of lists of Particles, where each list corresponds to each mapping group
  • allow_unassigned (bool) – If False particles not mapped will be ignored, if True they will be ignored leading to no CG bond creation.
Return type:

structure.Structure

Returns:

the new CG model

categorizeBonds()

Return a dictionary of categorized bonds.

Return type:OrderedDict
Returns:sorted keys where keys are pair tuples of coarse grain particle names, values are OrderedDicts where keys are (SMILES, chiral_hash) tuples and values are lists of CoarseGrainBond
getAssignedAndUnassigned(all_particles)

Get currently mapped (assigned) and upmapped (unassigned) atoms in the all-atom structure.

Parameters:all_particles (list) – list of lists of Particles, where each list corresponds to each mapping group
Return type:tuple(set, set)
Returns:tuple where first element is indexes of all-atom atoms that have been assigned mapping scheme and second are the atoms that have not been assigned any mapping scheme
getAtomDefinitions(atom, existing_definitions)

Get the definitions for this atom.

Parameters:
  • atom (structure._StructureAtom) – the atom for which definition data is needed
  • existing_definitions (list) – Each item of the list is a (name, number) tuple from DEFINITION_KEYS that should be searched on the atom.
Return type:

list

Returns:

contains (idx, name, numberstr) tuples, where idx is the index of the sought definition (used later for sorting available definitions), name is the name of the definition, and numberstr is the molecule number (n), chain name (c), and match index (m) combined as ‘n-c-m’, for example (2, GLY, 4-B-7) means that this atom matches the 3rd sought definition (0 indexed) (which is for PDB residues) with a name of GLY and is in the 4th molecule, chain B, and 7th of such residues

getAtomPolymerNames(atom, name)

Get the polymer names for this atom.

Parameters:
Return type:

list

Returns:

polymer names

getAtomResidueNames(atom, name)

Get the residue names for this atom.

Parameters:
Return type:

list

Returns:

residue names

getDefinitionDict()

Get definition dict.

Return type:OrderedDict
Returns:keys are particle type strings, values are tuples of tuples of integers of particle occurrences
getParticles(particles, aname, acolor, aatom_type, akey)

Return list of particle objects.

Parameters:
  • particles (list) – contains particle indices as lists of atom indices
  • aname (str) – name for the particles
  • acolor (tuple) – a triple of integers in [0, 255] that give an RGB color for the particles
  • aatom_type (int) – atom type for the particles
  • akey (str) – a structure property key indicating the parent structure string
Return type:

list

Returns:

contains Particle instances

inheritProperties(cg_structure)

Inherit properties for the CG model from the parent structure.

Parameters:cg_structure (structure.Structure) – the CG model
mapCGStructure(cg_names, allow_unassigned, unique_bonds)

Map the passed cg_names to a coarse grain structure and build it from the all-atom structure.

Parameters:
  • list – list of cg_names to be mapped
  • allow_unassigned (bool) – if True, not all atoms are required to be mapped to the CG model. In case of False a check would be done and ValueError will be raised if all atoms were not assigned mapping
  • unique_bonds (bool) – if True CG bonds that are mapped to same named atoms but resulted from different all-atom bonding environment will be marked as unique. If False the bonds will be considered indistinguishable
markParticleAtoms(particle_index, atom_indices)

Mark the atoms in the structure by particle index.

Parameters:
  • particle_index (int) – the particle index
  • atom_indices (list) – contains the atom indices for this particle
trimDefinitionDict(definition_dict)

Trim the given definition dictionary to get rid of redundant definitions.

Parameters:definition_dict (OrderedDict) – keys are particle type strings, values are tuples of tuples of integers of particle occurrences