schrodinger.protein.pdbname module

Uses SMARTS matching 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.


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.


Given a list of atoms, returns the N1 atom (N-terminus backbone nitrogen). If no such atom is found, None is returned. This function only works when the atom pdbname is properly named.


atoms (list[schrodinger.structure._StructureAtom]) – List of atoms in which to find N1


The N1 atom

Return type


schrodinger.protein.pdbname.recurse_neighbors(at, residue_atoms, atoms_to_assign, labeled_atoms, backbone_atoms)
schrodinger.protein.pdbname.assign_pdb_names(st, *, selected_residues=None, rename_residues=True, rename_atoms=True, resolve_his=False, backbone_detection_size=3)

Assign PDB residue and/or atom names to struct. This is based on substructure definitions for standard residues.


  • Only residues attached to a backbone chain will be assigned names.

  • An attempt will be made to identify side chains for amino acids and peptoids not in the patterns list. These will be labeled “UNK “.

  • PDB atom names for multiple Hydrogens attached to the same heavy atom will not follow the pro-R numbering rule, but instead H numbers will follow atom index order.

  • st (schrodinger.Structure) – structure on which to work.

  • selected_residues (list or None) – The list of Structure._Residue objects on which the assigning will take place. If None, all the structure will be used

  • rename_residues (bool) – Whether to assign PDB residue names.

  • rename_atoms (bool) – Whether to assign PDB atom names.

  • resolve_his (bool) – Whether HIS residues should be resolved into HID, HIE or HIP.

  • backbone_detection_size (int) – minimum numner of consecutive residues to be considered a backbone. By default, mono and dipeptides will be ignored.

schrodinger.protein.pdbname.renumber_residues(struct, chains)

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

  • 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)