libpdb: PDB helping functions
Parse molecular structures in PDB format.
- haddock.libs.libpdb.add_TER_on_chain_breaks(input_pdb: str | Path, output_pdb: str | Path) None [source]
Detect chain breaks and add TER statements between them.
- Parameters:
input_pdb (FilePath) – Input PDB filepath with potential chain breaks.
output_pdb (FilePath) – Output PDB filepath with added TER statements between chain breaks.
- haddock.libs.libpdb.check_combination_chains(combination: list[PDBFile]) list[str] [source]
Check if chain IDs are unique for each pdb in combination.
- haddock.libs.libpdb.format_atom_name(atom: str, element: str) str [source]
Format PDB atom name.
Further Reading:
- Parameters:
atom (str) – The atom name.
element (str) – The atom element code.
- Returns:
str – Formatted atom name.
- haddock.libs.libpdb.get_new_models(pdb_file_path: str | Path) list[Path] [source]
Get new PDB models if they exist.
If no new models are found, return the original path within a list.
- haddock.libs.libpdb.get_pdb_file_suffix_variations(file_name: str | Path, sep: str = '_') list[Path] [source]
List suffix variations of a PDB file in the current path.
If file.pdb is given, and files file_1.pdb, file_2.pdb, exist in the folder, those will be listed.
- Parameters:
file_name (str or Path) – The name of the file with extension.
sep (str) – The separation between the file base name and the suffix. Defaults to “_”.
- Returns:
list – List of Paths with the identified PBD files. If no files are found return an empty list.
- haddock.libs.libpdb.get_supported_residues(haddock_topology: str | Path) list[str] [source]
Read the topology file and identify which data is supported.
- haddock.libs.libpdb.identify_chainseg(pdb_file_path: str | Path, sort: bool = True) tuple[list[str], list[str]] [source]
Return segID OR chainID.
- haddock.libs.libpdb.read_RECORD_section(lines: ~typing.Iterable[str], section_slice: slice, func: ~typing.Callable[[~typing.Iterable[str]], ~typing.Iterable[str]] = <class 'set'>) Iterable[str] [source]
Create a set of observations from a section of the ATOM line.
- Returns:
set – A set of the observations.
- haddock.libs.libpdb.read_chainids(lines: ~typing.Iterable[str], *, section_slice: slice = slice(21, 22, None), func: ~typing.Callable[[~typing.Iterable[str]], ~typing.Iterable[str]] = <class 'list'>) Iterable[str]
Create a set of observations from a section of the ATOM line.
- Returns:
set – A set of the observations.
- haddock.libs.libpdb.read_segids(lines: ~typing.Iterable[str], *, section_slice: slice = slice(72, 76, None), func: ~typing.Callable[[~typing.Iterable[str]], ~typing.Iterable[str]] = <class 'list'>) Iterable[str]
Create a set of observations from a section of the ATOM line.
- Returns:
set – A set of the observations.
- haddock.libs.libpdb.sanitize(pdb_file_path: FilePathT, overwrite: bool = True, custom_topology: str | Path | None = None) FilePathT | Path [source]
Sanitize a PDB file.
- haddock.libs.libpdb.split_by_chain(pdb_file_path: str | Path) list[Path] [source]
Split a PDB file into multiple structures for each chain.
- haddock.libs.libpdb.split_ensemble(pdb_file_path: Path, dest: str | Path | None = None) list[Path] [source]
Split a multimodel PDB file into different structures.
- Parameters:
dest (str or pathlib.Path) – Destination folder.