TLS Motion Determination (TLSMD) analyzes a protein crystal structure for evidence of flexibility, e.g. local or inter-domain motions.[1][2] It does this by partitioning the protein chains into multiple segments that are modeled as rigid bodies undergoing TLS (Translation/Libration/Screw) vibrational motion. It generates all possible partitions up to a specified maximum number of TLS groups. Each trial partition is evaluated by how well it predicts the observed atomic displacement parameters (ADPs, "thermal parameters") that came out of crystallographic refinement.
Note: On 2008-02-15, we released version 1.0.0 of tlsmd. It is available for download on sourceforge.
Contents |
Note: This section will cover the install of pymmlib, including tlsmd, on a 64-bit system running Mandriva Linux (>=2007.1). However, most of it should work for 32-bit systems and any other Linux distribution.
It is best to get the package as follows:
svn co https://pymmlib.svn.sourceforge.net/svnroot/pymmlib/trunk pymmlib
Note: It very much depends if you are running on a 32- or 64-bit machine. So, instead of, say "liblapack
" (32-bit), you would install "lib64lapack
" (64-bit)
python + libpython2.5-devel
(if using Python 2.5)python-numpy + python-numpy-devel
python-opengl
libgtk+2.0_0-devel
pygtk2.0-devel + python-gtkglext
lib64gtkglext-devel
libgtkglext-1.0_0 + libgtkglext-1.0_0-devel
python-imaging-devel
python-cherrypy
lapack + liblapack3.0-devel
atlas
lib64xmu6-devel
lib64xmlrpc0
lib64xmlrpc0-devel
libcairo2-devel
glib-gettextize
libglib2.0_0-devel
libatk1.0_0-devel
libpango1.0_0-devel
libgdk_pixbuf2.0_0-devel
Note: See Installation Guide for LAPACK for detailed information.
wget http://www.netlib.org/lapack/lapack.tgz tar xvf lapack.tgz && cd lapack-3.1.1/
make.inc
file for your system. Below is an example:SHELL = /bin/sh PLAT = _LINUX FORTRAN = gcc -fPIC -shared OPTS = -funroll-all-loops -O3 DRVOPTS = $(OPTS) NOOPT = LOADER = gcc -fPIC LOADOPTS = TIMER = NONE # not needed ARCH = ar ARCHFLAGS= cr RANLIB = ranlib BLASLIB = ../../blas$(PLAT).a LAPACKLIB= lapack$(PLAT).a TMGLIB = tmglib$(PLAT).a EIGSRCLIB= eigsrc$(PLAT).a LINSRCLIB= linsrc$(PLAT).a
SRC/
directory andmake
BLAS/SRC/
directory andmake
Note: The default build will produce lapack_LINUX.a
. However, we want a shared object (i.e., lapack.so
).
nm lapack_LINUX.a|grep gfortran # check that gfortran was used mkdir tmp_lapack; cp lapack_LINUX.a tmp_lapack/; cd tmp_lapack/ ar -x lapack_LINUX.a # extract objects from archive gcc -fPIC -lgfortran -shared *.o -Wl,-soname,lapack.so.3.1.1 -o lapack.so.3.1.1 objdump -p lapack.so.3.1.1 |grep SONAME # should return "lapack.so.3.1.1" ldd lapack.so.3.1.1 # will show you which version of libgfortran was used # Do the same for blas mkdir tmp_blas; cp blas_LINUX.a tmp_blas/; cd tmp_blas/ ar -x blas_LINUX.a gcc -fPIC -lgfortran -shared *.o -W1,-soname,blas.so.3.1.1 -o blas.so.3.1.1 objdump -p blas.so.3.1.1 |grep SONAME ldd blas.so.3.1.1
/etc/ld.so.cache
(make sure the absolute path of your newly created shared libraries are in /etc/ld.so.conf
):
ldconfig # as root
mv lapack.so.3.1.1 /lib64/; cd !$ ln -s /lib64/lapack.so.3.1.1 lapack.so ln -s /lib64/lapack.so.3.1.1 lapack_LINUX.so mv blas.so.3.1.1 /lib64/; cd !$ ln -s /lib64/blas.so.3.1.1 blas.so ln -s /lib64/blas.so.3.1.1 blas_LINUX.so
you can let ldconfig take care of it, iff you have correctly labeled SONAME
's in the shared libraries you just built.
Before you build/install anything, check the following file for the correct settings (e.g., correct paths):
vi pymmlib/mmLib/Constants.py
python setup.py buildlib python setup.py checkdeps # if all is good, then python setup.py build # if all is good, then python setup.py install # as root
Set the PYTHONPATH
environment variable:
export PYTHONPATH=/usr/bin/python:$HOME/tlsmd/pymmlib:$HOME/tlsmd/pymmlib/mmLib
Make the necessary changes to:
tlsmd/src/Makefile
Then,
make make install # creates tlsmdmodule.so and copies it to tlsmd/bin/
Make the necessary changes to the following file:
tlsmd/bin/tlsmdlib/conf.py
ranlib generates an index to the contents of an archive and stores it in the archive. The index lists each symbol defined by a member of an archive that is a relocatable object file.
You may use nm -s or nm --print-armap to list this index.
An archive with such an index speeds up linking to the library and allows routines in the library to call each other without regard to their placement in the archive.
The GNU ranlib program is another form of GNU ar; running ranlib is completely equivalent to executing ar -s.
TLSMD; TLS motion; web server; computer programs; TLS, translation libration screw; macromolecular crystallography; protein crystallography.
Last Modified 21 March 2008