What is MMSchema?
MMSchema is a vocabulary specification for classical particle mechanics with emphasis on molecular systems. The schema provides standardized representations of data objects in molecular mechanics that enable interoperability between different codes without restricting any particular workflow.
Currently, MMSchema is a JSON schema; comptability with the hdf5 data format is being developed as well.
Core Models
MMSchema adopts an object-oriented view of classical mechanics by dividing it into its constituent core objects: initial state, inter-particle potential, and final state (statics) or trajectory (dynamics). Each core model represents a building block that is an integral part of the computation. The 3 core models in MMSchema are:
Molecule: represents a basic molecule object for MM, or more generally the N-body state in classical mechanics.
ForceField: represents force fields for MM, or more generally inter-particle potentials in classical mechanics.
Trajectory: represents trajectories in dynamical systems.
For classical statics, the MMSchema models Molecule and ForceField would represent the initial/final states and the inter-particle potential, respectively, as shown in the figure above. Likewise, Trajectory would represent simulation output of dynamical systems.
Each object in MMSchema is uniquely defined by a set of fields and (when suitable) their associated units as well. Furthermore, each core model is completely independent of any other model. The schema is designed to be flexible as much as possible by providing a general specification for computational particle mechanics, but MMSchema does not standardize any specific workflow. Instead, MMSchema strives to provide a starting point for specific application areas based on or related to MM such as energy minimization, force field assignment and construction, molecular dynamics, advanced sampling, …, to name a few. The schemas for these domains or applications are handled by MMIC components that define the input and output models for each procedure. Since MMSchema is not restricted to the atomic scale, it can also be used for coarse-graining as well as multiscale methods that evolve multiple spatial and/or temporal scales. In fact, any particle-based method can use MMSchema and further customize/extend it.