Skip to content

molforge

The connective tissue for computational biology — fold, dock, simulate, and design across sixteen engines with one data model and no format-conversion tax.

Get started Quickstart GitHub

pip install molforge

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 → run interface, 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_fold folds 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


    DesignLoop runs generate → fold → dock → score → iterate with a ranked design table — the protein-engineering loop in one object.

  •   Unified scoring


    molforge.scoring gives 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 Provenance chain; emit it as a citable pipeline.yaml, then replay() 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, one Provenance, 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


molforge is MIT-licensed. Issues and pull requests are welcome at github.com/DoctorDean/molforge.