Backmapping from coarse grain to all atom

GROMACS version: 2025.2
GROMACS modification: Yes/No

Hello all,

Does anyone have recent experience backmapping beads to atomistic resolution? I’ve been trying to work with backward.py as discussed in the martini user guide but it has not been working as expected. I am working with Martini3 and am using updated lipid parameters for Cholesterol, POPC, POPE, POPS.

So far, my attempts to backmap have led to the following output where it seems unable to convert lipids:

> python2 backward.py -f convertme.gro -o aa_charmm36.gro -raw aa_charmm36_raw.gro -to charmm36
Error reading amber to martini mapping for GMO (file: /home/ss171/0-Projects/02-systems/04-RTKs/01-trka/01-variants/04-2N90_WT_tetramer_PCPS/coarse_grained_asym/backward/Mapping/chol.amber.map).
Error reading amber94 to martini mapping for GMO (file: /home/ss171/0-Projects/02-systems/04-RTKs/01-trka/01-variants/04-2N90_WT_tetramer_PCPS/coarse_grained_asym/backward/Mapping/chol.amber.map).
Error reading amber96 to martini mapping for GMO (file: /home/ss171/0-Projects/02-systems/04-RTKs/01-trka/01-variants/04-2N90_WT_tetramer_PCPS/coarse_grained_asym/backward/Mapping/chol.amber.map).
Error reading amber99 to martini mapping for GMO (file: /home/ss171/0-Projects/02-systems/04-RTKs/01-trka/01-variants/04-2N90_WT_tetramer_PCPS/coarse_grained_asym/backward/Mapping/chol.amber.map).
Error reading amber99sb to martini mapping for GMO (file: /home/ss171/0-Projects/02-systems/04-RTKs/01-trka/01-variants/04-2N90_WT_tetramer_PCPS/coarse_grained_asym/backward/Mapping/chol.amber.map).
Error reading amber03 to martini mapping for GMO (file: /home/ss171/0-Projects/02-systems/04-RTKs/01-trka/01-variants/04-2N90_WT_tetramer_PCPS/coarse_grained_asym/backward/Mapping/chol.amber.map).
Error reading amberGS to martini mapping for GMO (file: /home/ss171/0-Projects/02-systems/04-RTKs/01-trka/01-variants/04-2N90_WT_tetramer_PCPS/coarse_grained_asym/backward/Mapping/chol.amber.map).
Residues defined for transformation from martini to charmm36:
['POPC', 'NAC', 'ILE', 'POPG', 'GLN', 'POPS', 'GLY', 'GLU', 'CYS', 'HIS', 'POPE', 'LYS', 'PRO', 'CHOL', 'ASN', 'DMPC', 'VAL', 'DOPE', 'DPPC', 'DOPC', 'THR', 'ASP', 'TRP', 'SER', 'PHE', 'ALA', 'MET', 'ACE', 'LEU', 'ARG', 'TYR']
Problem determining mapping coordinates for atom H91 of residue POPC.
atomlist: ['N', 'C12', 'C13', 'C14', 'C15', 'H12A', 'H12B', 'H13A', 'H13B', 'H13C', 'H14A', 'H14B', 'H14C', 'H15A', 'H15B', 'H15C', 'C11', 'H11A', 'H11B', 'P', 'O13', 'O14', 'O12', 'O11', 'C1', 'HA', 'HB', 'C2', 'HS', 'O21', 'C21', 'O22', 'C22', 'H2R', 'H2S', 'C3', 'HX', 'HY', 'O31', 'C31', 'O32', 'C32', 'H2X', 'H2Y', 'C23', 'H3R', 'H3S', 'C24', 'H4R', 'H4S', 'C25', 'H5R', 'H5S', 'C26', 'H6R', 'H6S', 'C27', 'H7R', 'H7S', 'C28', 'H8R', 'H8S', 'C29', 'H91', 'C210', 'H101', 'C211', 'H11R', 'H11S', 'C212', 'H12R', 'H12S', 'C213', 'H13R', 'H13S', 'C214', 'H14R', 'H14S', 'C215', 'H15R', 'H15S', 'C216', 'H16R', 'H16S', 'C217', 'H17R', 'H17S', 'C218', 'H18R', 'H18S', 'H18T', 'C33', 'H3X', 'H3Y', 'C34', 'H4X', 'H4Y', 'C35', 'H5X', 'H5Y', 'C36', 'H6X', 'H6Y', 'C37', 'H7X', 'H7Y', 'C38', 'H8X', 'H8Y', 'C39', 'H9X', 'H9Y', 'C310', 'H10X', 'H10Y', 'C311', 'H11X', 'H11Y', 'C312', 'H12X', 'H12Y', 'C313', 'H13X', 'H13Y', 'C314', 'H14X', 'H14Y', 'C315', 'H15X', 'H15Y', 'C316', 'H16X', 'H16Y', 'H16Z']
want: H91 ['D3B']
have: ['C1B', 'C1A', 'NC3', 'C3A', 'C3B', 'C2B', 'C4A', 'C4B', 'D2A', 'GL1', 'GL2', 'PO4']
Bailing out...
['H91', 'C210', 'H101', 'C211', 'H11R', 'H11S', 'C212', 'H12R', 'H12S', 'C213', 'H13R', 'H13S', 'C214', 'H14R', 'H14S', 'C215', 'H15R', 'H15S', 'C216', 'H16R', 'H16S', 'C217', 'H17R', 'H17S', 'C218', 'H18R', 'H18S', 'H18T', 'C33', 'H3X', 'H3Y', 'C34', 'H4X', 'H4Y', 'C35', 'H5X', 'H5Y', 'C36', 'H6X', 'H6Y', 'C37', 'H7X', 'H7Y', 'C38', 'H8X', 'H8Y', 'C39', 'H9X', 'H9Y', 'C310', 'H10X', 'H10Y', 'C311', 'H11X', 'H11Y', 'C312', 'H12X', 'H12Y', 'C313', 'H13X', 'H13Y', 'C314', 'H14X', 'H14Y', 'C315', 'H15X', 'H15Y', 'C316', 'H16X', 'H16Y', 'H16Z']

Try this link or contact the developers. I have found that some scripts in Martini tutorials may not work and may require some minor changes to adapt to your system/workflow.

Thanks for the link! Unfortunately, this repository also returns the same issue. Have you had luck using this script for your own conversion?

For anyone who comes looking for a solution to this problem in the future, I highly recommend mstool. I’ve linked the GitHub below. This tool works great out of the box and can be automated in python. The developer is active and very helpful/timely in his responses.