Difference between revisions of "TLSMD"
Line 1: | Line 1: | ||
'''TLS Motion Determination''' ('''TLSMD''') analyzes a protein crystal structure for evidence of flexibility, e.g. local or inter-domain motions.<ref name="Painter2006a">Painter J, Merritt EA (2006). "[http://skuld.bmsc.washington.edu/~tlsmd/Acta_D62_439.pdf Optimal description of a protein structure in terms of multiple groups undergoing TLS motion]". ''Acta Cryst, D62(4):439-450''. {{doi|10.1107/S0907444906005270}}.</ref><ref name="Painter2006b">Painter J, Merritt EA (2006). "[http://skuld.bmsc.washington.edu/~tlsmd/JApplCryst_39_109.pdf TLSMD web server for the generation of multi-group TLS models]". ''J Appl Cryst, 39(1):109-111''. {{doi|10.1107/S0021889805038987}}</ref> 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. | '''TLS Motion Determination''' ('''TLSMD''') analyzes a protein crystal structure for evidence of flexibility, e.g. local or inter-domain motions.<ref name="Painter2006a">Painter J, Merritt EA (2006). "[http://skuld.bmsc.washington.edu/~tlsmd/Acta_D62_439.pdf Optimal description of a protein structure in terms of multiple groups undergoing TLS motion]". ''Acta Cryst, D62(4):439-450''. {{doi|10.1107/S0907444906005270}}.</ref><ref name="Painter2006b">Painter J, Merritt EA (2006). "[http://skuld.bmsc.washington.edu/~tlsmd/JApplCryst_39_109.pdf TLSMD web server for the generation of multi-group TLS models]". ''J Appl Cryst, 39(1):109-111''. {{doi|10.1107/S0021889805038987}}</ref> 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. | ||
+ | |||
+ | [[Christoph Champ|I]] was the lead developer and maintainer of the TLS Motion Determination (both the webserver and the standalone/CLI version, along with [[Python Macromolecular Library]]) from 2006 to 2010. I contributed [http://www.ohloh.net/p/12891/contributors/55366423429103 20,590] lines of code to pymmlib and TLSMD (27.8% in [[Python]] and 25.5% in Fortran). I added hundreds of new features, including [[Skittles]],<ref>Zucker F, [[Christoph Champ|Champ PC]], Merritt EA (2010). "[https://docs.google.com/file/d/0B7cFvC52gEb9MTRmNDQyNmYtZDVhNS00OTViLTkxZGItODk3ZmU2ZjdjYzM5/edit Validation of crystallographic models containing TLS or other descriptions of anisotropy]". ''Acta Cryst.'' D'''66''', 889-900. {{doi|10.1107/S0907444910020421}}</ref> which was added to the [[:Category:Ccp4|CCP4]] codebase. | ||
<blockquote>'''Note''':<br/> | <blockquote>'''Note''':<br/> | ||
Line 183: | Line 185: | ||
==See also== | ==See also== | ||
*[[Python Macromolecular Library]] (mmLib) | *[[Python Macromolecular Library]] (mmLib) | ||
+ | *[[Skittles]] | ||
+ | |||
===Analysis=== | ===Analysis=== | ||
*[http://www.hmc.psu.edu/xraycore/secure/ccp4/tlsanl.html TLSANL] — analysis of TLS tensors and derived anisotropic U factors (part of [[:Category:Ccp4|CCP4]]) | *[http://www.hmc.psu.edu/xraycore/secure/ccp4/tlsanl.html TLSANL] — analysis of TLS tensors and derived anisotropic U factors (part of [[:Category:Ccp4|CCP4]]) | ||
Line 200: | Line 204: | ||
==References== | ==References== | ||
<references/> | <references/> | ||
+ | |||
==External links== | ==External links== | ||
*[http://skuld.bmsc.washington.edu/~tlsmd/ TLS Motion Determination webserver] | *[http://skuld.bmsc.washington.edu/~tlsmd/ TLS Motion Determination webserver] |
Latest revision as of 00:36, 13 July 2012
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.
I was the lead developer and maintainer of the TLS Motion Determination (both the webserver and the standalone/CLI version, along with Python Macromolecular Library) from 2006 to 2010. I contributed 20,590 lines of code to pymmlib and TLSMD (27.8% in Python and 25.5% in Fortran). I added hundreds of new features, including Skittles,[3] which was added to the CCP4 codebase.
Note:
On 2010-02-11, we released version 1.4.0 of tlsmd.
They are both available for download on sourceforge.
On 2009-06-19, we released version 1.3.0 of tlsmd.
On 2008-02-15, we released version 1.0.0 of tlsmd.
On 2011-03-27, we released version 1.2.0 of pymmlib.
On 2008-02-15, we released version 1.1.0 of pymmlib.
On 2007-04-28, we released version 1.0.0 of pymmlib.
Contents
Description
Abstract: The TLSMD web server extracts information about dynamic properties of a protein based on information derived from a single-crystal structure. It does so by analyzing the spatial distribution of individual atomic thermal parameters present in an input structural model. The server partitions the protein structure into multiple, contiguous chain segments, each segment corresponding to one group in a multi-group description of the protein's overall dynamic motion. For each polypeptide chain of the input protein, the analysis generates the optimal partition into two segments, three segments, ... up to 20 segments. Each such partition is optimal in the sense that it is the best approximation of the overall spatial distribution of input thermal parameters in terms of N chain segments, each acting as a rigid group undergoing TLS (translation/libration/screw) motion. This multi-group TLS model may be used as a starting point for further crystallographic refinement, or as the basis for analyzing inter-domain and other large-scale motions implied by the crystal structure.[2]
Abstract: A single protein crystal structure contains information about dynamic properties of the protein as well as providing a static view of one three-dimensional conformation. This additional information is to be found in the distribution of observed electron density about the mean position of each atom. It is general practice to account for this by refining a separate atomic displacement parameter (ADP) for each atomic center. However, these same displacements are often described well by simpler models based on TLS (translation/libration/screw) rigid-body motion of large groups of atoms, for example interdomain hinge motion. A procedure, TLSMD, has been developed that analyzes the distribution of ADPs in a previously refined protein crystal structure in order to generate optimal multi-group TLS descriptions of the constituent protein chains. TLSMD is applicable to crystal structures at any resolution. The models generated by TLSMD analysis can significantly improve the standard crystallographic residuals R and Rfree and can reveal intrinsic dynamic properties of the protein.[1]
Background summary of what the TLSMD server does
The TLSMD server creates a model for molecular flexibility based on a refined protein (or RNA) crystal structure. The model is constructed by breaking each protein chain into segments, and refining a TLS (Translation/Libration/Screw) description for each segment. This formalism allows one to describe with relatively few parameters the anisotropic motions and microconformations of the crystalline protein. In many cases it produces a much better description of the crystal contents than a conventional model that tries to account for these effects by assigning a single isotropic B factor for each atom. Thus the TLSMD model often, although not always, yields better R and Rfree values and improved electron density maps. Over and above that, the component groups identified by TLSMD may yield insight into hinge motions, local conformational flexibility, and other dynamic properties of the protein relevant to its behaviour in solution as well as in the crystal.
In essence, TLSMD takes a conventional model with individual atomic B factors as input, and constructs a model that interprets those atomic B factors as arising from the motion of larger groups. In the context of the TLSMD server, you can think of the input B values as observations ("Bobs"), and the predictions from the multi-group TLS model as calculations ("Bpred"). The server helps you to choose a multi-group model that does the best job of describing the distribution of B factors in your input structural model. The TLSMD model parameters themselves can then be further refined against your diffraction data in either Refmac or PHENIX.refine.[4]
Pre-installation
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
Dependencies
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 (>= 2.4):
python + libpython2.5-devel
(if using Python 2.5) - NumPy (>= 0.9.6):
python-numpy + python-numpy-devel
- PyOpenGL:
python-opengl
- Gtk+-2.2 or Gtk+-2.4:
libgtk+2.0_0-devel
- PyGTK (>= 2.x):
pygtk2.0-devel + python-gtkglext
- GtkGlExt:
lib64gtkglext-devel
- PyGtkGLExt:
libgtkglext-1.0_0 + libgtkglext-1.0_0-devel
- Python Imaging Library (>= 1.1.5):
python-imaging-devel
- CherryPy:
python-cherrypy
- LAPACK (see section below; >= 3.0):
lapack + liblapack3.0-devel
- ATLAS (>= 3.6.0):
atlas
- MINPACK
- Other
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
Optional
Note: The following programs are optional (i.e., you can still run TLSMD without them). However, they are highly recommended, if you wish to get the full analysis of a TLSMD run.
LAPACK / BLAS
Note: See Installation Guide for LAPACK for detailed information.
- Download LAPACK (grab latest version of full package; must be at least >=3.0.0):
wget http://www.netlib.org/lapack/lapack.tgz tar xvf lapack.tgz && cd lapack-3.1.1/
- Modify
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
- Enter
SRC/
directory and
make
- Enter
BLAS/SRC/
directory and
make
Note: The default build will produce lapack_LINUX.a
. However, we want a shared object (i.e., lapack.so
).
- Create shared object from archive:
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
- Update your
/etc/ld.so.cache
(make sure the absolute path of your newly created shared libraries are in/etc/ld.so.conf
):
ldconfig # as root
- Symlinks: Instead of doing the following:
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.
pymmlib installation
Monomer libraries
Note that the monomer libraries are no longer found on the rutgers.edu website. You will need to change the following lines in pymmlib/setup.py
under the buildlib()
function from:
TMP_PATH = "public-component-erf.cif" URL = "http://pdb.rutgers.edu/public-component-erf.cif"
to:
TMP_PATH = "components.cif" URL = "ftp://ftp.wwpdb.org/pub/pdb/data/monomers/components.cif"
And then execute:
python setup.py buildlib python setup.py build python setup.py install # as root
Build
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
TLSMD installation
tlsmdmodule.so
Make the necessary changes to:
tlsmd/src/Makefile
Then,
make make install # creates tlsmdmodule.so and copies it to tlsmd/bin/
conf.py
Make the necessary changes to the following file:
tlsmd/bin/tlsmdlib/conf.py
Notes
- SONAME
- a soname is a field of data in a shared object file. The soname provides version backwards-compatibility information to the system. For instance, if a program requests to use version 1.0 of a shared object but the system only includes version 2.0 of that shared object, the soname field of the shared object tells the system whether it is usable in the place of version 1.0.
ranlib
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.
Keywords
TLSMD; TLS motion; web server; computer programs; TLS, translation libration screw; macromolecular crystallography; protein crystallography.
See also
Analysis
- TLSANL — analysis of TLS tensors and derived anisotropic U factors (part of CCP4)
- ANISOANL — analyses of anisotropic displacement parameters (part of CCP4)
- PARVATI (Protein Anisotropic Refinement Validation and Analysis Tool)
- DynDom — a program to determine domains, hinge axes, and hinge bending residues in proteins where two conformations are available.
- ESCET — a script driven program to analyse and compare three-dimensional protein structures
- CCP4 wiki
Movement
- molmovdb.org — a database of macromolecular movements with associated tools for flexibility and geometric analysis
Compiling
- ar — create, modify, and extract from archives.
- nm — list symbols from object files.
- ranlib — generate index to archive.
References
- ↑ 1.0 1.1 Painter J, Merritt EA (2006). "Optimal description of a protein structure in terms of multiple groups undergoing TLS motion". Acta Cryst, D62(4):439-450. DOI:10.1107/S0907444906005270 .
- ↑ 2.0 2.1 Painter J, Merritt EA (2006). "TLSMD web server for the generation of multi-group TLS models". J Appl Cryst, 39(1):109-111. DOI:10.1107/S0021889805038987
- ↑ Zucker F, Champ PC, Merritt EA (2010). "Validation of crystallographic models containing TLS or other descriptions of anisotropy". Acta Cryst. D66, 889-900. DOI:10.1107/S0907444910020421
- ↑ Merritt EA (2008). New higher-throughput server for TLSMD analysis. CCP4 Bulletin Board.
External links
TLS refinement
- TLS refinement — Dr. Martyn Winn