normal backward.py: "Problem determining mapping..."

  • cneale
  • cneale's Avatar Topic Author
  • Offline
  • Junior Boarder
More
8 years 8 minutes ago #5457 by cneale
Dear Users:

I would appreciate your help to figure out what I have done wrong with the backward.py tool.

I have just now attempted to create an atomistic bilayer through combination of the insane.py an backward.py tools. There is no simulation here, though there is no indication in these two tools that simulation (or the resolved martini.itp) is required.

Below is what I did (two commands only) in combination with the output. Basically, insane.py works but backward.py is complaining that I don't have all the atoms that I need in the CG model to make the atomistic model (at least I think this is the complaint).

In addition to what is below, I also tried pure POPC and then either pure POPE or POPS. None worked.

$ ./insane.py -o try1.gro -l POPC:50 -l CHOL:20 -x 10 -y 10 -z 10

; X: 10.000 (13 bins) Y: 10.000 (13 bins) in upper leaflet
; X: 10.000 (13 bins) Y: 10.000 (13 bins) in lower leaflet
; 169 lipids in upper leaflet, 169 lipids in lower leaflet
; NDX Solute 1 0
; Charge of protein: 0.000000
; NDX Membrane 1 3648
; Charge of membrane: 0.000000
; Total charge: 0.000000
; NDX Solvent 3649 0
; NDX System 1 3648
; "I mean, the good stuff is just INSANE" --Julia Ormond
POPC 120
CHOL 48
POPC 120
CHOL 48



$ ./backward.py -f cg.gro -o atom.gro -from martini -to charmm36

Residues defined for transformation from martini to charmm36:

Problem determining mapping coordinates for atom H91 of residue POPC.
atomlist:
want: H91
have:
Bailing out...


Thank you for your help.

Please Log in or Create an account to join the conversation.

More
7 years 11 months ago #5461 by tsjerk
Hi Chris,

It says that you have no residue mappings for this transformation. Do you have the Mapping directory in the same place as backward.py? Does it contain *charmm*.map files?

T.

Please Log in or Create an account to join the conversation.

  • cneale
  • cneale's Avatar Topic Author
  • Offline
  • Junior Boarder
More
7 years 11 months ago #5465 by cneale
Dear Tsjerk:

Thank you for the reply. Below I provide as much information as I can. I also tried adding PATH=$PATH:. just in case backward.py is not finding the Mapping directory, though that didn't help.

$ ls
atom.top backward.py cg.gro cg.top empty.gro empty.mdp initram.sh insane.py Mapping run.sh

$ ls Mapping/
ala.amber.map asp.gromos.map dopc.gromos.map gly.charmm36.map leu.charmm36.map popc.charmm36.map pro.gromos.map tyr.amber.map
ala.charmm36.map cdl.gromos.map dope.gromos.map gly.gromos.map leu.gromos.map popc.gromos.map ser.amber.map tyr.charmm36.map
ala.gromos.map chol.amber.map dppc.amber.map heptane.gromos.map lys.amber.map pope.amber.map ser.charmm36.map tyr.gromos.map
aot.gromos.map chol.charmm36.map dppc.charmm36.map his.amber.map lys.charmm36.map pope.charmm36.map ser.gromos.map val.amber.map
arg.amber.map chol.gromos.map dppc.gromos.map his.charmm36.map lys.gromos.map pope.gromos.map sol.gromos.map val.charmm36.map
arg.charmm36.map cl2h.gromos.map gln.amber.map his.gromos.map met.amber.map popg.amber.map thr.amber.map val.gromos.map
arg.gromos.map cl4.gromos.map gln.charmm36.map ile.amber.map met.charmm36.map popg.charmm36.map thr.charmm36.map
asn.amber.map cys.amber.map gln.gromos.map ile.charmm36.map met.gromos.map pops.amber.map thr.gromos.map
asn.charmm36.map cys.charmm36.map glu.amber.map ile.gromos.map phe.amber.map pops.charmm36.map trp.amber.map
asn.gromos.map cys.gromos.map glu.charmm36.map __init__.py phe.charmm36.map pops.gromos.map trp.charmm36.map
asp.amber.map dopc.amber.map glu.gromos.map __init__.pyc phe.gromos.map pro.amber.map #trp.gromos.map#
asp.charmm36.map dopc.charmm36.map gly.amber.map leu.amber.map popc.amber.map pro.charmm36.map trp.gromos.map

$ wc -l Mapping/popc.charmm36.map
181 Mapping/popc.charmm36.map

$ cat run.sh
./insane.py -o cg.gro -p cg.top -l POPC:1 -x 10 -y 10 -z 10
./backward.py -f cg.gro -o atom.gro -from martini -to charmm36

$ grep D3B Mapping/popc.charmm36.map
NC3 PO4 GL1 GL2 C1A C2A C3A C4A C1B C2B D3B C4B C5B
60 C28 C2B D3B
61 H8R C2B D3B
62 H8S C2B D3B
63 C29 D3B D3B C2B
64 H91 D3B
65 C210 D3B D3B C4B
66 H101 D3B
67 C211 C4B D3B
68 H11R C4B D3B
69 H11S C4B D3B

$ grep D3B cg.gro|wc -l
0

$ grep " 1POPC" cg.gro
1POPC NC3 1 8.885 0.426 6.950
1POPC PO4 2 8.873 0.449 6.650
1POPC GL1 3 8.864 0.447 6.350
1POPC GL2 4 8.972 0.423 6.350
1POPC C1A 5 8.906 0.474 6.050
1POPC D2A 6 8.873 0.434 5.750
1POPC C3A 7 8.923 0.482 5.450
1POPC C4A 8 8.927 0.420 5.150
1POPC C1B 9 9.118 0.336 6.050
1POPC C2B 10 9.149 0.296 5.750
1POPC C3B 11 9.119 0.337 5.450
1POPC C4B 12 9.112 0.295 5.150

Please Log in or Create an account to join the conversation.

More
7 years 11 months ago #5468 by flaviyan
Replied by flaviyan on topic backward.py: "Problem determining mapping..."
Hi Chris,

You are using the Martini lipid rule 2.0 for the POPC [12 beads] (which is the case in the latest insane script) but you are using the Mapping scheme according to the old lipid rules [13 beads]. so the backward is throwing an error. Either update the Mapping to match the new bead description or use the following insane command:

./insane.py -o cg.gro -p cg.top -l POPC.o:1 -x 10 -y 10 -z 10

Please Log in or Create an account to join the conversation.

  • cneale
  • cneale's Avatar Topic Author
  • Offline
  • Junior Boarder
More
7 years 11 months ago #5475 by cneale
Dear Tsjerk:

Thank you, this works. For posterity, given this usage one also has to add the following line between insane.py and backward.py :

sed -i "s/POPC.o/POPC/" cg.gro

Also, the atomistic structure looks pretty terrible. For example, oxygens doubly bound to the phosphorus are both on the same side and have bond lengths of only 0.29 A; one of the choline methyl groups is only 0.27 A from the nitrogen; hydrogen atoms are basically on top of heavy atoms; it goes on. Is this the expected result, with everything to get worked out by atomistic energy minimization? If so, I'd be awfully concerned about chiral inversion. I'm hoping the thought is that backward.py would work a lot better if I had run some martini dynamics after I generated the structure with insane.py ? Still, did anyone check their chirality after backward.py ?

Thank you,
Chris.

Please Log in or Create an account to join the conversation.

More
7 years 11 months ago #5476 by tsjerk
Hi Chris,

First of all, insane only builds very crude lipid structures and relaxation is needed to make something of it, while backward relies on the relatively close correspondence of coarse grained and atomistic configurations. Going straight from insane to backward was worth a try, but it's not unexpected to fail. A bit of simulation in between is a good idea.

Then, the backmapping consists of two stages: projection/reconstruction and relaxation. backward.py takes care of the first part, while initram integrates this in a complete workflow, including the relaxation. The structure that comes out of backward.py is not a physical structure yet. It aims at projecting the coarse grained structure onto the atomistic space and reconstruct parts in such a way that the relaxation procedure will be successful. This does mean that critical parts need to be mended, including fixing chirality and double bond configurations. For that, backward has a specific sculpting syntax, which is explained in the paper, and which can be used in the mapping files.

I hope this clears things up a bit :)

Best,

Tsjerk

Please Log in or Create an account to join the conversation.

  • cneale
  • cneale's Avatar Topic Author
  • Offline
  • Junior Boarder
More
7 years 11 months ago #5477 by cneale
Thank you Tsjerk, this makes sense. Next time I'll read the paper first ;) My desired usage is simply to generate a bunch of atomistic bilayers without clicking my mouse all day on charmm-gui. I'll spend some quality time with the paper and run some intervening simulations.

Chris.

Please Log in or Create an account to join the conversation.

More
7 years 11 months ago #5478 by tsjerk
Hi Chris,

There's more machinerie just for these kinds of things. What lipids? ... Contact me directly if you're interested in a completely automated pipeline for building atomistic membranes...

T.

Please Log in or Create an account to join the conversation.

More
7 years 6 months ago #5860 by gpantel
Replied by gpantel on topic backward.py: "Problem determining mapping..."
Hi all,

I realize this is reviving a very old thread, but I would like to map back some configurations of a DPPC, DIPC/DUPC, and CHOL(Melo parameters) system and it seems that backward.py does not have mappings for DIPC/DUPC. Is there some tool I can use to do this mapping?

Thank you for any help.

Please Log in or Create an account to join the conversation.

More
7 years 6 months ago #5861 by xavier
you can change the mappings yourself in the directory that comes with backwards and called "Mapping". You find there a bunch of files whose name should make sense to you and the inside also ...

At first it might be scary if you are not familiar with it but eventually you'll be happy to have done it yourself.

Good luck.

Please Log in or Create an account to join the conversation.

More
7 years 6 months ago #5865 by gpantel
Replied by gpantel on topic backward.py: "Problem determining mapping..."
Very well, I'll try that. Thanks for the encouragement.

Please Log in or Create an account to join the conversation.

More
7 years 6 months ago #5868 by gpantel
Replied by gpantel on topic backward.py: "Problem determining mapping..."
Alright. So I've spent several hours trying to do this.

I've had to write mappings for the Melo Cholesterol and for D[U/I]PC which seem to be right based on the other mapping files.

It seems that the model that actually gets constructed has very bizarre connectivity, at least according to VMD, and GMX throws thousands of LINCS warnings on the mapped structure when trying to minimize it or run MD. I'm mapping this from the last frame of a very well equilibrated simulation. This strange connectivity is not only for the new mappings that I wrote, but ALSO for water and DPPC. The strange connectivity is primarily for hydrogens to multiple atoms, and I do not see how it makes sense considering that the order of the atoms are ordered the same per molecule as in a working GRO/PDB file.

I find it hard to imagine that I'm not the only person who has experienced this issue -- has anyone reported anything similar before?

Please Log in or Create an account to join the conversation.

More
7 years 6 months ago #5869 by tsjerk
Yes. In fact, I reported this in the paper, and explained the how and what, together with illustrations.

As explained there, the structure produced by backward.py is (necessarily) non-physical, and it needs to be relaxed through several cycles, including (in order) energy minimization without intra-molecular non-bonded interactions, energy minimization with those, NVT simulation with a very short time step, NVT simulation with a short time step , ..., NVT with a normal time step. The relaxation protocol is taken care of by initram.sh. The whole procedure is described both in the paper and in the accompanying tutorials (in the supplementary material).

Please Log in or Create an account to join the conversation.

Time to create page: 0.113 seconds