Skip to content

API Reference

Welcome to the synth-pdb API reference. This section provides detailed documentation for all public modules, classes, and functions.

Core Modules

  • generator


    Main module for generating protein structures from sequences

    View docs

  • physics


    Energy minimization and molecular dynamics using OpenMM

    View docs

  • validator


    Structure validation (bonds, angles, Ramachandran, clashes)

    View docs

  • geometry


    3D coordinate calculations using NeRF algorithm

    View docs

Scientific Features

  • chemical_shifts


    NMR chemical shift prediction (ยนH, ยนยณC, ยนโตN)

    View docs

  • relaxation


    NMR relaxation rates (Rโ‚, Rโ‚‚, NOE) via Lipari-Szabo

    View docs

  • nmr


    NOE restraint generation for structure calculation

    View docs

  • biophysics


    pH titration, salt bridges, PTMs, metal coordination

    View docs

Utilities

  • batch_generator


    Vectorized batch generation for AI/ML workflows

    View docs

  • viewer


    3D visualization using py3Dmol

    View docs

  • dataset


    Bulk dataset generation and export (NPZ, HDF5)

    View docs

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
โ”œโ”€โ”€ 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
โ””โ”€โ”€ ...                   # Additional utilities

Design Philosophy

synth-pdb follows these design principles:

  1. Code as Textbook: Extensive educational comments explaining the biophysical reasoning
  2. Modular Architecture: Clear separation of concerns (generation, physics, validation)
  3. Scientific Rigor: Proper implementation of established methods with citations
  4. Performance: Vectorized operations, optional Numba JIT compilation
  5. Flexibility: Works as both library and command-line tool

Next Steps