- Posts: 90
Using insane.py
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
Firstly, I want to congratulate all the people behind Martini for a lovely website. It has been some time since I visited, and the current website looks stunning.
I had a question for setting up {DOPC+50%Cholesterol} and {DOPS+50%Cholesterol} membrane systems. I need 500 molecules of DOPC/DOPS and 500 of cholesterol. I want to use insane.py in this regard. This is what I tried:
./insane.py -l DOPC[:250] -l Cholesterol[:250] -u DOPC[:250] -u Cholesterol[:250] -a (?) -sol water[:?]
I do not know what to use for area and number of waters (Is the number of waters defined per simulation cell or per lipid)...and using ./insane.py -l DOPC[:250] -l Cholesterol[:250] -u DOPC[:250] -u Cholesterol[:250] fails with an error:
; X: 2.500 (3 lipids) Y: 2.165 (3 lipids)
; 9 lipids in upper leaflet, 9 lipids in lower leaflet
Traceback (most recent call last):
File "./insane.py", line 1107, in <module>
lipU, numU = zip(*[ parse_mol(i) for i in lipU ])
File "./insane.py", line 388, in parse_mol
return l[0], len(l) == 1 and 1 or float(l[1])
ValueError: invalid literal for float(): 250]
Please help me out. Thanks!
Please Log in or Create an account to join the conversation.
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
- Posts: 90
Please help me out. Thanks!
Please Log in or Create an account to join the conversation.
- tsjerk
- Offline
- Expert Boarder
- Posts: 103
Sorry for missing the message. The square brackets mean that the part is optional, they should not be included. At present insane can't set a fixed number of molecules, but fills a membrane based on the size of the unit cell, the area per lipid and the relative abundance of species. By default, the latter is 1, so -l DOPC -l CHOL will give a membrane with equal numbers of DOPC and cholesterol. This is the same as specifying -l DOPC:1 -l CHOL:1. If you would need a 2:1 ratio, you could specify -l DOPC:2 -l CHOL:1 (or -l DOPC:2 -l CHOL). Unless you explicitly set a composition for the upper leaflet (-u), both leaflets are given the same composition. You can play a bit with the size of the unit cell and the area per lipid to get as close as you can to 500 lipids.
For the water, you need to use -sol W for default MARTINI water or -sol PW for polarizable water. This is equal to -sol W:1, indicating a relative abundance of 1 with respect to all solvent (but if you only have one species...). To get a certain ratio of water to lipid, you need to play with the size of the solvent layer, using -z. Specifying fixed numbers is on the todo list, and I'll add specifying a given solvent:lipid ratio. But it will have to wait a bit.
Hope it helps,
Tsjerk
Please Log in or Create an account to join the conversation.
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
- Posts: 90
Please Log in or Create an account to join the conversation.
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
- Posts: 90
For anyone interested, here is how I built my bilayer
./insane.py -l DOPC -l CHOL -a .5 -pbc rectangular -x 18 -y 18 -z 10 -o DOPC_CHOL_50%_martini.gro
Though pure DOPC has an area per headgroup of about 0.70 nm2, I found that specifying 0.50 leads to much better packing with 50% CHOL.
Output:
; X: 18.000 (25 lipids) Y: 18.000 (25 lipids)
; 625 lipids in upper leaflet, 625 lipids in lower leaflet
; Charge of membrane: 0.000000
; Total charge: 0.000000
DOPC 312
CHOL 312
DOPC 312
CHOL 312
I prefer solvating the membrane later with a simple genbox command
Please Log in or Create an account to join the conversation.
- tsjerk
- Offline
- Expert Boarder
- Posts: 103
Thanks for the msg. Good to know that the .50 APL works. As for the solvent, whatever works for you is good. I added the generation of solvent, because genbox gave problems with MARTINI water.
Cheers,
Tsjerk
Please Log in or Create an account to join the conversation.
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
- Posts: 90
What problems did you experience with genbox?
Please Log in or Create an account to join the conversation.
- tsjerk
- Offline
- Expert Boarder
- Posts: 103
When using genbox with a box of normal (single-bead) Martini water, it doesn't fill the box properly, and you end up with a central region with far too high density.
Please Log in or Create an account to join the conversation.
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
- Posts: 90
Please Log in or Create an account to join the conversation.
- tsjerk
- Offline
- Expert Boarder
- Posts: 103
Please Log in or Create an account to join the conversation.
- xavier
- Offline
- Admin
- Posts: 416
We had described several options to this problem by notably using a solvating water box bigger than the box solvated.
Now we recommend to use the insane script when possible. It makes life easier.
Rajat Desikan wrote: Oh, I never analysed this in great detail. Doesn't EM followed by a longuish equilibration(100ns) resolve this? If it doesn't, I might use the solvate option of insane.py
Please Log in or Create an account to join the conversation.
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
- Posts: 90
Eventually, I intend use my membrane to insert a protein into it. So, I usually take my equilibrated membrane, strip off all the water, insert it by concatenation of the bare membrane with the protein and resolvate it. Is it better to use insane.py for solvating this system? The protein is a membrane toxin with a water filled channel inside. I am not sure about how insane.py solvates this system because the lipids inside the channel have to be deleted!
I like the idea of a bigger waterbox. But from what you say, I think it is important to get insane.py working...
Thank you.
Please Log in or Create an account to join the conversation.
- tsjerk
- Offline
- Expert Boarder
- Posts: 103
Please Log in or Create an account to join the conversation.
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
- Posts: 90
If it works, I will post my workflow in this thread.
Please Log in or Create an account to join the conversation.
- xavier
- Offline
- Admin
- Posts: 416
The best solution will depend on your system and your objective ... typically if you
Please Log in or Create an account to join the conversation.
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
- Posts: 90
I got insane.py working. But I have one minor issue - Proper orientation of protein in membrane
I want to build a protein in a 18nmx18nmx17nm box and centered at (9 9 7.45):
editconf -f protein.pdb -o protein.gro -box 18 18 17 -center 9 9 7.45
The bilayer without water had the same box dimensions but centered differently in z:
editconf -f bilayer.pdb -o bilayer.gro -box 18 18 17 -center 9 9 12.45
I would then concatenate both files, add solvent, ions, etc
I am following the following script:
./insane.py -l DMPC -a .5 -pbc rectangular -x 18 -y 18 -z 17 -f DMPC_LE_elnedyn.pdb -o DMPC_LE_elnedyn_6_insane.gro -sol W -salt 0.15
How do I center it as above?
Thanks.
Please Log in or Create an account to join the conversation.
- tsjerk
- Offline
- Expert Boarder
- Posts: 103
If you add -center, the protein is centered on Z. Note that this takes the whole extent of the protein. If you need to center it on a certain transmembrane domain, you can position it first with editconf using a suitable index file, using -center 0 0 0. This point corresponds to the bilayer center in insane.
Please Log in or Create an account to join the conversation.
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
- Posts: 90
Note: in the previous question, I tried using editconf to center the protein. But the bilayer was off center.
Tsjerk,
If I understood it right, 0 0 0 corresponds to the bilayer center in insane.py
So, if the required transmembrane domain of my protein is centered at 0 0 0, the bilayer will automatically build around that.
Thanks,
Please Log in or Create an account to join the conversation.
- tsjerk
- Offline
- Expert Boarder
- Posts: 103
Please Log in or Create an account to join the conversation.
- Rajat Desikan
- Topic Author
- Offline
- Expert Boarder
- Posts: 90
Here is my workflow for anyone interested. I am sure the -dm option will work too.
editconf -f protein.pdb -o protein.gro -box 18 18 17 -center 9 9 -5.8 (Play around to get this right!)
./insane.py -l DMPC -a .4 -pbc rectangular -x 18 -y 18 -z 18 -f protein.gro -o insane.gro -sol W -salt 0.15 -ring
(Notes: I get an optimum packing with DMPC -a 0.4; I want lipids inside the protein, hence -ring)
Please Log in or Create an account to join the conversation.