Skip to content

Generating atomistic models of ion channel pores as used in O. Beckstein, Philip C. Biggin and Mark S. P. Sansom, A hydrophobic gating mechanism for nanopores, J. Phys. Chem. B 105 (2001), 12902-12905 and later publications.

orbeckst/pgeom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pgeom

Copyright (c) 2000-2010 Oliver Beckstein oliver.beckstein@bioch.ox.ac.uk
Published under the GNU Public Licence, version 3 or any higher one.

The code in the directory nr is from Numerical Recipes in C, 2nd edition and is not free. You should have a look at the online copy of the book and then type the required code from the screen in your favourite text editor. The files in the nr directory are only provided for you to verify that your manual copy of the code is correct (e.g. by using the UNIX diff utility).

Overview

pgeom is simple C code to generate model pores. Pores are built from concentric rings of atomic spheres. A pore is defined by its external radius (the maximum outer radius of the whole assembly), and the lengths and radii of the mouth and pore regions.

The top mouth region is taken to be the mirror image of the bottom mouth region, which sandwich the pore region. Each region is defined by one length and one radius. The mouth radius is linearly decreased to match up with the pore radius. With RM >= RP this yields a funnel or hour glass shape.

pgeom also contains experimental code that is meant to calculate analytical pore volumes (see Appendix B of my thesis (pdf)). It takes the generated structure and treats each atom as a CH4 van der Waals united atom (in the Gromacs force field) and then tries to calculate (essentially) the canonical partition function for a single water molecule in this external potential.

Citing

If you use this code in published work, please cite

O. Beckstein, Philip C. Biggin and Mark S. P. Sansom, A hydrophobic gating mechanism for nanopores, J. Phys. Chem. B 105 (2001), 12902-12905. DOI:10.1021/jp012233y

Thank you!

Installation

Set BIN_DIR in the Makefile.

cd pgeom
make
make install

You can also compile a double precision version with -DDOUBLE (or uncomment the 'DOUBLE := yes' in the Makefile) but that is only useful for the pore volume stuff.

It will install:

  • pgeom (some stuff has been moved in a small library that is also installed)
  • numerical recipes routines (in directory ./nr) are used for pore volume stuff but required for compilation nevertheless; they should be compiled automatically

Usage

Hydrophobic pores

To generate my standard model pores (the ones used in my papers), the commandline looks as follows:

RADIUS=5.5    # can use values from 1.5 A up to R_INNER
R_OUTER=18
R_INNER=10
L_PORE=8
L_MOUTH=4

pgeom -v -R ${R_OUTER} -P ${RADIUS}  ${L_PORE} \
         -M ${R_INNER} ${L_MOUTH} \
      -x -o pore.pdb -s pore.itp

The benchmark pore of radius 5.5 Å (right at the switching transition---see the paper):

./pgeom -v -R 18 -P 5.5 8 -M 10 4 -x -o pore.pdb -s pore.itp

Radii are taken to be 'solvent accessible radii', i.e. the centre of the wall atom lies on a circle of radius R + rA where rA is the van der Waals radius of the wall atom (~1.95 Å for CH4).

It is also possible to keep all the arguments in a file (say, pore.txt) and run

pgeom -f pore.txt -o pore.pdb -s pore.itp

In this case the input file would look like

# example for a 5.5 A hydrophobic pore
# (values are white-space separated)
RADIUS 18

# R1, R2: radii at top/bottom; L: length
#      R1     R2   L
MOUTH  10     5.5  4
PORE    5.5   5.5  8
MOUTH   5.5  10    4

The pore looks like this:

*****    |     upper MOUTH
******** |     central PORE region
******** |
*****    |     lower MOUTH

One can also create more complicated geometries by using multiple PORE sections in the input file, as shown, for instance, in

P. Pongprayoon, O. Beckstein, C.-L. Wee, and M. S. P. Sansom. Simulations of anion transport through OprP reveal the molecular basis for high affinity and selectivity for phosphate. Proc. Natl. Acad. Sci. USA 106 (2009), 21614-21618. doi:10.1073/pnas.0907315106

Typically, the pore is embedded into a slab of dummy atoms by a series of Gromacs commands and solvated with water (and ions if desired). I do this in a Makefile; email me and I will send it to you. An older version of all the necessary files is available at the Hydrophobic Gating example page.

Hydrophilic pores

I just added the appropriate charges to the itp file; the dipole moments were taken to mimick the peptide backbone dipole moment. At an atomic distance of 4 Å this requires a charge of +/- 0.38e. A semi-automatic approach is taken by scripts/porecharger.pl which takes a list of atom numbers (alternating between positively and negatively charged ones) and the charge and changes the itp file accordingly. You still need to write down the list of atoms by using eg rasmol or vmd to select the atoms.

Bugs

  • The program can seg-fault if the pore is too big (in my defence: this was my first C-program ever and I only later learned about dynamic memory allocation...). Should be fixed eventually...
  • The analytical pore volume code is highly experimental and should not be relied on to produce sensible results.

About

Generating atomistic models of ion channel pores as used in O. Beckstein, Philip C. Biggin and Mark S. P. Sansom, A hydrophobic gating mechanism for nanopores, J. Phys. Chem. B 105 (2001), 12902-12905 and later publications.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published