{"library":"openmm","title":"OpenMM Python Wrapper","description":"OpenMM is a high-performance toolkit for molecular simulation, implemented primarily in C++ with a robust Python wrapper. It enables users to perform complex molecular dynamics simulations with a focus on flexibility and performance, especially on GPUs. Currently at version 8.5.1, OpenMM maintains an active development cycle, regularly releasing updates that include performance enhancements and new features, such as expanded support for machine learning potentials in recent 8.x versions.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install openmm"],"cli":null},"imports":["import openmm","from openmm.app import *","from openmm.unit import *"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import openmm.app as app\nimport openmm as mm\nimport openmm.unit as unit\n\n# This example assumes a 'protein.pdb' file exists in the same directory.\n# A minimal PDB can be generated or downloaded, e.g., from RCSB PDB (e.g., 1AKI).\n# For a real simulation, ensure your PDB is properly prepared (e.g., with PDBFixer).\ntry:\n    pdb = app.PDBFile('protein.pdb')\nexcept FileNotFoundError:\n    print(\"Error: 'protein.pdb' not found. Please provide a PDB file for the quickstart.\")\n    exit()\n\n# Create a force field for the system\nforcefield = app.ForceField('amber14-all.xml', 'amber14/tip3pfb.xml')\n\n# Create a system from the PDB topology and force field\nsystem = forcefield.createSystem(pdb.topology,\n                                nonbondedMethod=app.PME,\n                                nonbondedCutoff=1.0*unit.nanometers,\n                                constraints=app.HBonds)\n\n# Create an integrator for advancing the simulation\nintegrator = mm.LangevinMiddleIntegrator(300*unit.kelvin, 1/unit.picosecond, 0.004*unit.picoseconds)\n\n# Create a simulation object\nsimulation = app.Simulation(pdb.topology, system, integrator)\nsimulation.context.setPositions(pdb.positions)\n\n# Minimize energy to relieve bad contacts\nprint('Minimizing energy...')\nsimulation.minimizeEnergy()\nprint(f'Potential energy after minimization: {simulation.context.getState(getEnergy=True).getPotentialEnergy()}')\n\n# Add reporters for output\nsimulation.reporters.append(app.PDBReporter('output.pdb', 1000))\nsimulation.reporters.append(app.StateDataReporter('data.csv', 1000, step=True, potentialEnergy=True, temperature=True, separator=','))\n\n# Run the simulation\nprint('Running simulation...')\nsimulation.step(10000) # Run 10,000 steps\nprint('Simulation complete. Output saved to output.pdb and data.csv')","lang":"python","description":"This quickstart demonstrates a basic molecular dynamics simulation using OpenMM. It loads a PDB file, applies a force field to create a system, sets up a Langevin integrator, performs energy minimization, and then runs a short simulation, saving trajectory and state data. A `protein.pdb` file is required in the execution directory for this example to run.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"8.1.1","pypi_latest":"8.5.1","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":4,"avg_import_s":0.32,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"openmm","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"openmm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.5,"import_time_s":0.25,"mem_mb":10.5,"disk_size":"172M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"openmm","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"openmm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.3,"import_time_s":0.41,"mem_mb":11.1,"disk_size":"180M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"openmm","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"openmm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.3,"import_time_s":0.4,"mem_mb":10.9,"disk_size":"168M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"openmm","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"openmm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.2,"import_time_s":0.46,"mem_mb":11.3,"disk_size":"167M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"openmm","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"openmm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.06,"mem_mb":4.1,"disk_size":"82M"}]}}