
molforge¶
The connective tissue for computational biology — fold, dock, simulate, and design across sixteen engines with one data model and no format-conversion tax.
It is a library, not a framework: no orchestrator, no DAG runtime, no decorators to import. Bring your structures and sequences in, plug in your engines of choice, and walk out with a coherent pipeline instead of five incompatible Python environments and a graveyard of conversion scripts.
What it does¶
-
Folding
ESMFold, AlphaFold/ColabFold, Boltz, Chai-1, RoseTTAFold — with multi-component cofolding on the AF3-style engines.
-
Docking
AutoDock Vina, Gnina (CNN rescoring), DiffDock — with automatic meeko/RDKit ligand prep.
-
Molecular dynamics
OpenMM, GROMACS, AMBER behind one
prepare → minimize → runinterface, plus trajectory I/O and analysis. -
Generative design
RFdiffusion for backbones, ProteinMPNN and ESM-IF1 for sequence design — the full de novo loop in one library.
-
Binding free energy
MM-PB(GB)SA via AmberTools and gmx_MMPBSA, FEP/TI ingestion through alchemlyb and cinnabar, plus Boltz-2 binding-affinity prediction.
-
Pocket detection
fpocket (geometric) and P2Rank (ML) surface-pocket detection, feeding straight into the docking workflow.
The glue — an engine-agnostic layer¶
-
Cross-engine ensembles
cross_engine_foldfolds one sequence with several engines and returns the pairwise TM/RMSD spread, a consensus, and a per-residue map of where they disagree — trust the regions your methods agree on. -
Design loop
DesignLoopruns generate → fold → dock → score → iterate with a ranked design table — the protein-engineering loop in one object. -
Unified scoring
molforge.scoringgives every score an explicit direction, so docking affinity, folding confidence, and learned scores rank and compare uniformly — and plug into the design loop. -
Reproducibility
Every output carries a
Provenancechain; emit it as a citablepipeline.yaml, thenreplay()re-runs the whole workflow.
Why molforge¶
-
Workflows over silos
Every design decision is judged by one question: does this make it easier to chain N tools together?
-
Wrappers, not reimplementations
We don't rebuild OpenMM or AutoDock. We give them a shared vocabulary — one
Protein, oneProvenance, one cache. -
One data model, two views
Hierarchical (
protein.chains["A"].residues[42]) for biology, linear (protein.atom_array.coords) for ML — same data, no conversion. -
Typed, tested, documented
Strict mypy, ruff-clean, a large test suite on a 3-OS × 3-Python matrix, every public symbol with a Google-style docstring.
Where to go next¶
- New here? Installation and the Quickstart.
- Trying to do something specific? The Cookbook has task-oriented recipes and decision tables for choosing engines.
- Want the design rationale? The Architecture overview and Roadmap.
- Looking for a symbol? Browse the API reference or hit the search box.
molforge is MIT-licensed. Issues and pull requests are welcome at
github.com/DoctorDean/molforge.