Tutorial 1: EXESS CHELPG Charge Analysis

Time

2 minutes

Skill level

Beginner

Prerequisites

Python 3.10+, rush-py installed, RUSH_TOKEN and RUSH_PROJECT set


What You’ll Learn

  • How to compute CHELPG partial charges for any molecule using Rush

  • How to interpret charge distributions in a drug-discovery context

The Problem You’re Solving

When designing or evaluating drug candidates, you need to understand where charge sits on a molecule. Charge distribution drives:

  • Solubility — polar regions interact with water

  • Binding affinity — electrostatic complementarity with a protein target

  • Membrane permeability — too much polarity and the molecule won’t cross lipid bilayers

  • Reactivity — highly charged atoms are sites for metabolism or chemical instability

CHELPG (CHarges from ELectrostatic Potentials using a Grid-based method) fits partial charges to reproduce the quantum-mechanical electrostatic potential on a grid around the molecule. The result is a set of atom-centered charges that represent the molecule’s electrostatic “personality.”

Quick Start

from pathlib import Path
from rush import exess
from rush.convert.pdb import from_pdb
import json

# 1. Load PDB file
pdb_content = Path("aspirin.pdb").read_text()
trc = from_pdb(pdb_content)

# 2. Convert to topology JSON
topology_json = trc.topology.to_json()
topology_json["schema_version"] = "0.2.0"
topology_path = Path("aspirin_topology.json")
topology_path.write_text(json.dumps(topology_json, indent=2))

# 3. Run CHELPG calculation (returns charges in ~30 seconds)
result = exess.chelpg(topology_path=topology_path, collect=True)

That’s it! The result tuple contains your charges plus metadata.

Get the PDB file

You can find the sample PDB file at examples/exess-chelpg/data/aspirin.pdb, or use any PDB file from the Protein Data Bank.


Full Visualization & Analysis

For complete charge extraction, visualization (bar chart + interactive 3D), and interpretation, see the full example script:

👉 Complete CHELPG Example

This includes:

  • ✅ HDF5 charge extraction

  • ✅ Bar chart with RdBu coloring (red = positive, blue = negative)

  • ✅ Interactive 3D structure visualization with charge-colored atoms

  • ✅ Summary statistics (total charge, min/max per atom)

Quick preview (left: 3D molecule with charges, right: bar chart by atom):


Why CHELPG Matters

For drug discovery, CHELPG charges tell you:

  • Where reactions happen — highly positive atoms are electrophilic (good targets for nucleophiles)

  • Binding potential — complementary charges drive protein interactions

  • Solubility & permeability — charge distribution predicts bioavailability

  • Stability — charged sites are vulnerable to metabolism


Notes

  • Default parameters — Uses RestrictedHF method with cc-pVDZ basis set


Try It Yourself

The complete example is available in the rush-py repository:

👉 examples/exess-chelpg/

You can download the files directly or clone the repository to run the full example.


See Also