BornProfiler documentation¶
BornProfiler is a Python package to set up calculations of the electrostatic free energy of an ion in a membrane protein for the Poisson-Boltzmann solver APBS.
Contents¶
Overview¶
BornProfiler is a collection of scripts to set up Poisson-Boltzmann electrostatic calculations for the APBS package, in particular calculations of the electrostatic solvation free energy of an ion along a pathway in a membrane protein (the so-called Born profile).
Features¶
The BornProfiler package helps setting up Poisson-Boltzmann calculations of the electrostatic potential of mean force of an ion in a pore or channel under the influence of a membrane. The membrane is modelled as a dielectric slab of epsilon=2.
- Provide a path (list of coordinates) and a PQR file of the protein as input.
- A membrane can be defined with arbitrary thickness, z-position, and dielectric. A headgroup region can also be defined with a different dielectric constant.
- Define all input parameters in a compact parameter file so that there is always a record of the exact calculation setup available.
- Born radii for all ions from the Rashin & Honig paper [Rashin1985] are included; just select the ion in the input file.
- Born radii for H3O+, OH- (and H+… for testing) have been derived from the solvation free energies in [Pliego2000] directly via the Born equation. USE AT YOUR OWN RISK!!
- Customize run scripts and queuing system submission scripts by providing your own templates.
[Rashin1985] | A.Rashin & B.Honig, J Phys Chem B 89 (1985), 5588 |
[Pliego2000] | J.R. Pliego and J.M. Riveros. Chemical Physics Letters, 332(5-6): 597–602, 2000. doi:10.1016/S0009-2614(00)01305-1. |
History and Contributions¶
Based on Kaihsu Tai’s Python rewrite (Poisson-Boltzmann profile for
an ion channel) of the original placeion.sh
and analyze.sh
bash scripts by Kaihsu Tai and Oliver Beckstein.
Uses material from the APBS Wiki (PMF of a helix in a membrane) and
contains a modified version of Michael Grabe’s draw_membrane2
from
APBSmem.
Building and installing BornProfiler¶
BornProfiler consists of a Python package bornprofiler
and a
a stand-alone executable draw_membrane2
. The Python package is
needed to set up the calculations and draw_membrane2
is needed as
a helper tool for apbs
; hence it needs to be installed on the same
machine where apbs
is going to run.
Installation from Source¶
Unpack the tar ball:
tar zxvf BornProfiler-1.0.tar.gz
Install the python module and scripts:
cd BornProfiler
python setup.py install --user
(--user
might only work for Python 2.6; look at the output of
python setup.py install --help
for guidance on what your options
are.)
Compile the customized (and improved) version of draw_membrane
named draw_membrane2
:
mkdir BUILD && cd BUILD
cmake -D CMAKE_INSTALL_PREFIX=$HOME -D CMAKE_BUILD_TYPE=Release ../src/drawmembrane
make
make install
The make install
step will install the executable
draw_membrane2a
under CMAKE_INSTALL_PREFIX/bin
; change
CMAKE_INSTALL_PREFIX
if you prefer another location.
(cmake is not really needed; if you don’t have it try the following:
gcc ./src/drawmembrane/draw_membrane2a.c -o draw_membrane2a -lm -lz
and install manually in a place where you or your shell can find it.)
Note
draw_membrane2a
also needs to be installed on the machine
where you want to run your BornProfiler jobs: it will run
together with apbs
. If you are going to run you
calculations on a cluster then draw_membrane2a
(and
apbs
) need to be both installed on the cluster.
Configuration¶
Finalize your installation by running
apbs-bornprofile-init.py
This should tell you that it set up a configuration file
~/.bornprofiler.cfg
and a number of directories.
The default ~/.bornprofiler.cfg
looks like this:
[DEFAULT]
configdir = ~/.bornprofiler
templatesdir = %(configdir)s/templates
qscriptdir = %(configdir)s/qscripts
[executables]
apbs = apbs
drawmembrane = draw_membrane2a
The file can be edited in a text editor. For instance, one can add the
full path to the apbs
and draw_membrane2a
executable binaries.
Any other variables used in run configuration input files can also be added here and will be used as defaults.
Advanced use: You can drop templates for run scripts into qscriptdir and have the BornProfiler package pick them up automagically.
User documentation¶
This documentation will tell you what you can achieve with BornProfiler, sketch out the background, what the typical workflow looks like, and discuss some examples.
A simple Born profile¶
TODO: Outline the problem of ion permeation, discuss simple example and show how this package can solve the problem. Choose something very simple such as nAChR or GLIC.
Background¶
TODO: Describe the theoretical background and say how individual steps are done in the package.
Workflow¶
TODO: describe the individual steps
Parameter settings¶
BornProfiler run input file¶
- …
- membrane position
- exclusion zone
Queuing system script¶
Discuss example, highlight what needs to be customized and how.
Generate window input files¶
- ::
- apbs-bornprofile-mplaceion
Run jobs¶
Manually or typically through a queuing system.
Developer documentation¶
Most users will likely use BornProfiler through the provided
scripts. However, in order to extend functionality and develop new
tools one can also use the bornprofiler
Python module as a
library.
Content: