Skip to main content

Hydrogen Bond Analysis Tool for PDB structures

Project description

HBAT

Hydrogen Bond Analysis Tool (HBAT) v2

A Python package to automate the analysis of potential hydrogen bonds and similar type of weak interactions like halogen bonds and non-canonical interactions in macromolecular structures, available in Protein Data Bank (PDB) file format. HBAT uses a geometric approach to identify potential hydrogen bonds by analyzing distance and angular criteria between donor-hydrogen-acceptor triplets.

GitHub Release GitHub Actions Test Workflow Status PyPI - Version Python Wheels Python Versions GitHub last commit PyPI - Status Conda Version License GitHub Downloads (all assets, all releases) SourceForge Downloads PyPI Downloads codecov Google Scholar Citation Socket CodeFactor

Background

HBAT v2 is a modern Python re-implementation of the original Perl-based tool developed by Abhishek Tiwari and Sunil Kumar Panigrahi.

HBAT GUI

Features

  • Detect and analyze potential hydrogen bonds, halogen bonds, and X-H...π interactions
  • Automated PDB fixing with OpenBabel and PDBFixer integration
  • Supports graphical (tkinter), command-line, and programming interfaces
  • Use graphical interfaces for interactive analysis, CLI/API for batch processing and automation
  • Cooperativity chain visualization using NetworkX/matplotlib and GraphViz
  • Export cooperativity chain visualizations to PNG, SVG, PDF formats
  • Built-in presets for different structure types (high-resolution, NMR, membrane proteins, etc.)
  • Customizable distance cutoffs, angle thresholds, and analysis modes.
  • Multiple Output Formats: Text, CSV, and JSON export options
  • Optimized algorithms for efficient analysis of large structures
  • Cross-Platform: Works on Windows, macOS, and Linux.

Please review HBAT documentation for more details.

Cooperativity chain visualization

Supported Interactions

  1. Hydrogen Bonds: O-H...O, N-H...O, N-H...N, and other X-H...Y interactions
  2. Halogen Bonds: C-X...Y interactions (X = F, Cl, Br, I; Y = N, O, S)
  3. X-H...π Interactions: Hydrogen bonds to aromatic ring systems

Please review HBAT documentation for more details.

Installation

Option 1: Install from PyPI (Recommended)

pip install hbat

Run HBAT Command-Line Interface (CLI) using hbat or launch HBAT GUI using hbat-gui.

Option 2: Install from Source

git clone https://github.com/abhishektiwari/hbat.git
cd hbat
pip install -e .

Alternatively,

pip install git+https://github.com/abhishektiwari/hbat.git

Run HBAT Command-Line Interface (CLI) using hbat or launch HBAT GUI using hbat-gui.

Option 3: Install from Conda

conda install -c hbat hbat

Requirements

System Requirements

  • Python: 3.9 or higher
  • tkinter: tkinter is included with Python standard library on most systems. However, on Mac install Python and tkinter using brew.
brew install python python3-tk
  • GraphViz (Optional): Required for advanced cooperativity chain visualization with high-quality graph rendering. HBAT will automatically fall back to NetworkX/matplotlib visualization if GraphViz is not available.

Install GraphViz:

On Ubuntu/Debian:

sudo apt-get update
sudo apt-get install graphviz

On macOS (using Homebrew):

brew install graphviz

On Windows:

  • Download and install from GraphViz official website
  • Or using Chocolatey: choco install graphviz
  • Or using conda: conda install -c conda-forge graphviz

Note: After installing GraphViz, restart your terminal/command prompt before running HBAT to ensure the GraphViz executables are available in your PATH.

Usage

Graphical Interface

Launch the GUI application:

hbat-gui

The GUI provides,

  • File browser for loading PDB files
  • Parameter configuration panels
  • Tabbed results display
  • Export and visualization options

Command-Line Interface

Basic usage:

hbat input.pdb

Output Format Options

HBAT supports multiple output formats with automatic detection based on file extension:

# Single file outputs (format auto-detected from extension)
hbat input.pdb -o results.txt     # Text format
hbat input.pdb -o results.csv     # CSV format (single file with all data)
hbat input.pdb -o results.json    # JSON format (single file with all data)

# Multiple file outputs (separate files per interaction type)
hbat input.pdb --csv results      # Creates results_h_bonds.csv, results_x_bonds.csv, etc.
hbat input.pdb --json results     # Creates results_h_bonds.json, results_x_bonds.json, etc.

With custom parameters:

hbat input.pdb -o results.csv --hb-distance 3.0 --mode local

List Available Presets

hbat --list-presets

Use a specific preset

hbat protein.pdb --preset high_resolution
hbat membrane_protein.pdb --preset membrane_proteins

Use preset with custom overrides

hbat protein.pdb --preset drug_design_strict --hb-distance 3.0 --verbose

CLI Options

positional arguments:
  input                 Input PDB file

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        Output file (format auto-detected from extension: .txt, .csv, .json)
  --json JSON           Export to multiple JSON files (base name for files)
  --csv CSV             Export to multiple CSV files (base name for files)

Preset Options:
  --preset PRESET       Load parameters from preset file (.hbat or .json)
  --list-presets        List available example presets and exit

Analysis Parameters:
  --hb-distance HB_DISTANCE
                        Hydrogen bond H...A distance cutoff in Å (default: 3.5)
  --hb-angle HB_ANGLE   Hydrogen bond D-H...A angle cutoff in degrees (default: 120)
  --da-distance DA_DISTANCE
                        Donor-acceptor distance cutoff in Å (default: 4.0)
  --xb-distance XB_DISTANCE
                        Halogen bond X...A distance cutoff in Å (default: 4.0)
  --xb-angle XB_ANGLE   Halogen bond C-X...A angle cutoff in degrees (default: 120)
  --pi-distance PI_DISTANCE
                        π interaction H...π distance cutoff in Å (default: 4.5)
  --pi-angle PI_ANGLE   π interaction D-H...π angle cutoff in degrees (default: 90)
  --covalent-factor COVALENT_FACTOR
                        Covalent bond detection factor (default: 1.2)
  --mode {complete,local}
                        Analysis mode: complete (all interactions) or local (intra-residue only)

Output Control:
  --verbose, -v         Verbose output with detailed progress
  --quiet, -q           Quiet mode with minimal output
  --summary-only        Output summary statistics only

Analysis Filters:
  --no-hydrogen-bonds   Skip hydrogen bond analysis
  --no-halogen-bonds    Skip halogen bond analysis
  --no-pi-interactions  Skip π interaction analysis

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation

If you use HBAT in your research, please cite:

@software{tiwari2025hbat,
    author = {Tiwari, Abhishek},
    title = {HBAT: Hydrogen Bond Analysis Tool},
    version = {v2},
    year = {2025},
    url = {https://github.com/abhishektiwari/hbat}
}
@article{tiwari2007hbat,
author = {Tiwari, Abhishek and Panigrahi, Sunil Kumar},
doi = {10.3233/ISI-2007-00337},
journal = {In Silico Biology},
month = dec,
number = {6},
title = {{HBAT: A Complete Package for Analysing Strong and Weak Hydrogen Bonds in Macromolecular Crystal Structures}},
volume = {7},
year = {2007}
}

Contributing

See our contributing guide and development guide. At a high-level,

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hbat-2.2.15rc33111358422.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hbat-2.2.15rc33111358422-py3-none-any.whl (172.0 kB view details)

Uploaded Python 3

File details

Details for the file hbat-2.2.15rc33111358422.tar.gz.

File metadata

  • Download URL: hbat-2.2.15rc33111358422.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hbat-2.2.15rc33111358422.tar.gz
Algorithm Hash digest
SHA256 ebca804d3fdcb6309e3a94b5db0619fb96e47676424c424d1b4c31275e8eda0a
MD5 07dbe1b715403e8298611f603ae1132b
BLAKE2b-256 4c3442494bba7a123a2e35b547e123de88d777d9212ce137cbc6101a8e243424

See more details on using hashes here.

Provenance

The following attestation bundles were made for hbat-2.2.15rc33111358422.tar.gz:

Publisher: release.yml on abhishektiwari/hbat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hbat-2.2.15rc33111358422-py3-none-any.whl.

File metadata

File hashes

Hashes for hbat-2.2.15rc33111358422-py3-none-any.whl
Algorithm Hash digest
SHA256 f192e155aa056545afdc6db49cd5bfdde8b66643ec3ee884938ba705bee772a1
MD5 f41a39802841806629f68421db9e1cfa
BLAKE2b-256 fa9f27196e43c0f8e419bd28c1d6d9eddc5b20309501ff393bcdd1ba970b04a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for hbat-2.2.15rc33111358422-py3-none-any.whl:

Publisher: release.yml on abhishektiwari/hbat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page