Molecular simulation toolkit
Project description
mstk
A toolkit to make molecular simulation less painful
Capabilities
- Assign atom types and force field parameters based on local chemical environment
- Generate input files for simulation engines like LAMMPS, GROMACS, NAMD, OpenMM
- Support Drude polarizable model, coarse-grained model, virtual site, linear angle...
- Read/write common topology files (LAMMPS, PSF, PDB, ZMAT etc...)
- Read/write common trajectory files (LAMMPS, GRO, DCD, XTC, etc...)
- Access local and remote job schedulers like Slurm, Torque
Examples
The following code builds a liquid mixture of 100 benzene and 1000 water molecules, ready for simulation.
from mstk.topology import Molecule, Topology
from mstk.forcefield import ForceField, typer_primitive
from mstk.simsys import System
from mstk.wrapper import Packmol
# Create molecule structures from SMILES
benzene = Molecule.from_smiles('c1ccccc1')
water = Molecule.from_smiles('O')
top = Topology([benzene, water])
# Assign atom type as defined in `data/forcefield/primitive.zft`
typer_primitive.type(top)
# Build a bulk liquid simulation box with Packmol
packmol = Packmol('/path/to/packmol')
top.cell.set_box([4.0, 4.0, 4.0])
top.scale_with_packmol([100, 1000], packmol=packmol)
# Assign force field as defined in `data/forcefield/primitive.zff`
ff = ForceField.open('primitive.zff')
ff.assign_charge(top)
system = System(top, ff)
# generate input files for LAMMPS, GROMACS and NAMD
system.export_lammps()
system.export_gromacs()
system.export_namd()
# generate an OpenMM system
omm_sys = system.to_omm_system()
Documentation
https://mstk.readthedocs.io/en/latest/index.html
TODO
- Take bond order into consideration for force field assignment
- Re-organize algorithms scattered in topology and analyzer modules
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mstk-0.3.3.tar.gz
(170.4 kB
view hashes)