PandaMap (Protein AND ligAnd interaction MAPper) is an open-source Python package designed to produce comprehensive protein–ligand interaction visualizations and machine-readable reports from a single command. The tool aims to avoid the usual trade-offs between exhaustive detection with tabular output, proprietary publication-quality figures, and scripting environments that require expert familiarity. PandaMap consolidates multiple outputs — diagrams, interactive viewers and structured data — to support both visual analysis and downstream computational work.
PandaMap accepts structure files in PDB, mmCIF and PDBQT formats. The package detects 15 interaction classes using distance thresholds validated against crystallographic evidence. The precise detection thresholds and scoring weights are reported in the paper's Supplementary Information. Each detected interaction records provenance for the measurements used.
From a single run, PandaMap produces multiple complementary outputs:
A 2D interaction diagram suitable for quick inspection.
An interactive 3D viewer for spatial exploration of ligand–protein contacts.
A plain text report summarizing detected interactions.
A machine-readable CSV for downstream analysis and integration into pipelines.
A four-panel graphical summary that consolidates key interaction information for figure-ready presentation.
These outputs are intended to serve both publication and data-processing needs without requiring separate tools for each purpose.
PandaMap depends only on a small set of widely used Python libraries: NumPy, Matplotlib, BioPython and Requests. RDKit is optional: when present it improves the 2D ligand layout, but RDKit is not required for PandaMap to function. The package is distributed on PyPI (release cited as 4.3.0 in the article) and is available under the MIT licence. The source repository link is provided in the footnotes of the article.
Hydrogen-bond detection in PandaMap uses a two-tier approach depending on the evidence available in the input structure. When the structure includes explicit hydrogens, hydrogen bonds are filtered by the true D–H–A angle; on the same evidence, this matches PLIP's 100 criterion as reported in the article. If explicit hydrogens are not present, PandaMap applies distance-only criteria. For every measurement, PandaMap records the provenance so users can inspect whether an angular or distance-only criterion was applied. All detection thresholds and scoring weights are provided in the Supplementary Information and implemented in the package's regression tests.
The author benchmarked PandaMap on three protein–ligand complexes selected to represent diverse chemistries:
Enolase bound to a phosphonate transition-state analogue (PDB 1ELS).
EGFR kinase in complex with erlotinib (PDB 1M17).
Aldose reductase bound to IDD594 (PDB 1US0).
In these cases PandaMap recovered the contacts the structures are known for. The article highlights two specific validations: recovery of the EGFR hinge hydrogen bond to MET769 and detection of the IDD594 bromine–THR113 halogen bond. Distances reported by PandaMap for these interactions were identical to those reported by PLIP when evaluated on the same structural evidence, according to the preprint.
PandaMap 4.3.0 is available on PyPI under the MIT licence. The release includes a regression suite that covers each of the 15 interaction classes to help ensure consistent detection across versions. The manuscript provides a link to the project's GitHub repository in the footnotes for access to code and supplementary materials.
This article is a preprint and has not been certified by peer review. The author declares no competing interests. The paper reports that all detection thresholds, scoring weights and the exact commands used for benchmarking are available in the Supplementary Information; users should consult those materials for implementation details. No additional performance metrics, runtime benchmarks, or broader comparison results beyond the three chosen complexes are reported in the preprint.