Installation: Difference between revisions
No edit summary |
m →other programs: XDS-viewer, XDSSTAT, XDSCC12, XDSGUI, XSCALE_ISOCLUSTER, generate_XDS.INP: update and simplify |
||
(24 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This article has information that should ease the installation of XDS and related programs like ([[XDS-viewer]], [[xdsstat]], [[XDSGUI|xdsgui]]). | This article has information that should ease the installation of XDS and related programs like ([[XDS-viewer]], [[xdsstat]], [[XDSGUI|xdsgui]]). Generally, it is easiest if binaries (or links to binaries) go to /usr/local/bin . This means that you should do this as the administrator (root), or have sudo rights (Mac, and some Linux distros). But it is mostly possible to install without administrative privileges - the exception is XDSGUI on Linux which may require installation of certain libraries by the administrator. | ||
Line 6: | Line 6: | ||
=== [[XDS]] package === | === [[XDS]] package === | ||
If you are an academic user, as root (on Ubuntu, use "sudo -i" to become root) | If you are an academic user, as root (on Ubuntu, use "sudo -i" as a separate command, to become root): | ||
<pre> | <pre> | ||
cd /usr/local/bin | cd /usr/local/bin | ||
wget --no-check-certificate -O- https://xds.mr.mpg.de/XDS-INTEL64_Linux_x86_64.tar.gz | tar xzvf - | wget --no-check-certificate -O- https://xds.mr.mpg.de/XDS-gfortran_Linux_x86_64.tar.gz | tar xzvf - | ||
ln -sf XDS-gfortran_Linux_x86_64/* . | |||
# until 2025-05-02 the XDS tarfile for Linux had a different name: | |||
# wget --no-check-certificate -O- https://xds.mr.mpg.de/XDS-INTEL64_Linux_x86_64.tar.gz | tar xzvf - | |||
# ln -sf XDS-INTEL64_Linux_x86_64/* . | |||
</pre> | </pre> | ||
In case the above website is unavailable, there is a [https://{{SERVERNAME}}/pub/xds backup site]. | In case the above website is unavailable, there is a [https://{{SERVERNAME}}/pub/xds backup site]. | ||
If you don't have root rights, replace /usr/local/bin by $HOME/bin in the first line above, and make sure that $HOME/bin is in your $PATH (google "linux set path" or similar). | |||
If you want to process data from the [[Eiger]] detector: see below for plugins that allow XDS to read the .h5 files. Similarly for gzip-ed CBF files as mostly collected at EMBL Hamburg. | If you want to process data from the [[Eiger]] detector: see below for plugins that allow XDS to read the .h5 files. Similarly for gzip-ed CBF files as mostly collected at EMBL Hamburg. | ||
Line 18: | Line 23: | ||
=== other programs: [[XDS-Viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]], [[spot2pdb]], [[generate_XDS.INP]] === | === other programs: [[XDS-Viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]], [[spot2pdb]], [[generate_XDS.INP]] === | ||
... can be downloaded from https://{{SERVERNAME}}/pub/linux_bin/ . A simple way to obtain them is to create an empty folder, "cd" to that folder and then | ... can be downloaded from https://{{SERVERNAME}}/pub/linux_bin/ . A simple way to obtain them is to create an empty folder, "cd" to that folder and then | ||
wget -N https://{{SERVERNAME}}/pub/linux_bin/get_folder.sh | wget --no-check-certificate -N https://{{SERVERNAME}}/pub/linux_bin/get_folder.sh | ||
chmod +x get_folder.sh | chmod +x get_folder.sh | ||
./get_folder.sh | ./get_folder.sh | ||
Line 24: | Line 29: | ||
As root, the script copies the programs into /usr/local/bin/linux_bin, and links them to /usr/local/bin. As a normal user, they are downloaded to $HOME/bin/linux_bin, and linked to your $HOME/bin. In the latter case, make sure that $HOME/bin is in your $PATH. | As root, the script copies the programs into /usr/local/bin/linux_bin, and links them to /usr/local/bin. As a normal user, they are downloaded to $HOME/bin/linux_bin, and linked to your $HOME/bin. In the latter case, make sure that $HOME/bin is in your $PATH. | ||
Although CCP4 is not required by XDS, XSCALE or XDSGUI, some of the programs (namely XDSSTAT, and MTZ file creation in XDSCONV) need its tools (F2MTZ, ...) or libraries, or run its programs (POINTLESS and COOT can be run from XDSGUI). Therefore, CCP4 should be installed. | |||
=== tools and helper programs for [[generate_XDS.INP]] and [[XDSGUI]], and libraries === | === tools and helper programs for [[generate_XDS.INP]] and [[XDSGUI]], and libraries === | ||
Line 29: | Line 36: | ||
* helper programs for [[XDSGUI]] are listed and discussed at [[XDSGUI#Dependencies]]. Nota bene: XDSGUI needs [[generate_XDS.INP]] unless you already have a working XDS.INP. | * helper programs for [[XDSGUI]] are listed and discussed at [[XDSGUI#Dependencies]]. Nota bene: XDSGUI needs [[generate_XDS.INP]] unless you already have a working XDS.INP. | ||
Since XDSGUI depends on graphics packages that may need to be installed, you can check the xdsgui binary with | Since XDSGUI depends on graphics packages that may need to be installed (by root), you can check the xdsgui binary with | ||
ldd `which xdsgui` | grep found | ldd `which xdsgui` | grep found | ||
and that should show you the libraries it didn't find. Your friendly system administrator knows the specific commands to install those libraries. | and that should show you the libraries it '''didn't''' find. Your friendly system administrator knows the specific commands to install those libraries. | ||
N.B. this may list libpng15.so for the latest XDSGUI (compiled May 2023), but you can ignore that! | N.B. this may list libpng15.so for the latest XDSGUI (compiled May 2023), but you can ignore that! | ||
Line 45: | Line 52: | ||
sudo apt-file update | sudo apt-file update | ||
On Ubuntu, XDSGUI may require <code>sudo apt install libxcb-xinerama0</code> | |||
On Ubuntu, | |||
<code>xxdiff</code> is likely available for your distribution - google for it, or try e.g. | <code>xxdiff</code> is likely available for your distribution - google for it, or try e.g. | ||
Line 53: | Line 58: | ||
on RHEL6/CentOS6/SL6 systems, or | on RHEL6/CentOS6/SL6 systems, or | ||
apt install xxdiff | apt install xxdiff | ||
on Ubuntu. If Ubuntu | on Ubuntu. If Ubuntu doesn't find it, use the latest from http://archive.ubuntu.com/ubuntu/pool/universe/x/xxdiff/ | ||
An <code>xxdiff</code> binary that runs on CentOS7 (RHEL7, SL7) is provided by the <code>get_folder.sh</code> script. | An <code>xxdiff</code> binary that runs on CentOS7 (RHEL7, SL7) is provided by the <code>get_folder.sh</code> script. | ||
Line 70: | Line 75: | ||
sudo mkdir /usr/local/bin | sudo mkdir /usr/local/bin | ||
As an alternative that does not require root for installation, one may create a directory $HOME/bin and use that for the programs and links. Also, this requires modification of the $PATH, by a one-time | '''As an alternative that does not require root for installation''', one may create a directory $HOME/bin and use that for the programs and links. Also, this requires modification of the $PATH, by a one-time | ||
mkdir $HOME/bin | mkdir $HOME/bin | ||
echo 'export PATH=$PATH:$HOME/bin' >> ~/.zprofile | echo 'export PATH=$PATH:$HOME/bin' >> ~/.zprofile | ||
Line 79: | Line 84: | ||
# obtain root privileges (it will ask for your password): | # obtain root privileges (it will ask for your password): | ||
sudo su | sudo su | ||
if [ ! -e /usr/local/bin ]; then mkdir /usr/local/bin; fi | |||
cd /usr/local/bin | cd /usr/local/bin | ||
# if the next command produces an error message, use the --insecure option | |||
curl -L -o - https://xds.mr.mpg.de/XDS-OSX_64.tar.gz | tar xzvf - | curl -L -o - https://xds.mr.mpg.de/XDS-OSX_64.tar.gz | tar xzvf - | ||
ln -sf XDS-OSX_64/* . | ln -sf XDS-OSX_64/* . | ||
Line 104: | Line 111: | ||
# become root (it will ask for your password): | # become root (it will ask for your password): | ||
sudo su | sudo su | ||
now enter the password, and then | |||
if [ ! -e /usr/local/bin ]; then mkdir /usr/local/bin; fi | |||
cd /usr/local/bin | cd /usr/local/bin | ||
curl -L -o - https://xds.mr.mpg.de/XDS-Apple_M1.tar.gz | tar xzvf - | # if the next command produces an error message, use the --insecure option | ||
ln -sf XDS-Apple_M1/* . | curl -L -o - https://xds.mr.mpg.de/XDS-Apple_M1.tar.gz | tar xzvf - | ||
ln -sf XDS-Apple_M1/* . | |||
exit | exit | ||
Line 120: | Line 129: | ||
See [[Installation#other_programs:_XDS-viewer,_XDSSTAT,_XDSCC12,_XDSGUI,_XSCALE_ISOCLUSTER,_generate_XDS.INP|below]] for installation of these .so files. | See [[Installation#other_programs:_XDS-viewer,_XDSSTAT,_XDSCC12,_XDSGUI,_XSCALE_ISOCLUSTER,_generate_XDS.INP|below]] for installation of these .so files. | ||
=== Prerequisites (Xcode, CCP4) for [[generate_XDS.INP]], [[XDSGUI]] and other programs === | === Prerequisites (Xcode, CCP4, xxdiff) for [[generate_XDS.INP]], [[XDSGUI]] and other programs === | ||
[[generate_XDS.INP]] requires the [https://developer.apple.com/download/more/ Xcode command line tools] to be installed (free of charge): open a Terminal window, and enter <code>sudo xcode-select --install</code> (the download has a size of about 750MB; the downloader is much too pessimistic about the time it takes). | [[generate_XDS.INP]] requires the [https://developer.apple.com/download/more/ Xcode command line tools] to be installed (free of charge): open a Terminal window, and enter <code>sudo xcode-select --install</code> (the download has a size of about 750MB; the downloader is much too pessimistic about the time it takes). | ||
Although CCP4 is not required by XDS | Although CCP4 is not required by XDS, XSCALE or XDSGUI, some of the programs (namely XDSSTAT, and MTZ file creation in XDSCONV) need its tools (F2MTZ, ...) or libraries, or run its programs (POINTLESS, COOT can be run from XDSGUI). Therefore, CCP4 should be installed. Open a Terminal and check the existence of the file .zprofile , and its content:<pre> | ||
kay@Kays-MacBook-Air-2018 ~ % ls -l .zprofile | kay@Kays-MacBook-Air-2018 ~ % ls -l .zprofile | ||
-rw-r--r-- 1 kay staff 107 7 Mär 09:41 .zprofile | -rw-r--r-- 1 kay staff 107 7 Mär 09:41 .zprofile | ||
Line 129: | Line 138: | ||
source $HOME/.profile | source $HOME/.profile | ||
# Added by CCP4 package manager: | # Added by CCP4 package manager: | ||
. '/Applications/ccp4- | source '/Applications/ccp4-8.0/bin/ccp4.setup-sh' | ||
# or | |||
source '/Applications/ccp4-9/bin/ccp4.setup-sh' | |||
</pre>If the file does not exist, create it - the easiest way is: | </pre>If the file does not exist, create it - the easiest way is: | ||
<pre> | <pre> | ||
echo | echo source /Applications/ccp4-8.0/bin/ccp4.setup-sh >> $HOME/.zprofile | ||
# or | # or | ||
echo | echo source /Applications/ccp4-9/bin/ccp4.setup-sh >> $HOME/.zprofile | ||
# depending on which CCP4 version you have installed | # depending on which CCP4 version you have installed | ||
</pre>The <code>get_folder.sh</code> script (below) checks the CCP4 setup, and creates the necessary files if needed. | </pre>The <code>get_folder.sh</code> script (below) checks the CCP4 setup, and creates the necessary files if needed. | ||
Only Terminal windows that are opened afterwards will have access to the CCP4 programs! | Only Terminal windows that are opened afterwards will have access to the CCP4 programs! | ||
Lastly, it is useful (for e.g. XDSGUI) to install <code>xxdiff</code> . This is available from https://furius.ca/xxdiff/ , but is also [https://{{SERVERNAME}}/pub/mac_bin/xxdiff-4.0b1.osx.dmg here]. I had to go to System Preferences > Security & Privacy > Privacy and add <code>xxdiff</code> to the programs with full disk access. Therefore, the DMG file is downloaded by the get_folder.sh or get_folder_silicon.sh script, but not installed by the script - pls do that manually. | |||
=== other programs: [[XDS-viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]], [[generate_XDS.INP]] === | === other programs: [[XDS-viewer]], [[XDSSTAT]], [[XDSCC12]], [[XDSGUI]], [[XSCALE_ISOCLUSTER]], [[generate_XDS.INP]] === | ||
Line 147: | Line 162: | ||
mkdir -p /usr/local/bin/mac_bin | mkdir -p /usr/local/bin/mac_bin | ||
cd /usr/local/bin/mac_bin | cd /usr/local/bin/mac_bin | ||
# if the next command produces an error message, use the --insecure option | |||
curl -O -R https://{{SERVERNAME}}/pub/mac_bin/get_folder.sh | curl -O -R https://{{SERVERNAME}}/pub/mac_bin/get_folder.sh | ||
chmod +x get_folder.sh | chmod +x get_folder.sh | ||
Line 154: | Line 170: | ||
mkdir -p /usr/local/bin/mac_bin | mkdir -p /usr/local/bin/mac_bin | ||
cd /usr/local/bin/mac_bin | cd /usr/local/bin/mac_bin | ||
# if the next command produces an error message, use the --insecure option | |||
curl -O -R https://{{SERVERNAME}}/pub/mac_bin/get_folder_silicon.sh | curl -O -R https://{{SERVERNAME}}/pub/mac_bin/get_folder_silicon.sh | ||
chmod +x get_folder_silicon.sh | chmod +x get_folder_silicon.sh | ||
Line 160: | Line 177: | ||
exit | exit | ||
If you want to update the programs some time later, just run these commands again. | If you want to update the programs some time later, just run these commands again. | ||
If curl prints a certificate-related error message, use the -k or --insecure option. | |||
In order to enable [[Eiger]] data processing, the <code>get_folder.sh</code> (or <code>get_folder_silicon.sh</code>) script | In order to enable [[Eiger]] data processing, the <code>get_folder.sh</code> (or <code>get_folder_silicon.sh</code>) script | ||
# copies Dectris' Neggia library and DLS's Durin library into <code>/usr/local/lib64</code> . NOTE that the names of the native libraries for the Apple Silicon Macs ends with *-Apple-arm64.so | # copies Dectris' Neggia library and DLS's Durin library into <code>/usr/local/lib64</code> . NOTE that the names of the native libraries for the Apple Silicon Macs ends with *-Apple-arm64.so . | ||
# copies [https://www.globalphasing.com GlobalPhasing's] <code>hdf2mini-cbf</code> into <code>/usr/local/bin</code>, but under the name <code>H5ToXds</code> (consider getting a [https://www.globalphasing.com/autoproc/ autoPROC] license!) | # copies [https://www.globalphasing.com GlobalPhasing's] <code>hdf2mini-cbf</code> into <code>/usr/local/bin</code>, but under the name <code>H5ToXds</code> (consider getting a [https://www.globalphasing.com/autoproc/ autoPROC] license!) | ||
# copies <code>h5dump</code> [https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.1/bin/unix/hdf5-1.12.1-Std-macos11_64-clang.tar.gz] into <code>/usr/local/bin</code> | # copies <code>h5dump</code> [https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.1/bin/unix/hdf5-1.12.1-Std-macos11_64-clang.tar.gz] into <code>/usr/local/bin</code> | ||
For XDSGUI, you have a choice between the version for Intel Macs and that for Silicon Macs. Both do work on Silicon Macs, except for the plugin libraries - for these, the correct version (ending with -Apple-arm64.so) must be used together with xdsgui_mac_silicon. | For XDSGUI, you have a choice between the version for Intel Macs and that for Silicon Macs. Both do work on Silicon Macs, except for the plugin libraries - for these, the correct version (ending with -Apple-arm64.so) must be used together with xdsgui_mac_silicon. | ||
=== Troubleshooting === | === Troubleshooting === | ||
Line 185: | Line 199: | ||
A quick way is also | A quick way is also | ||
which generate_XDS.INP xdsgui xds xds-viewer xdsstat | which generate_XDS.INP xdsgui xds xds-viewer xdsstat coot | ||
and this should return a line for each of the programs asked for. | and this should return a line for each of the programs asked for. | ||
== Windows == | == Windows == | ||
The programs of the [[XDS]] package as well as [[XDSGUI]], [[XDSSTAT]], [[XDSCC12]] and so on may be run on 64bit Windows 10 within the [https://docs.microsoft.com/windows/wsl/install-win10 Linux Subsystem for Windows] (WSL, or preferably WSL2). This (easily!) installs e.g. an [https://ubuntu.com/wsl Ubuntu] environment, which supports the apt package manager, so in principle any software available for Ubuntu may be installed (or other distros, see [https://blogs.msdn.microsoft.com/commandline/2017/05/11/new-distros-coming-to-bashwsl-via-windows-store/]). | The programs of the [[XDS]] package as well as [[XDSGUI]], [[XDSSTAT]], [[XDSCC12]] and so on may be run on 64bit Windows 10/11 within the [https://docs.microsoft.com/windows/wsl/install-win10 Linux Subsystem for Windows] (WSL, or preferably WSL2). This (easily!) installs e.g. an [https://ubuntu.com/wsl Ubuntu] environment, which supports the apt package manager, so in principle any software available for Ubuntu may be installed (or other distros, see [https://blogs.msdn.microsoft.com/commandline/2017/05/11/new-distros-coming-to-bashwsl-via-windows-store/]). | ||
A lot of technical detail is at [https://docs.microsoft.com/en-us/windows/wsl/compare-versions] . | A lot of technical detail is at [https://docs.microsoft.com/en-us/windows/wsl/compare-versions] . | ||
Line 214: | Line 228: | ||
=== WSL2 === | === WSL2 === | ||
Windows 11 supports WSL2 better than Windows 10, and does not need installation of X-server. https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-11-with-gui-support#5-install-and-use-a-gui-package | |||
CCP4 including coot works in a Ubuntu 20.04 LTS machine (and newer) under WSL2 on Windows 10/11 . | |||
If you want to install CCP4 as a regular user, you need (as this is Linux! And replace MYWSLNAME with your WSL user name): | If you want to install CCP4 as a regular user, you need (as this is Linux! And replace MYWSLNAME with your WSL user name): | ||
Line 225: | Line 239: | ||
sudo apt install tcsh libqt5opengl5 libqt5printsupport5 libqt5gui5 libxcb-render0 libxcb-shm0 libglu1-mesa libgomp1 binutils | sudo apt install tcsh libqt5opengl5 libqt5printsupport5 libqt5gui5 libxcb-render0 libxcb-shm0 libglu1-mesa libgomp1 binutils | ||
When installing CCP4, let it "modify command line environment" for you (on one of the very first screens of the installation GUI). If you forgot this, insert a line into your ~/.bashrc : | When installing CCP4, let it "modify command line environment" for you (on one of the very first screens of the installation GUI). If you forgot this, insert a line into your ~/.bashrc : | ||
source /opt/xtal/ccp4-7.1/bin/ccp4.setup-sh | source /opt/xtal/ccp4-7.1/bin/ccp4.setup-sh | ||
# adapt the path according to your CCP4 installation! | |||
afterwards (this is not WSL specific, but is just Linux). I created a file in the Windows filesystem (replace MYUSERNAME with your Windows user name): | afterwards (this is not WSL specific, but is just Linux). I created a file in the Windows filesystem (replace MYUSERNAME with your Windows user name): | ||
cd /mnt/c/Users/MYUSERNAME/ | cd /mnt/c/Users/MYUSERNAME/ | ||
Line 232: | Line 247: | ||
to make the shelx* programs work (see https://github.com/microsoft/WSL/issues/4694 ), and to make "vsyscall=emulate" appear in /proc/cmdline. After creating the file, WSL2 must be restarted with "wsl.exe --shutdown" (or the machine booted). | to make the shelx* programs work (see https://github.com/microsoft/WSL/issues/4694 ), and to make "vsyscall=emulate" appear in /proc/cmdline. After creating the file, WSL2 must be restarted with "wsl.exe --shutdown" (or the machine booted). | ||
Performance of coot is good enough for occasional work. XDSGUI and multi-threaded XDS work as expected. For reading .h5 files, the NEGGIA plugin works correctly, but the DURIN plugin | Performance of coot is good enough for occasional work. XDSGUI and multi-threaded XDS work as expected. For reading .h5 files, the NEGGIA plugin works correctly, but the DURIN plugin may crash (a [https://github.com/DiamondLightSource/durin/issues/22 bug] has been reported). | ||
== See also == | == See also == | ||
[[Cluster Installation]] | [[Cluster Installation]] |