An automated GROMACS force field converter tool
Project description
gmx_ffconv
gmx_ffconv is a semi-automated, all-atom force field converter for GROMACS.
It has been developed to be fast and user-friendly, and doesn't require users to known any programming.
gmx_ffconv requires users to provide included topology files for the molecules they want to convert in the current and new force field, it does not generate or interpolate force field parameters.
# Usage:
gmx_ffconv ffmap -h
usage: gmx_ffconv ffmap [-h] -itp1 ITP1 -itp2 ITP2 -name NAME [--duplicate]
[--all_mappings] [--validate]
[--consistent_naming CONSISTENT_NAMING]
optional arguments:
-h, --help show this help message and exit
-itp1 ITP1 First ITP file (path), corresponding to force field
used in .gro file
-itp2 ITP2 Second ITP file (path)
-name NAME Name of the molecule, does not need to match itp files
--duplicate Skip graph matching, create a mapping where everything
is kept in same order. Only useful when part of the
coordinate file needs reordering.
--all_mappings Obtain all mappings, not recommended
--validate Carry out conversion in both directions
--consistent_naming CONSISTENT_NAMING
CSV file containing atom name equivalencies in both
force fields
usage: gmx_ffconv groconv [-h] -name NAME [NAME ...] -nmol NMOL [NMOL ...]
-coordfile COORDFILE [-mapping_dir MAPPING_DIR]
-output OUTPUT [--validate] [--norename]
optional arguments:
-h, --help show this help message and exit
-name NAME [NAME ...]
Molecule names separated by spaces
-nmol NMOL [NMOL ...]
Molecule counts separated by spaces
-coordfile COORDFILE Input .gro file
-mapping_dir MAPPING_DIR
Directory containing mapping CSV files
-output OUTPUT Output .gro file name
--validate Generate back-converted structure
--norename Do not rename the reordered gro
Installation instructions:
The recommended way of installing gmx_ffconv is with pip:
pip install gmx_ffconv
Alternatively
The easiest way to install gmx_ffconv is to clone the github, cd in gmx_ffconv and running
pip install .
Note, it is considered good practice to perform this in a virtual environment.
Possible issues:
If the installation contains a message about installing an UNKNOWN package, please update your pip version.
Tips and tricks
(1) If you are working on very large molecules, the default memory stack allocation can lead to a segfault error. This can easily be fixed by running in the same terminal before invoking gmx ffconv.
ulimit -s unlimited
(2) When building a database of mappings, for example from AMBER’s Lipid21 to CHARMM36m, storing the folder with the included topology files for the new force field inside the mappings directory enables groconv to find them without having to manually provide paths.
(3) Using custom restraints: While most restraints (such as ones in the included topology files) are likely to be supported, in the case that the restraints file was generated using the old coordinate file, a new one must be generated using the new force field. Generating position restraints is easy, but for users that want to work with complex restraints that can't be easily regenerated, there is an easy fix. In the Scripts folder is included a Python script, which converts NMR restraint files (distance, dihedral and orientation) to match the new force field. The general approach consists of simply renaming atom indices using the order specified in the mapping csv.
Example:
The files are provided in “Tutorial” in folder Example1
Example 1: Small membrane
A membrane containing 24 DOPE,24 DPPC,24 CHL, 6 K+, 6 Cl- and 2709 TIP3P molecules was generated by CHARMM-GUI’s Membrane builder using CHARMM36m. The target force field is AMBER (Lipid21) . The water model is kept as TIP3, and the ions are standard for the water model.
First, mappings for each molecule must be found. These commands can be run at the same time by the use of &.
# DPPC
gmx_ffconv ffmap -itp1 toppar_CHARMM/DPPC.itp -itp2 toppar_AMBER/PPPC.itp -name DPPC
# Cholesterol
gmx_ffconv ffmap -itp1 toppar_CHARMM/CHL1.itp -itp2 toppar_AMBER/CHL.itp -name CHL
# DOPE
gmx_ffconv ffmap -itp1 toppar_CHARMM/DOPE.itp -itp2 toppar_AMBER/OOPE.itp -name DOPE
# TIP3
gmx_ffconv ffmap -itp1 toppar_CHARMM/TIP3.itp -itp2 toppar_AMBER/TP3.itp -name TIP3P
# Potassium
gmx_ffconv ffmap -itp1 toppar_CHARMM/POT.itp -itp2 toppar_AMBER/K+.itp -name POT
# Chloride
gmx_ffconv ffmap -itp1 toppar_CHARMM/CLA.itp -itp2 toppar_AMBER/Cl-.itp -name CLA
These should have generated multiple mapping files, a mapping file per molecule type named mapping_{NAME}.csv.
Now, that all mappings are obtained, the new coordinate file can be obtained via groconv
gmx_ffconv groconv -coordfile CHARMM_MEMB.gro -name DOPE DPPC CHL POT CLA TIP3P -nmol 24 24 24 6 6 2709 -output AMBER_MEMB_from_CHARMM.gro
We can now compare the AMBER_MEMB_from_CHARMM.gro to AMBER_MEMB_FF.gro, which will match in energy values if the conversion has been successful. This file is provided in the AMBER_REF folder with the necessary files.
Citation
If you find my tool useful, please cite:
Jasmine E. Aaltonen, gmx_ffconv: A Fast, User-Friendly Semi-Automated All-Atom Force Field Converter for GROMACS, under review (2025)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gmx_ffconv-1.0.3.post1.tar.gz.
File metadata
- Download URL: gmx_ffconv-1.0.3.post1.tar.gz
- Upload date:
- Size: 22.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f9507733277e8fd077faadfc2be5d0db928131d068d2ea61bb7d3951748f264
|
|
| MD5 |
5253557117c4c963c7c57348220abf86
|
|
| BLAKE2b-256 |
c0d30910ed8f0ef8a2a53f65de68b64cb1200c209d769e387c46df10311792f8
|
Provenance
The following attestation bundles were made for gmx_ffconv-1.0.3.post1.tar.gz:
Publisher:
publish.yml on Jassu1998/gmx_ffconv
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gmx_ffconv-1.0.3.post1.tar.gz -
Subject digest:
1f9507733277e8fd077faadfc2be5d0db928131d068d2ea61bb7d3951748f264 - Sigstore transparency entry: 480273794
- Sigstore integration time:
-
Permalink:
Jassu1998/gmx_ffconv@ce665a68ed19d944fc9ed9970a2a88d3d60884ed -
Branch / Tag:
refs/tags/v1.0.3.post1 - Owner: https://github.com/Jassu1998
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ce665a68ed19d944fc9ed9970a2a88d3d60884ed -
Trigger Event:
release
-
Statement type:
File details
Details for the file gmx_ffconv-1.0.3.post1-py3-none-any.whl.
File metadata
- Download URL: gmx_ffconv-1.0.3.post1-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b275e16f9b207ecc3f552313cd73b9121fa35369fee928ff87d893e9a2397e7
|
|
| MD5 |
1ad675df3b180b2cf1a4d0a77c024c4d
|
|
| BLAKE2b-256 |
9f7c36a57954aceccaeea3b65bc26edd0539284afec847324b462d00a75c720d
|
Provenance
The following attestation bundles were made for gmx_ffconv-1.0.3.post1-py3-none-any.whl:
Publisher:
publish.yml on Jassu1998/gmx_ffconv
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gmx_ffconv-1.0.3.post1-py3-none-any.whl -
Subject digest:
5b275e16f9b207ecc3f552313cd73b9121fa35369fee928ff87d893e9a2397e7 - Sigstore transparency entry: 480273808
- Sigstore integration time:
-
Permalink:
Jassu1998/gmx_ffconv@ce665a68ed19d944fc9ed9970a2a88d3d60884ed -
Branch / Tag:
refs/tags/v1.0.3.post1 - Owner: https://github.com/Jassu1998
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ce665a68ed19d944fc9ed9970a2a88d3d60884ed -
Trigger Event:
release
-
Statement type: