Changes

From CCP4 wiki
Jump to navigationJump to search
2,388 bytes added ,  06:49, 19 June 2020
m
Line 1: Line 1: −
[[Image:Coot-with-ATP-vector.png|400px|thumb|right]]
+
[[Image:Coot-with-ATP-vector.png|25%|thumb|right]]
 
Coot is a graphics program for building, refining and analysing macromolecular models obtained with crystallographic procedures.
 
Coot is a graphics program for building, refining and analysing macromolecular models obtained with crystallographic procedures.
   −
There is a [http://www.biop.ox.ac.uk/coot/ homepage] with extensive [http://www.biop.ox.ac.uk/coot/docs.html documentation]. The program may be downloaded for Linux, Mac and Windows computers from the [http://www.ysbl.york.ac.uk/~emsley/software/binaries/ primary server] (as of July 10, 2009 there's a new site at http://www.biop.ox.ac.uk/coot/devel/build-info.html) or, if that is not available, from an [ftp://turn5.biologie.uni-konstanz.de/coot external mirror]. The license of Coot is GNU GPL.  
+
There is a [http://www2.mrc-lmb.cam.ac.uk/Personal/pemsley/coot/ homepage] with extensive [http://www2.mrc-lmb.cam.ac.uk/Personal/pemsley/coot/web/docs/ documentation]. The program may be downloaded for Linux and Windows computers from the [http://www2.mrc-lmb.cam.ac.uk/Personal/pemsley/coot/binaries/pre-release/ primary server]. The license of Coot is GNU GPL.  
    
=Installing Coot=
 
=Installing Coot=
 
==Installing Coot on OS X==
 
==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: [http://scottlab.ucsc.edu/~wgscott/xtal/wiki/index.php/Stand-Alone_Coot Coot OS X package installers]
 +
 
Please refer to the [http://sage.ucsc.edu/xtal/wiki/index.php/Installing_Coot_on_OS_X Installing Coot on OS X] page
 
Please refer to the [http://sage.ucsc.edu/xtal/wiki/index.php/Installing_Coot_on_OS_X Installing Coot on OS X] page
    
==Installing Coot on Windows==
 
==Installing Coot on Windows==
Please refer to the [http://www.ysbl.york.ac.uk/~lohkamp/coot/wincoot-download.html WinCoot install and download] page.
+
Please refer to [https://github.com/bernhardcl/coot/releases Bernhard Lohkamp's WinCoot download] page.
    
==Installing Coot on Linux==
 
==Installing Coot on Linux==
Line 18: Line 21:  
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) [http://www.ysbl.york.ac.uk/%7Eemsley/coot/coot-faq.html Coot FAQ] to find "Additional Notes" for your operating system.
 
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) [http://www.ysbl.york.ac.uk/%7Eemsley/coot/coot-faq.html 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.
+
In short, just go to http://www.ysbl.york.ac.uk/~emsley/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/.
 
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/.
   Line 29: Line 32:  
==== Example: installing a 64bit nightly CentOS5 binary build on 64bit SL6.1 ====
 
==== 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.
 
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 downloaded ftp://turn5.biologie.uni-konstanz.de/coot/software/binaries/nightlies/pre-release/coot-0.7-pre-1-revision-3999-binary-Linux-x86_64-centos-5-python-gtk2.tar.gz (the main server was very slow, so I used the mirror). As root, I did "cd /usr/local/src" and un-tarred. Next, find out which libraries are missing:
+
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 src]# ldd coot-Linux-x86_64-centos-5-gtk2-python/bin/coot-real
+
  [root@localhost]# cd coot-Linux-x86_64-centos-5-gtk2-python
+
[root@localhost]# LD_LIBRARY_PATH=lib ldd bin/coot-real | grep found  
linux-vdso.so.1 =>  (0x00007ffffc5dd000)
  −
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x0000003dccc00000)
  −
libguilegtk-2.0.so.0 => not found
  −
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x0000003dcb400000)
  −
libguile.so.17 => not found
  −
libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x0000003dc8400000)
  −
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fc66033b000)
  −
libltdl.so.3 => not found
  −
libclipper-ccp4.so.2 => not found
  −
libclipper-cif.so.2 => not found
  −
libclipper-phs.so.2 => not found
  −
libclipper-contrib.so.2 => not found
  −
libclipper-minimol.so.2 => not found
  −
libclipper-cns.so.2 => not found
  −
libclipper-mmdb.so.2 => not found
  −
libclipper-core.so.2 => not found
  −
libccp4c.so.0 => not found
  −
librfftw.so.2 => not found
  −
libfftw.so.2 => not found
  −
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc66011b000)
  −
libssm.so.0 => not found
  −
libmmdb.so.0 => not found
  −
libpython2.7.so.1.0 => not found
  −
libutil.so.1 => /lib64/libutil.so.1 (0x00007fc65ff16000)
  −
libgtkglext-x11-1.0.so.0 => not found
  −
libgdkglext-x11-1.0.so.0 => not found
  −
libXmu.so.6 => /usr/lib64/libXmu.so.6 (0x0000003dcd800000)
  −
libXt.so.6 => /usr/lib64/libXt.so.6 (0x0000003dd8800000)
  −
libSM.so.6 => /usr/lib64/libSM.so.6 (0x0000003dd5c00000)
  −
libICE.so.6 => /usr/lib64/libICE.so.6 (0x0000003dd5800000)
  −
libpangox-1.0.so.0 => /usr/lib64/libpangox-1.0.so.0 (0x0000003dc9c00000)
  −
libglut.so.3 => not found
  −
libGL.so.1 => /usr/lib64/libGL.so.1 (0x0000003dd3000000)
  −
libGLU.so.1 => /usr/lib64/libGLU.so.1 (0x00007fc65fcb5000)
  −
libXext.so.6 => /usr/lib64/libXext.so.6 (0x0000003dcc400000)
  −
libX11.so.6 => /usr/lib64/libX11.so.6 (0x0000003dcb000000)
  −
libgnomecanvas-2.so.0 => /usr/lib64/libgnomecanvas-2.so.0 (0x0000003de0800000)
  −
libart_lgpl_2.so.2 => /usr/lib64/libart_lgpl_2.so.2 (0x0000003ddfc00000)
  −
libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x0000003dd1000000)
  −
libgsl.so.0 => not found
  −
libgslcblas.so.0 => not found
  −
libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00007fc65fa5f000)
  −
libidn.so.11 => /lib64/libidn.so.11 (0x0000003dd2c00000)
  −
librt.so.1 => /lib64/librt.so.1 (0x00007fc65f857000)
  −
libssl.so.6 => not found
  −
libcrypto.so.6 => not found
  −
libz.so.1 => /lib64/libz.so.1 (0x0000003dc9800000)
  −
libglade-2.0.so.0 => /usr/lib64/libglade-2.0.so.0 (0x0000003de0c00000)
  −
libgtk-x11-2.0.so.0 => /usr/lib64/libgtk-x11-2.0.so.0 (0x0000003dd1800000)
  −
libgdk-x11-2.0.so.0 => /usr/lib64/libgdk-x11-2.0.so.0 (0x0000003dd0800000)
  −
libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x0000003dd0c00000)
  −
libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x0000003dcf400000)
  −
libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x0000003dcf800000)
  −
libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x0000003dd2000000)
  −
libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x0000003dcfc00000)
  −
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x0000003dca800000)
  −
libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x0000003dcac00000)
  −
libdl.so.2 => /lib64/libdl.so.2 (0x00007fc65f64e000)
  −
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fc65f368000)
  −
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003dd4800000)
  −
libm.so.6 => /lib64/libm.so.6 (0x00007fc65f0e3000)
  −
libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x0000003dca000000)
  −
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003dd2800000)
  −
libc.so.6 => /lib64/libc.so.6 (0x00007fc65ed41000)
  −
libfreebl3.so => /lib64/libfreebl3.so (0x0000003dd5400000)
  −
/lib64/ld-linux-x86-64.so.2 (0x00007fc66058c000)
  −
libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003dd3400000)
  −
libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x0000003dd1400000)
  −
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x0000003dce800000)
  −
libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x0000003dd3800000)
  −
libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x0000003dd2400000)
  −
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x0000003dcbc00000)
  −
libgailutil.so.18 => /usr/lib64/libgailutil.so.18 (0x0000003ddec00000)
  −
libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x0000003dcc000000)
  −
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x0000003dcc800000)
  −
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x0000003dcd400000)
  −
libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x0000003ddc400000)
  −
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x0000003dd6800000)
  −
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x0000003dd6400000)
  −
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000003dd4c00000)
  −
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fc65eb38000)
  −
libssl3.so => /usr/lib64/libssl3.so (0x0000003dd9000000)
  −
libsmime3.so => /usr/lib64/libsmime3.so (0x0000003dd8c00000)
  −
libnss3.so => /usr/lib64/libnss3.so (0x0000003dd8400000)
  −
libnssutil3.so => /usr/lib64/libnssutil3.so (0x0000003dd8000000)
  −
libplds4.so => /lib64/libplds4.so (0x0000003dd7400000)
  −
libplc4.so => /lib64/libplc4.so (0x0000003dd7c00000)
  −
libnspr4.so => /lib64/libnspr4.so (0x0000003dd7000000)
  −
libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x0000003ddc800000)
  −
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fc65e7e4000)
  −
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x0000003dce000000)
  −
libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x0000003dcec00000)
  −
libXi.so.6 => /usr/lib64/libXi.so.6 (0x0000003dcdc00000)
  −
libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x0000003dce400000)
  −
libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x0000003dcf000000)
  −
libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x0000003dd0000000)
  −
libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x0000003dd0400000)
  −
libXau.so.6 => /usr/lib64/libXau.so.6 (0x0000003dcb800000)
  −
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fc65e5c6000)
  −
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fc65e3a7000)
  −
libexpat.so.1 => /lib64/libexpat.so.1 (0x0000003dcd000000)
  −
liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x0000003ddbc00000)
  −
libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x0000003dda400000)
  −
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x0000003dd6000000)
  −
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fc65e1a3000)
  −
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007fc65df48000)
  −
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007fc65dbae000)
  −
 
  −
So most of the libraries are there, but 24 are missing ("not found"). Out of those, 20 are in coot-Linux-x86_64-centos-5-gtk2-python/lib ! This can be see by (''do not permanently modify LD_LIBRARY_PATH !''):
  −
  −
  [root@localhost src]# LD_LIBRARY_PATH=coot-Linux-x86_64-centos-5-gtk2-python/lib ldd coot-Linux-x86_64-centos-5-gtk2-python/bin/coot-real | grep found  
   
  libssl.so.6 => not found
 
  libssl.so.6 => not found
 
  libcrypto.so.6 => not found
 
  libcrypto.so.6 => not found
Line 148: Line 40:  
  libcrypto.so.6 => not found
 
  libcrypto.so.6 => not found
   −
So actually only two libraries are missing! Either they can be installed using yum, or they are already available, but have a higher version. Find out:
+
So only two libraries are missing! Either they can be installed using yum, or they are already available, but have a higher version.
  [root@localhost  src]# yum provides libssl.so.6
+
* 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
 
  Loaded plugins: refresh-packagekit
 
  openssl098e-0.9.8e-17.el6.i686 : A compatibility version of a general
 
  openssl098e-0.9.8e-17.el6.i686 : A compatibility version of a general
Line 156: Line 50:  
  Matched from:
 
  Matched from:
 
  Other      : libssl.so.6
 
  Other      : libssl.so.6
   
+
  ... (the package is repeated, and libcrypto.so.6 is also mentioned)
Now don't just install this and its dependencies - it is a 32bit library (the name ends with ".i686")! Installing it doesn't hurt, but it does not solve the problem, either - we need a 64bit library. '''If there were a 64bit library package we would like to install this, using "yum install libssl.so.6" .'''
+
: 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!
   −
Rather, find out what the system already has - omit the version:
+
* Second possibility: find out if the system already has a higher version of the two libraries:
 
  [root@localhost locate libssl.so
 
  [root@localhost locate libssl.so
 
  /usr/lib64/.libssl.so.1.0.0.hmac
 
  /usr/lib64/.libssl.so.1.0.0.hmac
Line 167: Line 63:  
  /usr/lib64/libssl.so.10
 
  /usr/lib64/libssl.so.10
   −
So the answer is: there is /usr/lib64/libssl.so which is actually at version 10, which is compatible with the version we need (6). For libcrypto.so this works the same way. So just  
+
: 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 cd coot-Linux-x86_64-centos-5-gtk2-python/lib/
+
  cd coot-Linux-x86_64-centos-5-gtk2-python/lib/
 
  ln -s /usr/lib64/libssl.so libssl.so.6
 
  ln -s /usr/lib64/libssl.so libssl.so.6
 
  ln -s /usr/lib64/libcrypto.so libcrypto.so.6
 
  ln -s /usr/lib64/libcrypto.so libcrypto.so.6
The way these symlinks are made this will even work if RHEL upgrades libssl to higher versions.
+
: The way these symlinks are made they would even work if RHEL upgrades libssl or libcrypto to higher versions. Works for me.
 
  −
Now we're all set - enjoy coot.
  −
 
  −
=== Installation on Debian/Ubuntu from debian archive files ===
  −
As an alternative, you might wish to exploit the debain dpkg/apt/synaptic package management system on Ubuntu and other Debian linux distributions using (unofficial)
  −
[http://diablo.ucsc.edu/~wgscott/debian/coot_hardy/  pre-compiled debian packages for coot and its dependencies]. (These will be discontinued when official packages become available.)
  −
 
  −
To do so, simply download the deb files and install with the command
  −
 
  −
sudo dpkg -i *.deb
  −
 
  −
dpkg will complain if a dependency is missing rather than install a broken program.
  −
 
  −
=== Packages for Ubuntu ===
  −
 
  −
A pre-packaged version of Coot (0.7-pre-1) for Ubuntu is available from mok0's Personal Package Archive (PPA) on Launchpad. Currently, packages for Ubuntu 10.04 (Lucid) and 10.10 (Maverick) are available.
  −
 
  −
To install the coot package on your system, you first need to install the public key for mok0's PPA:
  −
 
  −
  sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1DC81A57
  −
 
  −
Next, add the PPA repository to your /etc/apt/sources.list file:
  −
 
  −
  sudo add-apt-repository ppa:mok0/ppa
  −
 
  −
That's it! Now, you should be able to:
  −
 
  −
  apt-get update && apt-get install coot
  −
 
  −
This version of Coot only supports the Python scripting language.
  −
 
  −
=== Mandriva Installation ===
  −
 
  −
To install the coot on Mandriva 2010.0 use the ubuntu distribution:
  −
tar zxf coot-0.6.2-binary-Linux-i686-ubuntu-8.04.1-python-gtk2.tar.gz
  −
 
  −
in the .cshrc file:
  −
alias coot  'source /prog/CCP4/ccp4-6.1.13/include/ccp4.setup-csh ; /prog/coot-Linux-i686-ubuntu-8.04.1-gtk2-python/bin/coot'
  −
 
     −
=== Converting to rpm packages ===
+
Final step (this does not need to be repeated for a new coot version): create /usr/local/bin/coot with
You can convert any debian package file into an rpm file using the program ''alien''. I have done this and have made the [http://diablo.ucsc.edu/~wgscott/debian/rpm/coot/ resulting packages] available.
+
#!/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 from source code via autobuild scripts ===
Line 247: Line 108:  
===Controls===
 
===Controls===
   −
[[Image:Coot-controls-small.png|200px]]
+
[[Image:Coot-controls-small.png]]
      Line 265: Line 126:     
[[Image:a_zalman_zm_m220w__2d_35_pic.jpg|150px|thumb|right|3d lcd]]
 
[[Image:a_zalman_zm_m220w__2d_35_pic.jpg|150px|thumb|right|3d lcd]]
 +
 +
Control stereo separation / depth in coot 0.9: the transformation between the eyes is no longer a rotation and is now a shear. Which means that now we don't get part of the map showing up in the left eye but not the right (or vice versa).
 +
 +
This is documented in Section 3.4.1, e.g.
 +
 +
set_hardware_stereo_angle_factor(0.5) # for the Python fans
 +
 +
Hardware stereo failure: try the line
 +
(set-display-lists-for-maps 0)
 +
 +
in ~/.coot for coot 0.9 - see https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ind2002&L=COOT&P=R312 and https://www.jiscmail.ac.uk/cgi-bin/wa-jisc.exe?A2=COOT;49fa8d15.2006
    
==== Zalman Stereo ====
 
==== Zalman Stereo ====
Line 275: Line 147:     
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.
 
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.
    
===External Links===
 
===External Links===
====[http://www.ysbl.york.ac.uk/~emsley/coot/doc/user-manual.html On-line User Manual]====
+
====[https://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/web/docs/coot.html On-line User Manual]====
====[http://www.ysbl.york.ac.uk/~emsley/coot/ Coot's home page]====
+
====[https://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/ Coot's home page]====
 
====[http://www.mail-archive.com/coot@jiscmail.ac.uk/ Current mailing list archives]====
 
====[http://www.mail-archive.com/coot@jiscmail.ac.uk/ Current mailing list archives]====
  −
====[http://www.ysbl.york.ac.uk/~emsley/coot/mbox/ Mailing list archives: (no longer) current]====
  −
  −
====[http://www.ysbl.york.ac.uk/~emsley/coot/mbox-2004-2005/ Mailing list archives: 2004-05]====
      
==Scheme Scripts==
 
==Scheme Scripts==
Line 439: Line 319:     
[[yellowify_molecule_keys.py]]
 
[[yellowify_molecule_keys.py]]
 +
 +
===Example 3: NCS Rotamer differences===
 +
 +
To show NCS where NCS-related side-chains have different rotamers:
 +
 +
[[ncs_rotamer_differences.py]]
 +
 +
===Example 4: Morphing GUI===
 +
 +
GUI to easily access jiggle fit and morphing (currently pre-release Coot required, may be moved into trunk):
 +
 +
[[morph_residues_gui.py]]
 +
 +
===Example 5: Ensemble GUI===
 +
 +
GUI to allow navigation through structural ensembles as obtained e.g. from ensemble refinement:
 +
 +
[[ensemble_plugin.py]]
    
==Python to Scheme and return==
 
==Python to Scheme and return==
Line 452: Line 350:  
Here some simple rules how to translate from Scheme to Python. To translate the other way around, i.e. Python to Scheme, just turn the rules around:
 
Here some simple rules how to translate from Scheme to Python. To translate the other way around, i.e. Python to Scheme, just turn the rules around:
   −
# replace all '-' with '_' (except in equation when you need arithmetic '-' minus signs)
+
# Replace all '-' with '_' (except in equation when you need arithmetic '-' minus signs)
# move the brackets around the argument(s)
+
# Move the brackets around the argument(s)
# separate multiple arguments by commas rather than spaces
+
# Separate multiple arguments by commas rather than spaces
# replace 'define' for functions with 'def' and for assignments with an '='
+
# Replace 'define' with 'def' for functions and with '=' for assignments
 
# Make sure to use indentation for the function content [Python is indentation sensitive] and a ':' after the function definition.
 
# Make sure to use indentation for the function content [Python is indentation sensitive] and a ':' after the function definition.
   Line 520: Line 418:  
A: Join the [[Coot Janitors]] project. This is a project to get new people involved in improving Coot, by acting as a clearing house for simple tasks which need doing, and providing documentation for doing them.
 
A: Join the [[Coot Janitors]] project. This is a project to get new people involved in improving Coot, by acting as a clearing house for simple tasks which need doing, and providing documentation for doing them.
    +
 +
== Get rid of the "fix nomenclature" check ==
 +
Q: Is it possible to deactivate the nomenclature errors check? Sometimes this check is not very useful and it becomes rather annoying when one has several molecules loaded only wants to look at the structures...
 +
 +
A: The [https://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/web/docs/coot.html#set_002dnomenclature_002derrors_002don_002dread Coot manual] should help: Add to your ~/.coot or whatever:
 +
(set-nomenclature-errors-on-read "ignore")
 +
In case you are using the python file, e.g. “.coot.py”, I think you have to change this to “set_nomenclature_errors_on_read ignore”.
    
==NCS edits==  
 
==NCS edits==  
Line 547: Line 452:     
A: Yes this fails.  Hydrogens are named differently to SHELX hydrogens.  In principal this could be made to work if the dictionary was reworked to use SHELX hydrogen names.  This would also fix the chi angles problem too of course.
 
A: Yes this fails.  Hydrogens are named differently to SHELX hydrogens.  In principal this could be made to work if the dictionary was reworked to use SHELX hydrogen names.  This would also fix the chi angles problem too of course.
 +
 +
Specific Q3: I am unable to open the output pdb file from ShelXL in Coot.
 +
 +
A: Well, it's hard to know what's the problem without details - the console should say something. But when handling the output of shelxl, I suggest you read the .res file rather than the pdb, then the subsequent .ins file contains lots of "header" information.
 +
 +
Another answer to questions 1+2 is to rename the hydrogen atoms in the shelxl res-file to match the mmCIF dictionaries used by Coot. This only needs to be done once as shelxl does not modify these names. Except for a few manual editions, the renaming can be done semi-automatically using regular expressions (replacing A->1, B->2, etc).
 +
 +
Concerning question 3, the Coot -> Extensions -> Module -> SHELXL menu entry works really well now. It reads in all relevant shelxl files and provides a menu highlighting the problematic areas in the model.
    
==Image quality on NVidia cards==
 
==Image quality on NVidia cards==
Line 611: Line 524:     
A: The other language is a form of Lisp, called [http://en.wikipedia.org/wiki/Scheme_(programming_language) Scheme]. You can learn about programming python in many ways of course (not least the [http://docs.python.org/tutorial/ python tutorial], which is what I read first). The coot python extensions are described in the documentation. There is a standard trivial formatting change that has to be made to get the syntax right for python, see "Python Scripting" [[http://www.ysbl.york.ac.uk/~lohkamp/coot/wincoot-faq.html|here]]. There is a growing collection of coot scripts in this Wiki article.
 
A: The other language is a form of Lisp, called [http://en.wikipedia.org/wiki/Scheme_(programming_language) Scheme]. You can learn about programming python in many ways of course (not least the [http://docs.python.org/tutorial/ python tutorial], which is what I read first). The coot python extensions are described in the documentation. There is a standard trivial formatting change that has to be made to get the syntax right for python, see "Python Scripting" [[http://www.ysbl.york.ac.uk/~lohkamp/coot/wincoot-faq.html|here]]. There is a growing collection of coot scripts in this Wiki article.
 +
 +
== building loops ==
 +
 +
Q: Is there any similar function in COOT as lego_auto_mainchain command in O program?
 +
 +
A: there are 2 loop fitting tools in Coot
 +
 +
# C alpha -> Mainchain [http://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/web/docs/coot.html#C_002dalpha-_002d_003e-Mainchain],[http://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/web/docs/coot.html#Building-Links-and-Loops]
 +
# DB Loop: (No good documentation) [http://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/web/docs/coot.html#protein_002ddb_002dloops] Extensions -> Modelling -> DB Loop...
    
==LSQ superpositions==
 
==LSQ superpositions==
Line 659: Line 581:  
   
 
   
 
  (add-key-binding "Dynamic LSQ overlay" "Y" dynamic-lsq-match)
 
  (add-key-binding "Dynamic LSQ overlay" "Y" dynamic-lsq-match)
 +
 +
== reading MTZ file with experimental PHI and FOM using --auto ==
 +
 +
Q:  There is the --auto <filename> commandline option for auto-reading mtz files (mtz file has the default labels FWT, PHWT). Can this be made to work with a SHELXE .phs output file after converting with convert2mtz ? - the resulting MTZ file has labels F PHI FOM.
 +
 +
A: use: coot --python -c 'make_and_draw_map("sad.mtz", "F", "PHI", "FOM", "/HKL_base/HKL_base/FOM",1, 0)'
 +
 +
== NCS Rotamer differences ==
 +
 +
Show me where NCS-related side-chains have different rotamers
 +
 +
 
 +
(define (compare-ncs-rotamer imol chain-A chain-B)
 +
  (let ((n-residues (chain-n-residues chain-A imol))
 +
        (mismatched-rotamers '()))
 +
    (for-each
 +
    (lambda (serial-number)
 +
     
 +
      (let ((res-name-A (resname-from-serial-number imol chain-A serial-number))
 +
            (res-no-A  (seqnum-from-serial-number  imol chain-A serial-number))
 +
            (ins-code-A (insertion-code-from-serial-number imol chain-A serial-number))
 +
            (res-name-B (resname-from-serial-number imol chain-A serial-number))
 +
            (res-no-B  (seqnum-from-serial-number  imol chain-A serial-number))
 +
            (ins-code-B (insertion-code-from-serial-number imol chain-A serial-number)))
 +
        (if (not (= res-no-A res-no-B))
 +
            (begin
 +
              (format #t "sequence number for ~s do not match~%" res-no-A))
 +
            (if (not (string=? res-name-A res-name-B))
 +
                (begin
 +
                  (format #t "residue names for ~s do not match~%" res-no-A))
 +
                (let ((rot-name-A (get-rotamer-name imol chain-A res-no-A ins-code-A))
 +
                      (rot-name-B (get-rotamer-name imol chain-B res-no-B ins-code-B)))
 +
                  (if (not (string=? rot-name-A rot-name-B))
 +
                      (begin
 +
                        (set! mismatched-rotamers
 +
                              (cons (list imol chain-A res-no-A ins-code-A
 +
                                          res-name-A
 +
                                          (if (string=? rot-name-A "") "-" rot-name-A)
 +
                                          (if (string=? rot-name-B "") "-" rot-name-B))
 +
                                    mismatched-rotamers))))
 +
                  )))))
 +
    (range n-residues))
 +
    (dialog-box-of-buttons "Mismatched Rotamers"
 +
                          (cons 300 300)
 +
                          (map (lambda(rotamer)
 +
                                  (let ((label (string-append " "
 +
                                                              (list-ref rotamer 1)
 +
                                                              " "
 +
                                                              (number->string (list-ref rotamer 2))
 +
                                                              (list-ref rotamer 3)
 +
                                                              " "
 +
                                                              (list-ref rotamer 4) ;; res-name
 +
                                                              ":  "
 +
                                                              (list-ref rotamer 5)
 +
                                                              " vs. "
 +
                                                              (list-ref rotamer 6)))
 +
                                        (thunk (lambda ()
 +
                                                (set-go-to-atom-molecule imol)
 +
                                                (set-go-to-atom-chain-residue-atom-name
 +
                                                  (list-ref rotamer 1)
 +
                                                  (list-ref rotamer 2) " CA "))))
 +
                                    (list label thunk)))
 +
                                mismatched-rotamers)
 +
                          "  Close  ")))
 +
 +
 +
 +
And one would use this something like:
 +
 +
;; example usage:
 +
(let ((imol (read-pdb "test.pdb")))
 +
  (compare-ncs-rotamer imol "A" "B"))
 +
 +
== make RSR in coot 0.8.1 behave like in earlier versions ==
 +
 +
Q: We've noticed a new behavior in real space refinement in coot 0.8.1 whereby dragged atoms are more tightly restrained to their initial positions than in earlier versions. This seems to be described in the release notes by:
 +
 +
  o BUG-FIX: The amount that the other atoms ove with moving the picked atom has been reduced (but is configurable)
 +
 +
A: Add e.g. this to your ~/.coot.py file:
 +
 +
set_refinement_drag_elasticity(0.8)
 +
 +
Q: I'm wondering why this was changed. Does the optimum elasticity change with resolution, map quality, or another experimental limitation? Or does it more of a user preference?
 +
 +
A: Because of cis-peptides. My worry was that in the previous regime, it was
 +
too easy to introduce cis-peptides when fitting to low resolution maps. 
 +
I believe the current default setting is much less likely to do that.
 +
 +
Q: I've tried various settings of refinement_drag_elasticity and I need to lower it to 0.5 or so before any semblance of earlier behavior appears.
 +
 +
A: It used to be 0.167, I think.
 +
 +
== Molprobity not active in COOT ==
 +
 +
Q: I am using COOT 0.8.1 EL that comes with the CCP4 6.5.010 on my Mac OS X 10.10.2. I wanted to run molprobity but the Validate > Probe clashes button in my pull down menu is not active. Is this function available in this COOT version?
 +
 +
A: Reduce and probe are separate programs available from the Richardson’s lab at Duke http://kinemage.biochem.duke.edu/. Download and install on your box. Then coot needs to be told in some instances where it can find these executables. I have the following lines in my ~/.coot file in Linux.
 +
 +
<pre>
 +
;; .coot
 +
;; This file is required. As of coot 0.8pre no other mechanism for
 +
;; enabling probe in coot works
 +
;;
 +
;; This is full pathname of molprobity's probe program
 +
(define *probe-command* "/apps/xray/bin/probe")
 +
;; This is full pathname of molprobity's reduce program
 +
(define *reduce-command* "/apps/xray/bin/reduce")
 +
</pre>
 +
Untried: if you have Phenix installed: it comes with phenix.probe and phenix.reduce - you could insert the paths to these binaries into the above definitions.
 +
 +
== some symmetry mates not shown ==
 +
 +
Q: This structure has been solved and refined using phenix in the hexagonal setting of space group R 3. There is one copy per asymmetric unit in R 3. As you can see from the attached image, coot is rendering some but not all of the symmetry mates.
 +
 +
A: Turn up the radius a bit and use (set-symmetry-shift-search-size 3) . I would have thought that 2 is big enough, but maybe not in this case.
 +
 +
 +
== specify Coot download directory, like specifying backup dir by COOT_BACKUP_DIR? ==
 +
 +
here is my working startup.py (of course replace src folder with your preferred location):
 +
import os
 +
 +
try:
 +
    os.symlink('/ccp4/xray/tmp/', 'coot-download')
 +
except:
 +
    pass
 +
 +
(Eugene Osipov on 22/04/2020 14:43)
1,305

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu