auto_martini icon indicating copy to clipboard operation
auto_martini copied to clipboard

auto_martini as an interoperable component

Open anabiman opened this issue 3 years ago • 2 comments

The purpose of this issue is to suggest building a "component" for auto_martini (dubbed mmic_ffpa_autom) that makes it part of the MMIC ecosystem MolSSI is currently developing. The idea is to design mmic_ffpa_autom as a wrapper around auto_martini to provide force field assignment capabilities in a way that makes it interoperable with other codes, which grants mmic_ffpa_autom numerous benefits. The diagram below sums how this component would work in practice and its dependence on auto_martini.

mmic-ffpa-autom

The "AssignInput" and "AssignOutput" are just data models (e.g. python dictionaries) that represent a general schema specification that many other similar components adhere to. Using this component is trivial, as is the case with all components in MMIC:

import mmic_pkg
output = mmic_pkg.RunComponent.compute(input)

With this design, mmic_ffpa_autom will:

  • No longer be restricted to a single CG method. Since coarse-graining will be achieved via a separate external component (mmic_cg), mmic_ffpa_autom could be now used with other coarse-graining technique that become available in mmic_cg. Note that mmic_cg will by default support bead-based CGs.
  • Support a range of file formats for the structure/topology via MMElemental and mmic_translator. Over time, more file formats will be supported in these 2 packages, and so mmic_ffpa_autom will benefit from those additional capabilities without any changes required to its source code.
  • Be accessible via a code-agnostic, force force field assignment component: mmic_ffpa. The mmic_ffpa is a general force field assignment component designed to cover a wide spectrum of domains in the computational molecular sciences, based on the MMSchema specification. Under the hood, mmic_ffpa uses specialized components such as mmic_ffpa_autom. This has the potential of increasing the user base of auto_martini beyond the CG community.
  • Belong to the MolSSI MMIC ecosystem that provides interoperability with other components and seamless integration with quantum chemistry codes via QCArchive.

Note: no changes to the auto_martini source code are required, since mmic_ffpa_autom and auto_martini would be separate packages.

Is this of interest to you @tbereau ? If so, I'll add you as a collaborator so you can help me tackle issues pertaining to auto_martini that might arise in the future.

anabiman avatar Apr 24 '21 15:04 anabiman

Yes, that sounds like an excellent way to build in some interoperability with other codes and (CG) techniques! Keep me in the loop 👍

tbereau avatar Apr 26 '21 12:04 tbereau

Great, will do! I will start working on the repository sometime next week and will add you as a collaborator. I will keep this issue open until then.

anabiman avatar Apr 27 '21 07:04 anabiman