Surface of a micelle


We use the GITIM class to investigate the surface composition of a DPC micelle

This tutorial shows how to do some basic statistical analysis and how to visualize surface atoms / pockets for water.

The DPC micelle

The micelle example file MICELLE_PDB consists of 65 DPC and 6305 water molecules, for a total of about 20,000 atoms (D. P. Tieleman, D. van der Spoel, H.J.C. Berendsen, J. Phys. Chem. B 104, pp. 6380-6388, 2000)


As this is not a planar interface, we will use the GITIM class to identify the atoms at the surface of the micelle. Our reference group for the surface analysis includes therefore all DPC molecules

>>> import numpy as np
>>> import MDAnalysis as mda
>>> import pytim
>>> from   pytim.datafiles import *
>>> #
>>> # this is a DPC micelle in water
>>> u = mda.Universe(MICELLE_PDB)
>>> #
>>> # select all lipid molecues
>>> g = u.select_atoms('resname DPC')

In order to calculate the surface atoms, we invoke GITIM, passing the group g as the group option, and set molecular=False in order to mark only the atoms at the surface, and not the whole residues to which these atoms belong. We override the standard radii (from the gromos 43a1 forcefield) with a simple set that will match the atom types.

>>> # define radii for atom types
>>> rdict  = {'C':1.5, 'O':1.5, 'P':1.6, 'N':1.8}
>>> # calculate the atoms at the interface ...
>>> inter = pytim.GITIM(u, group=g, molecular=False, alpha=2.5, radii_dict=rdict )
>>> #
>>> # ... and write a pdb file (default:'layers.pdb') with layer information in the beta field
>>> inter.writepdb()

The micelle with its surface atoms highlighted in purple looks like this (left: from outside; right: section through the middle)

_images/micelle3.png _images/micelle2.png

Some statistics

It’s easy to calculate some simple statistical properties. For example, the percentage of atoms of DPC at the surface is

>>> print "percentage of atoms at the surface: {:.1f}".format(len(inter.layers[0])*100./len(g))
percentage of atoms at the surface: 47.2

This is a rather high percentage, but is due to the small size of the micelle (large surface/volume ratio)

We can also easily find out which atom is more likely to be found at the surface:

>>> # we cycle over the names of atoms in the first residue
>>> for name in g.residues[0].atoms.names :
...     total   = np.sum(g.names==name)
...     surface = np.sum(inter.layers[0].names == name )
...     print('{:>4s} ---> {:>2.0f}%'.format(name, surface*100./total))
  C1 ---> 97%
  C2 ---> 95%
  C3 ---> 100%
  N4 ---> 98%
  C5 ---> 98%
  C6 ---> 92%
  O7 ---> 75%
  P8 --->  3%
  O9 ---> 72%
 O10 ---> 83%
 O11 ---> 48%
 C12 ---> 31%
 C13 ---> 29%
 C14 ---> 14%
 C15 ---> 17%
 C16 ---> 15%
 C17 ---> 18%
 C18 ---> 12%
 C19 ---> 18%
 C20 ---> 12%
 C21 ---> 17%
 C22 ---> 17%
 C23 ---> 22%

One immediately notices that with this choice of radii, P atoms are rarely at the surface: this is because they are always buried wihin their bonded neighbors in the headgroup. Also, a non negligible part of the fatty tails are also found from time to time at the surface.