/vermouth-martinize

Describe and apply transformation on molecular structures and topologies

Primary LanguagePythonApache License 2.0Apache-2.0

Martinize2 and vermouth: The ultimate resolution transformation tools

Build Status codecov Documentation Status DOI arXiv

Martinize2 is a rewrite of Martinize. It is aimed at producing coarse-grained structures and topologies from an atomistic structure. Martinize is primarily developed for the Martini coarse-grained force field and the Gromacs simulation engine. However the architecture of the program will allow us to support a broader range of force fields and simulation engines in the future.

Vermouth (for VERsatile, MOdular, and Universal Tranformation Helper) is the python library that powers Martinize2. It allows to describe and apply transformation on molecular structures and topologies using graph algorithms.

Disclaimer

Martinize2 and Vermouth are under development. So far they have mostly been tested on Martini 2 and Martini 3. If you use Martinize 2 and Vermouth for any other force field be sure to carefully check the resulting topologies!
Bugs can occur. If you encounter an issue, please report it on https://github.com/marrink-lab/vermouth-martinize/issues. Carefully check your input and output files before using them; read the messages displayed by the program.

Installation

Martinize2 and vermouth require python 3.6 or greater. They are distributed via PyPi, and can be installed using the pip command:

pip install vermouth

This installs the last released version. You can update an existing installation by running pip install -U vermouth. In some cases you may want to experiment with running the latest development version. You can install this version with the following command:

pip install git+https://github.com/marrink-lab/vermouth-martinize.git#vermouth

Note that vermouth and Martinize2, in particular development versions, may contain bugs that cause it to produce incorrect topologies. Check the produced output carefully!

Martinize2 and vermouth have mdtraj as optional dependency as an alternative to dssp.

The behavior of the pip command can vary depending of the specificity of your python installation. See the documentation on installing a python package to learn more.

Basic usage

Installing Martinize2 and vermouth with pip adds the martinize2 program to the research PATH. You can see the available option of the program by running:

martinize2 -h

At the moment, martinize2 tries to reproduce the interface of the original Martinize. You can find explanations on how to use Martinize on the Martini tutorials; in most cases, replacing calls to martinize.py by calls to martinize2 should produce similar results.

The documentation of the vermouth python library will come soon.

Citation

@article{kroon2022martinize2,
  title={Martinize2 and Vermouth: Unified Framework for Topology Generation},
  author={Kroon, Peter C and Gr{\"u}newald, Fabian and Barnoud, Jonathan and van Tilburg, Marco 
          and Souza, Paulo CT and Wassenaar, Tsjerk A and Marrink, Siewert-Jan},
  journal={arXiv preprint arXiv:2212.01191},
  year={2022}}

Documentation

More complete documentation, including API documentation can be found at https://vermouth-martinize.readthedocs.io/

License

Martinize2 and vermouth are distributed under the Apache 2.0 license.

Copyright 2018 University of Groningen

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

	http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

The full text of the license is available in the source repository.

Contributions

The development of Martinize2 and vermouth is done on github. Contributions are welcome as bug reports and pull requests. Note however that the decision of whether or not contributions can give authorship on the resulting academic paper is left to our sole discretion.