Replicate Lipids

There's not much interesting going on here: we have a pdb file containing one POPE lipid, and we want a structure containing 16 lipids. So, we copy them. Each lipid will have the same coordinates; we'll worry about that in the next step.

Here's how the pope1.pdb file was created (due to Ilya Balabin):

A single phosphatidylcholine (POPC) molecule was taken from the old membrane (see the paper by Heller et al in 1993 in the group publication list). MSI Insight Builder was used to straighten both lipid tails and make them parallel to each other to minimize bad VdW contacts between neighbor lipids in the membrane. The molecule was turned so that the tails were along Z axis; in the XY plane, the molecule was rotated so that a line connecting the two tails was directed along Y axis. This was done to make building the membrane in the XY plane easier.

The molecule was saved in the PDB format Insight style to preserve the order of atoms in the PDB file, and then the new coordinates were combined with the old atom names.

Note that the double bond was put into the cys conformation at the expense of a non-optimal torsion angle at the adjacent single bond. The former has an about 100kT rotation barrier, which makes it rigid for all practical purposes, whereas the rotation barrier for the latter is about a few kT, which makes it quickly get into the minimum. Some atom names were changed to fit the charmm27 topology file (which, for proteins and water, is the same as the charmm22). Intermediate molecules can be found in the auxiliary directory, and the final coordinates were popc1.pdb.

A phosphatidylethanolamine (POPE) molecule was built out of a POPC one by cutting off the methyl groups from the lipid head group nytrogen followed by re-building three protons on the nytrogen and updating the atom names. One more difference is the phosphorus atom name: it is P1 in POPC but P in POPE, as specified in the charmm27 topology file. The final coordinates were pope1.pdb.

We now arrange the lipids by first translating each lipid by a fixed offset from the center, then rotating them by a varying amount about the z-axis. We also flip half the lipids by 180 degrees to form the other side of the bilayer.

Run this step!     Continue

replicate_lipids.vmd

# STEP 2: Replicate POPE

# topology toppar/top_all27_prot_lipid.inp
resetpsf

# Give each lipid a new segid.  Lipids in one layer will have a segid
# LA[1-8], and the lipids in the other layer will have the segid LB[1-8].
for { set i 1 } { $i <= 8 } { incr i } {
  segment LA$i {
    first NONE
    last NONE
    residue 1 POPE
  }
  coordpdb pope1.pdb LA$i
}

for { set i 1 } { $i <= 8 } { incr i } {
  segment LB$i {
    first NONE
    last NONE
    residue 1 POPE
  }
  coordpdb pope1.pdb LB$i
}
writepsf pope.psf
writepdb pope.pdb

mol delete all
mol load psf pope.psf pdb pope.pdb

# Flip the LB lipids around by 180 degrees
set seltext {segid "LB.*"}
set lb [atomselect top $seltext]
$lb move [transaxis x 180 deg]

# For lipid structural parameters, see http://aqueous.labs.brocku.ca/lipid

# Translate LB so that the P atoms of the two leaflets are 35 A apart.
set selA [atomselect top "segid LA1 and name P"] 
set selB [atomselect top "segid LB1 and name P"] 
set zA [$selA get z]
set zB [$selB get z]
set dz [expr $zA - $zB]
$lb moveby "0 0 [expr $dz - 35]"
 
# Move everything to about the origin
set all [atomselect top all]
$all moveby [vecinvert [measure center $all]]

# Now we need to pack the lipids.  

for { set i 1 } { $i <= 8 } { incr i } {
  set sel [atomselect top "segid LA$i LB$i"]
  set angle [expr 360.0 / 8.0 * $i]
  $sel moveby {12 0 0}
  $sel move [transaxis z $angle]
}
 
# Write everything back out
animate write pdb pope_move.pdb