API Reference
Welcome to the synth-pdb API reference. This section provides detailed documentation for all public modules, classes, and functions.
Quick Links
Core Modules
-
generator
Main module for generating protein structures from sequences
-
physics
Energy minimization and molecular dynamics using OpenMM
-
validator
Structure validation (bonds, angles, Ramachandran, clashes)
-
geometry
3D coordinate calculations using NeRF algorithm
Scientific Features
-
chemical_shifts
NMR chemical shift prediction (ยนH, ยนยณC, ยนโตN)
-
relaxation
NMR relaxation rates (Rโ, Rโ, NOE) via Lipari-Szabo
-
nmr
NOE restraint generation for structure calculation
-
biophysics
pH titration, salt bridges, PTMs, metal coordination
-
cryo_em
Synthetic Cryo-EM density map generation (MRC)
-
saxs
Small-Angle X-ray Scattering simulation
-
docking
Docking prep (PQR format, charge assignment)
-
cofactors
Inorganic coordination (Zinc fingers, metal binding)
-
special_chemistry
PTMs and GFP chromophore maturation
Analysis & Export
-
analysis
RMSD, ensemble medoids, and geometric strain
-
export
CASP RR and CSV export for AI/ML modeling
-
bmrb_api
Programmatic fetching of BMRB and PDB data
-
packing
Monte Carlo side-chain packing engine
-
scoring
Biophysical quality scores (Clashes, Density)
Utilities
Usage Patterns
As a Library
from synth_pdb.generator import PeptideGenerator
from synth_pdb.physics import EnergyMinimizer
from synth_pdb.validator import PDBValidator
# Generate structure
gen = PeptideGenerator("ALA-GLY-SER-LEU-VAL")
peptide = gen.generate(conformation="alpha")
# Minimize energy
minimizer = EnergyMinimizer()
minimized_pdb = minimizer.minimize(
pdb_file_path="input.pdb",
output_path="output.pdb"
)
# Validate structure
validator = PDBValidator(pdb_content=minimized_pdb)
validation_report = validator.validate_all()
As a Command-Line Tool
# Basic usage
synth-pdb --length 20 --conformation alpha --output structure.pdb
# With minimization
synth-pdb --sequence "ACDEFGHIKLMNPQRSTVWY" --minimize --output minimized.pdb
# Batch generation
synth-pdb --mode dataset --num-samples 1000 --output ./dataset
Module Organization
synth_pdb/
โโโ generator.py # Main structure generation
โโโ physics.py # Energy minimization (OpenMM)
โโโ validator.py # Structure validation
โโโ geometry.py # NeRF algorithm, 3D coordinates
โโโ chemical_shifts.py # NMR chemical shift prediction
โโโ relaxation.py # NMR relaxation rates
โโโ nmr.py # NOE restraints
โโโ biophysics.py # pH, salt bridges, PTMs
โโโ cryo_em.py # Cryo-EM map generation
โโโ saxs.py # SAXS profile simulation
โโโ docking.py # Docking and PQR preparation
โโโ cofactors.py # Inorganic coordination
โโโ analysis.py # Structural analysis suite
โโโ export.py # CASP RR and CSV export
โโโ bmrb_api.py # BMRB and PDB data access
โโโ packing.py # Monte Carlo side-chain packing
โโโ batch_generator.py # Vectorized batch generation
โโโ viewer.py # 3D visualization
โโโ dataset.py # Bulk dataset generation
โโโ data.py # Rotamer libraries, Ramachandran data
โโโ main.py # CLI entry point
โโโ scoring.py # Biophysical quality scores
โโโ torsion.py # Dihedral angle analysis
Design Philosophy
synth-pdb follows these design principles:
- Code as Textbook: Extensive educational comments explaining the biophysical reasoning
- Modular Architecture: Clear separation of concerns (generation, physics, validation)
- Scientific Rigor: Proper implementation of established methods with citations
- Performance: Vectorized operations, optional Numba JIT compilation
- Flexibility: Works as both library and command-line tool
Next Steps
- generator Module - Start with the core generation module
- User Guides - Learn how to use synth-pdb effectively
- Examples Gallery - Browse copy-paste examples