molsysmt.build.get_missing_heavy_atoms#

molsysmt.build.get_missing_heavy_atoms(molecular_system, selection='all', syntax='MolSysMT', engine='MolSysMT')[source]#

Identify heavy (non-hydrogen) atoms that are missing from residues in a molecular system.

This function compares the heavy atoms present in each residue against standard residue templates and returns a mapping of residue (group) indices to the names of atoms that are absent from the structure.

Parameters:
  • molecular_system (molecular system) – Molecular system in any of the supported forms.

  • selection (str, list, tuple, or numpy.ndarray, default 'all') – Atom selection used to restrict the search to a subset of groups.

  • syntax (str, default 'MolSysMT') – Syntax used to interpret the selection string.

  • engine ({'MolSysMT', 'PDBFixer'}, default 'MolSysMT') –

    Backend used to identify missing atoms.

    • 'MolSysMT': native implementation using MolSysMT’s amino-acid topology database. Compares the heavy atoms present in each residue against the best-matching topology variant. Works with any supported form; no external dependency required.

    • 'PDBFixer': delegates to pdbfixer.findMissingAtoms.

Returns:

Dictionary mapping group (residue) indices (int) in the original molecular system to lists of missing atom names (list of str). Groups with no missing atoms are not included.

Return type:

dict

Raises:

NotImplementedError – Raised if the requested engine is not supported.

Notes

When engine='MolSysMT' the expected heavy atoms are obtained from the amino-acid topology database via get_expected_heavy_atoms(). The topology variant whose atom set is a superset of the present heavy atoms is selected; missing atoms are the set difference between expected and present.

Only amino-acid residues (including recognized non-standard forms) are processed; water, ions, and ligands are silently skipped.

Added in version 1.0.0.