PDB Structure Fixer#

PDB structure fixing module for adding missing hydrogen atoms.

This module provides functionality to add missing hydrogen atoms to PDB structures using either OpenBabel or PDBFixer tools. It integrates with HBAT’s internal data structures and provides a clean interface for structure enhancement.

exception hbat.core.pdb_fixer.PDBFixerError[source]#

Bases: Exception

Exception raised when PDB fixing operations fail.

class hbat.core.pdb_fixer.PDBFixer[source]#

Bases: object

Fix PDB structures by adding missing hydrogen atoms.

This class provides methods to add missing hydrogen atoms to protein structures using either OpenBabel or PDBFixer with OpenMM. It works with HBAT’s internal atom and residue data structures.

__init__() None[source]#

Initialize PDB fixer.

fix_pdb_file_to_file(input_pdb_path: str, output_pdb_path: str, method: str = 'openbabel', add_hydrogens: bool = True, add_heavy_atoms: bool = False, convert_nonstandard: bool = False, remove_heterogens: bool = False, keep_water: bool = True, pH: float = 7.0, **kwargs: Any) bool[source]#

Fix a PDB file and save the result to another file.

This method processes the original PDB file directly and saves the fixed structure to a new file, preserving proper PDB formatting.

Parameters:
  • input_pdb_path (str) – Path to the original PDB file

  • output_pdb_path (str) – Path where the fixed PDB should be saved

  • method (str) – Method to use (‘openbabel’ or ‘pdbfixer’)

  • add_hydrogens (bool) – Whether to add missing hydrogen atoms

  • add_heavy_atoms (bool) – Whether to add missing heavy atoms (pdbfixer only)

  • convert_nonstandard (bool) – Whether to convert nonstandard residues (pdbfixer only)

  • remove_heterogens (bool) – Whether to remove heterogens (pdbfixer only)

  • keep_water (bool) – Whether to keep water molecules when removing heterogens

  • pH (float) – pH value for protonation (pdbfixer only)

  • kwargs (Any) – Additional parameters

Returns:

True if fixing succeeded, False otherwise

Return type:

bool

Raises:

PDBFixerError if fixing fails

get_missing_hydrogen_info(atoms: List[Atom]) Dict[str, Any][source]#

Analyze structure for missing hydrogen information.

Parameters:

atoms (List[Atom]) – List of atoms to analyze

Returns:

Dictionary with hydrogen analysis information

Return type:

Dict[str, Any]