SUBSEQ.BIO
DOCS-OPENMM

OpenMM 8.1.1

GPU-targeted OpenMM with a simple minimization starter script.

Quick relaxation script

Place your structure at /inputs/input_protein.pdb and run:

#!/usr/bin/env python3

import os
import openmm
import openmm.app as app
import openmm.unit as unit

os.makedirs('/outputs', exist_ok=True)
input_pdb = '/inputs/input_protein.pdb'
output_pdb = '/outputs/minimized.pdb'

pdb = app.PDBFile(input_pdb)
forcefield = app.ForceField('amber14-all.xml', 'amber14/tip3pfb.xml')
modeller = app.Modeller(pdb.topology, pdb.positions)
modeller.addHydrogens(forcefield)
system = forcefield.createSystem(modeller.topology, nonbondedMethod=app.NoCutoff, constraints=app.HBonds)
integrator = openmm.LangevinIntegrator(300 * unit.kelvin, 1.0 / unit.picosecond, 0.002 * unit.picoseconds)
platform = openmm.Platform.getPlatformByName('CUDA')
simulation = app.Simulation(modeller.topology, system, integrator, platform)
simulation.context.setPositions(modeller.positions)
simulation.minimizeEnergy()
state = simulation.context.getState(getPositions=True)
positions = state.getPositions()
with open(output_pdb, 'w') as f:
    app.PDBFile.writeFile(simulation.topology, positions, f)

Extend with short dynamics via simulation.step() if needed. Paths are fixed for convenience.