Area per lipid error

From: Andres Morales N (andresmoralesn2_at_hotmail.com)
Date: Mon Oct 17 2011 - 21:12:33 CDT

 Dear NAMD and VMD users:
 
 Is there anyone here to know how to calculate the area per lipid and thickness for a lipid bilayer in a membrane system?
 Or, could anyone share the scripts to calculate them?
 
I was looking at VMD and NAMD mailing lists, and I found some suggestions to calculate a crude aproximation for area per lipid and thickness of a lipid bilayer .
Acording with those suggestions I wrote some simple scripts to calculate them. But I have some problems.

 First, the area per lipid calculated for each frame was around ~130 A^2 per lipid. It is a too large value since I am workin with a DPPC bilayer (~62 A^2 per lipid).
Second, the thickness calcualed was good for the 50 first frames, but for the other ones, it took too large values (~1000 A).
 
I calculated :
 Average area per lipid: "box size X * box size Y / no. of lipids" (lipids are in the XY plane)
 Thickness: I brought the membrane center of mass at origin (0,0,0), calculated average positive Z coordinates and average negative Z coordinates, substracted the negative from the positive
average.
The scripts I use was (lipids 1 to 36 formed the monolayer above z=0 and lipids 37 to 72 formed the monolayer beneath z=0 ):

 
###################Protocol to calculate average Z coordinates ##########################
proc prom_z {sel} {
 set sumz 0
 foreach atom [$sel get index] {
  set pos [lindex [[atomselect top "index $atom"] get {x y z}] 0]
  set z1 [lindex $pos 2]
   set sumz [expr abs($sumz )+ abs($z1)]
 }
 set promz [expr $sumz / 36]
 return $promz
}
##############################################################################################
 
set mol [mol new dppc.psf type psf]
mol addfile dppc_eq.dcd type dcd waitfor all

set outfile [open Analysis_DPPC.txt w];
puts $outfile "Frame Area per lipid Thickness (N) Thickness (P)"

set nf [molinfo top get numframes]
set sel [atomselect top "lipids"]
set sel1 [atomselect top all]
set sel2 [atomselect top "lipids and resid 1 to 36 and element N"]
set sel3 [atomselect top "lipids and resid 37 to 72 and element N"]
set sel4 [atomselect top "lipids and resid 1 to 36 and element P"]
set sel5 [atomselect top "lipids and resid 37 to 72 and element P"]
 
for {set i 0 } {$i < $nf } { incr i } {
    $sel frame $i
 
 $sel1 moveby [vecinvert [measure center $sel weight mass]]
 
 ## Area per lipid
 set min [lindex [measure minmax $sel] 0]
 set max [lindex [measure minmax $sel] 1]
 set minx "[lindex $min 0]"
 set miny "[lindex $min 1]"
 set maxx "[lindex $max 0]"
 set maxy "[lindex $max 1]"
 set lenght_x [expr $maxx - $minx]
 set lenght_y [expr $maxy - $miny]
 set area_por_lipido [expr ($lenght_x * $lenght_x) / 36]
 
 ## Thicknes
set z1 [prom_z $sel2]

set z2 [prom_z $sel3]
set thinckness1 [expr abs($z1) + abs($z2)]
 

set z3 [prom_z $sel4]

set z4 [prom_z $sel5]
set thinckness2 [expr abs($z3) + abs($z4)]
 
puts $outfile "$i $area_por_lipido $thinckness1 $thinckness1"
}
close $outfile

 
 
Thanks for your suggestions

 
 
 
 Hernán Andrés Morales Navarrete

Biophysics and Molecular Modeling Group
Physics Department
Escuela Politécnica Nacional, Quito - Ecuador
Ladrón de Guevara E11-253.
Casilla 17-01-1253
http://www.ciencias.epn.edu.ec/~biomod/

 
 

                                               

This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:57:50 CST