StericRender computes topographic steric maps and buried volume (%VBur) for any molecular structure, producing publication-quality SVG figures from the command line. It implements the SambVca methodology and uses xyzrender for oriented molecular overlays.
- Topographic steric maps (SVG, CSV, NPZ)
- Buried volume (%VBur) with quadrant breakdowns (JSON)
- Oriented molecular overlay SVG via xyzrender
- Multi-frame XYZ batch processing
- Three atomic radii sets: scaled-Bondi (default), Bondi, CSD
- Configurable sphere radius, map radius, mesh spacing, colour palettes
stericrender complex.xyz \
--origin 1 \
--toward 2,3 \
--flip-z \
--config pmol \
--overlay-opacity 0.72 \
--map-palette sambvca \
--color-range -3 3 \
--output-prefix results/complexThe origin atom is automatically excluded from the steric analysis. Use --include-origin to override.
pip install stericrender
# latest development version:
pip install --upgrade git+https://github.com/JamesOBrien2/StericRender.gitOr with uv:
uv tool install stericrenderFrom source:
git clone https://github.com/JamesOBrien2/StericRender.git
cd StericRender
pip install -e .import numpy as np
from stericrender.io import load_structure_frames, atoms_to_arrays
from stericrender.orientation import orient_positions
from stericrender.radii import radii_for_symbols
from stericrender import compute_buried_volume, compute_steric_map
frames = load_structure_frames("complex.xyz")
symbols, positions = atoms_to_arrays(frames[0].atoms)
# orient: atom 1 at origin, +z toward atom 2
oriented = orient_positions(positions, center_index=0, axis_indices=[1])
selected = [i for i, s in enumerate(symbols) if s != "H" and i != 0]
radii = np.array(radii_for_symbols([symbols[i] for i in selected]))
volume = compute_buried_volume(oriented.positions[selected], radii)
print(f"%VBur = {volume.percent_buried:.2f}")
steric_map = compute_steric_map(oriented.positions[selected], radii)
# steric_map.x, steric_map.y, steric_map.z — topographic grid arrays--sphere-radius scales the analysis sphere; --map-radius sets the display extent independently.
--sphere-radius 2 |
--map-radius 5 |
|---|---|
--include, --exclude, --include-origin, --frames, --radii, --include-hydrogens, --sphere-radius, --map-radius, --mesh, --config, --overlay-opacity, --overlay-all-atoms, --zoom, --stereo, --stereo-style, --no-contours, --no-colorbar, --no-vbur-label, --show-quadrants, --no-overlay
| PCy3 | NHC-Ni | NHC-Ir |
|---|---|---|
| MeDuPhos | Box | Diphosphine |
|---|---|---|
| PHOX | Xantphos | Diimine |
|---|---|---|
| TADDOL | BINOL | Bipy |
|---|---|---|
| Salen-Mn | Chiral salen-Mn | Zr-ONNO |
|---|---|---|
| C2 zirconocene | Substituted zirconocene | Cs zirconocene |
|---|---|---|
- The SambVca group (Cavallo et al.) — the %VBur methodology and topographic steric map convention that StericRender implements
- morfeus-ml — reference implementation used for validation
- xyzrender by @aligfellow — molecular rendering and SVG overlay
- Jonathan Di Pietro (@jonathandip) — zoom and radius concept, testing
If you use this repository, you must cite the following works:
-
Laura Falivene, Raffaele Credendino, Albert Poater, Andrea Petta, Luigi Serra, Romina Oliva, Vittorio Scarano, and Luigi Cavallo,
"SambVca 2. A Web Tool for Analyzing Catalytic Pockets with Topographic Steric Maps,"
Organometallics 2016, 35, 2286–2293.
DOI:10.1021/acs.organomet.6b00371 -
Sílvia Escayola, Naeimeh Bahri-Laleh, and Albert Poater,
"%VBur index and steric maps: from predictive catalysis to machine learning,"
Chemical Society Reviews 2024, 53, 853–882. -
A. S. Goodfellow and B. N. Nguyen,
"Graph-Based Internal Coordinate Analysis for Transition State Characterization", Journal of Chemical Theory and Computation 2026.
DOI:10.1021/acs.jctc.5c02073