Skip to content

Batch Interaction Profiler API#

docksuitex.batch_docking.batch_interaction_profiler.batch_interaction_profile #

batch_interaction_profile(
    results: dict[
        tuple[str, str, tuple[float, float, float]],
        Union[Path, str],
    ],
    receptors: Dict[
        Union[str, Path],
        Sequence[tuple[float, float, float]],
    ],
    output_dir: Path,
    cpu: int = (os.cpu_count() or 2) - 1,
    save_to: Union[str, Path, None] = None,
) -> pd.DataFrame

Compute ProLIF interaction fingerprints for all successful docking results.

Iterates over each successful docking run and executes :class:~docksuitex.interaction_profiler.InteractionProfiler in parallel using a process pool. The protein PDB is automatically resolved from each receptor PDBQT using the intermediate_proteins/<stem>_prepared.pdb convention.

After all runs complete, individual prolif_interactions.csv files are merged into a single prolif_interactions_combined.csv in the batch output directory, with Receptor, Ligand, and Center identifier columns prepended.

Parameters:

Name Type Description Default
results dict

Mapping from (receptor_name, ligand_name, center) to the docking result path (Path) or error message (str).

required
receptors dict

Dictionary mapping receptor PDBQT paths to their list of binding pocket centers (same as used in the batch class).

required
output_dir Path

Base output directory from the batch docking run.

required
cpu int

Total number of CPU cores to use. Defaults to os.cpu_count() - 1. CPUs are divided among workers, with each worker receiving multiple CPUs for ProLIF.

(cpu_count() or 2) - 1
save_to str | Path

Base directory where ProLIF results will be saved. Each result gets a prolif_results subfolder inside its docking output directory. If provided, all results are saved under this directory instead. Defaults to None (saves inside each docking output directory).

None

Returns:

Type Description
DataFrame

pd.DataFrame: Combined DataFrame of ProLIF interaction fingerprints from all successful docking results. Contains Receptor, Ligand, Center, and Pose identifier columns followed by interaction data. Returns an empty DataFrame if no results could be profiled.