DBSTEP (DFT-Based Steric Parameters) is a Python package for computing steric parameters from chemical structures. It calculates Sterimol parameters (L, Bmin, Bmax), percent buried volume, Sterimol2Vec, and Vol2Vec parameters from molecular structure files and quantum chemistry output files.
pyproject.toml— Project metadata, dependencies, and tool configurationdbstep/— Main package source codeDbstep.py— Coredbstepclass and CLI entry point (main())calculator.py— Math/geometry routines (rotations, angles)sterics.py— Steric parameter calculationsparse_data.py— Input file parsing (xyz, cube, cclib-supported formats)constants.py— Chemical constants (periodic table, Bondi radii, metals)graph.py— 2D graph-based steric contribution calculationswriter.py— Output formatting and file writing__init__.py— Package init,__version__,__all____main__.py— Module entry point forpython -m dbstepdata/— Benchmark molecular structure files (xyz format)
tests/— Pytest test suitetest_dbstep.py— Sterimol parameter validation against Verloop's reference valuestest_calculator.py— Unit tests for rotation/geometry mathtest_parse_data.py— Input parsing testscube_files/— Test cube file fixtures
.github/workflows/ci.yml— GitHub Actions CI (test, lint, publish)
uv sync
uv sync --extra dev
uv run pytest
uv run ruff check .
uv run dbstep <file> --sterimol --atom1 <idx> --atom2 <idx>
uv build
- numpy, scipy, cclib
- Optional: RDKit, pandas (install with
uv sync --extra graph2d) - Dev tools: pytest, ruff, pre-commit (install with
uv sync --extra dev)
- Uses tabs for indentation throughout
- Python 3.9+ required
- Main class is lowercase
dbstepindbstep/Dbstep.py - Atom indexing is 1-based (matching chemical structure file conventions)
- Tests compare computed values against Verloop's reference Sterimol parameters with a tolerance of 0.01
- Version is defined in
dbstep/__init__.pyas the single source of truth