schrodinger.protein.pdbname module

Uses MacroModel substructure definitions to set PDB atom and residue names for a structure. Also re-numbers residues, and optionally adds bond orders.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.protein.pdbname.Substructure(definition, restype, atom_types)

Bases: object

Holds the information about a substructure

__init__(definition, restype, atom_types)

Create a Substructure object

Parameters:
  • definition (str) – MacroModel-style substructure expression.
  • restype (str) – 4-letter residue type (“ALA “, “VAL “, etc).
  • data – PDB atom names separated by “;” for example: ” H ; N “. The order of the PDB names must match the order of the atoms in the substructure definition.
getMatches(struct)

Return a list of lists of atoms that match this substructure.

Return type:list
Returns:Each item of the returned list is a list of atom indexes that match this substructure.
extendToIncludeSideChainAtoms(st, match)

For the given UNK residue match, add all atoms bound to the beta carbon (side-chain) that are not part of the backbone (known substructure).

fixResName(struct, atoms)

Update the residue name of the matching atoms.

Parameters:
  • struct (schrodinger.structure.Structure) – The structure to operate on. This structure is modified in-place.
  • atoms (int) – List of atoms from this match
Return type:

list[int]

Returns:

Each item of the returned list is a list of atom indexes that match this substructure.

fixAtomNames(struct, atoms)

Update the matching atoms to the proper PDB atom names.

Parameters:
  • struct (list[schrodinger.structure.Structure]) – The structure to operate on. This structure is modified in-place.
  • atoms (list[int]) – List of atoms from this match
Return type:

list[int]

Returns:

Each item of the returned list is a list of atom indexes that match this substructure.

schrodinger.protein.pdbname.find_oxt_atom(atoms)

Given a list of atom objects, returns the OT atom (oxygen of the -COOH) bound to the C-termini atom of the group. If no such atom is found, None is returned.

TODO: Extend to include other termini atoms.

schrodinger.protein.pdbname.find_n1_atom(atoms)

Given a list of atoms, returns the N1 atom (N-terminus backbone nitrogen). If no such atom is found, None is returned.

Parameters:atoms (list[schrodinger.structure._StructureAtom]) – List of atoms in which to find N1
Returns:The N1 atom
Return type:schrodinger.structure._StructureAtom
schrodinger.protein.pdbname.assign_pdb_names(struct, res_names=True, atom_names=True, atoms=None)

Assign PDB residue and/or atom names to struct. This is based on substructure definitions for standard residues. Anything not in the substructure database is left untouched.

Parameters:
  • struct (schrodinger.structure.Structure) – The structure to operate on. This structure is modified in-place.
  • res_names (bool) – If True (default), rename matching residues, if False, do not.
  • atom_names (bool) – If True (default), rename matching atoms to the proper PDB atom type, if False, do not.
  • atoms (list(int)) – list of atoms to operate on, otherwise this function operates on the entire structure
schrodinger.protein.pdbname.renumber_residues(struct, chains)

Renumber all residues to have a unique residue number and have residue numbers that are contiguous.

Parameters:
  • struct (list[schrodinger.structure.Structure]) – The structure to operate on. This structure is modified in-place.
  • chains (list or 'all') – A list of chains to renumber, or the string ‘all’ if all chains should be fixed.
schrodinger.protein.pdbname.process_structure(struct, renumber_chains=None, assign_bond_orders=False)