# Difference between revisions of "Coot"

25%

Coot is a graphics program for building, refining and analysing macromolecular models obtained with crystallographic procedures.

There is a homepage with extensive documentation. The program may be downloaded for Linux and Windows computers from the primary server. The license of Coot is GNU GPL.

# Installing Coot

## Installing Coot on OS X

OS X install packages for nightly builds that work on 10.8.X and 10.9.X are available here: Coot OS X package installers

Please refer to the Installing Coot on OS X page

## Installing Coot on Linux

Installing coot on linux is rather more straightforward than on OS X, because most linux systems are based on gnome and/or kde, and tend to have many of the required components already installed. Most of the other dependencies are also readily available.

### Installation from a distributed binary tarball package

This is the recommended way for those who do not want to delve into the mysteries of compiling and linking a great but complex piece of software. Read the (somewhat outdated, it seems) Coot FAQ to find "Additional Notes" for your operating system.

In short, just go to http://www.ysbl.york.ac.uk/~emsley/software/binaries/nightlies/pre-release/ (a mirror is at ftp://turn5.biologie.uni-konstanz.de/coot/software/binaries/nightlies/pre-release/ ) and pick a suitable binary, e.g. coot-0.5-pre-1-revision-1003-binary-Linux-i386-fedora-5.tar.gz for a Red Hat Enterprise Linux 5 or CentOS-5 system (Fedora 6 corresponds to RHEL5, thus Fedora 5 binaries are OK). If you prefer a "stable" binary, these are at http://www.ysbl.york.ac.uk/~emsley/software/binaries/stable/.

Then un-tar it under /usr/local/src (or in your $HOME), and establish a symlink (ln -s) between /usr/local/bin/coot and the bin/coot of the freshly unpacked distribution. If you then run coot, and the loader complains that a certain library is missing, just ask yum whatprovides <thatlibrary>  and install the library, again using yum (assuming yum is available in your distribution, otherwise use apt or whatever is there for this purpose). #### Example: installing a 64bit nightly CentOS5 binary build on 64bit SL6.1 First of all, SL (Scientific Linux) is a derivative of RHEL, as is CentOS. So all three OSs behave exactly the same. The binaries with "x86_64" binaries are for 64bit systems; the "i386" binaries are for 32bit systems. Since my notebook is 64bits ("uname -a" reports "x86_64" more than once), I download coot-0.7-pre-1-revision-3999-binary-Linux-x86_64-centos-5-python-gtk2.tar.gz. As root, I "cd /usr/local/src" and un-tar. Next, have to find out which libraries are missing. This can be achieved by (note the use of LD_LIBRARY_PATH in the second command - do not permanently modify LD_LIBRARY_PATH !): [root@localhost]# cd coot-Linux-x86_64-centos-5-gtk2-python [root@localhost]# LD_LIBRARY_PATH=lib ldd bin/coot-real | grep found libssl.so.6 => not found libcrypto.so.6 => not found libssl.so.6 => not found libcrypto.so.6 => not found  So only two libraries are missing! Either they can be installed using yum, or they are already available, but have a higher version. • First possibility: find out about installable RPM packages (preferred way): [root@localhost src]# yum provides libssl.so.6 libcrypto.so.6 Loaded plugins: refresh-packagekit openssl098e-0.9.8e-17.el6.i686 : A compatibility version of a general : cryptography and TLS library Repo : sl Matched from: Other : libssl.so.6 ... (the package is repeated, and libcrypto.so.6 is also mentioned)  Now don't just install the openssl098e-0.9.8e-17.el6.i686 and its dependencies - it is a 32bit library (the name ends with ".i686")! Installing it does not solve the problem - we need a 64bit library. Unfortunately "yum provides" does not tell us about the 64bit library (is that a yum bug?). By specifying just the package name (openssl098e.x86_64 would also work, and would avoid any 32bit package) yum install openssl098e  we install both libssl.so.6 and libcrypto.so.6 in their 64bit versions - done! • Second possibility: find out if the system already has a higher version of the two libraries: [root@localhost locate libssl.so /usr/lib64/.libssl.so.1.0.0.hmac /usr/lib64/.libssl.so.10.hmac /usr/lib64/libssl.so /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.10  So the answer is: there is /usr/lib64/libssl.so which is at version 10, which is compatible with the version we need (6). For libcrypto.so the same is true. So just cd coot-Linux-x86_64-centos-5-gtk2-python/lib/ ln -s /usr/lib64/libssl.so libssl.so.6 ln -s /usr/lib64/libcrypto.so libcrypto.so.6  The way these symlinks are made they would even work if RHEL upgrades libssl or libcrypto to higher versions. Works for me. Final step (this does not need to be repeated for a new coot version): create /usr/local/bin/coot with #!/bin/csh -f setenv LANG C exec /usr/local/src/coot-Linux-x86_64-centos-5-gtk2-python/bin/coot$*


and make it executable with

chmod a+x /usr/local/bin/coot


### Installation from source code via autobuild scripts

Installation of coot and all of its dependencies are handled automatically through the autobuild scripts. There are two versions:

• GTK1 - the old user interface. This script builds coot and all its dependencies.
• GTK2 - the new user interface. This script builds coot and most of the dependencies, excluding GTK2.

To build Coot, all you should need to do is edit a few settings in the top of the build script, or alternatively specify those settings as environment variables. For example, the following sequence of instructions will build the latest pre-release of the GTK 2 version with python support:

wget http://www.ysbl.york.ac.uk/~emsley/build-logs/build-it-gtk2-simple

export AUTOBUILD_INSTALLED=${HOME}/autobuild/coot export AUTOBUILD_BUILD=${HOME}/autobuild/
export LOGS=$AUTOBUILD_BUILD/logs export NIGHTLY_DEST_DIR=$AUTOBUILD_BUILD
export STABLE_DEST_DIR=$AUTOBUILD_BUILD export build_coot_prerelease=1 bash build-it-gtk2-simple python > build.log  (This script works in bash. For tcsh, replace 'export' with 'setenv' and '=' with ' '. In some cases you may need to download additional development packages in order to build all the components. ### Installation from source code manually There are also instructions for Custom building Coot from source code. # Running Coot ## General Topics ### Controls ### Stereographic Display Coot has several options for stereographic display, ranging from cross-eyed and wall-eyed split-screen stereo, to hardware-stereo modes that work with CRT systems and most recently the new Zalman 3-D LCD monitor. #### Side-by-Side Either cross-eyed or wall-eyed split-screen stereo mode can be invoked using the "Stereo" menu item under "Draw", as is shown in the image below: #### Hardware Stereo Similarly, hardware stereo can be invoked (assuming you have the CRT, correct graphics card, emitter, etc) using the same menu item, by selecting "Hardware Stereo". 3d lcd #### Zalman Stereo The first viable LCD monitor for stereographics display is made by Zalman and costs about$300: Zalman ZM-M220W

The attributes for this monitor have been tested and described rather extensively by Warren DeLano on the PyMOL site. Please read it for important details and suggested purchasing sources.

The coot zalman page describes specifically how to get this to work with coot on Mac OS X, but the instructions should be generalizable to linux and Windoze.

Note that the stereo effect is very sensitive to the vertical position of your eyes relative to the screen: if you don't see stereo, try tilting the screen.

### Stereo: left/right (and front/back) interchanged?

Establish an additional toolbutton "swap stereo":

Main Toolbar -> right mouse click-> Manage buttons-> select Swap Stereo

Or for the script minded:

switch_stereo_sides()

This will toggle the stereo images left and right.