2,718
edits
(→macOS) Tags: Mobile edit Mobile web edit Advanced mobile edit |
m (small wording updates) |
||
(35 intermediate revisions by 2 users 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]]). 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. | |||
This article has | |||
Line 19: | Line 9: | ||
<pre> | <pre> | ||
cd /usr/local/bin | cd /usr/local/bin | ||
wget -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 28: | 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 35: | Line 30: | ||
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 41: | 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 | 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! | |||
For RedHat-type distributions, that would typically be e.g. | For RedHat-type distributions, that would typically be e.g. | ||
Line 55: | Line 52: | ||
sudo apt-file update | sudo apt-file update | ||
Ubuntu | On Ubuntu, XDSGUI may require <code>sudo apt install libxcb-xinerama0</code> | ||
<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 69: | 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 88: | Line 77: | ||
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 | |||
=== [[XDS]] package for Intel Macs === | === [[XDS]] package for Intel Macs === | ||
Line 96: | 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 | ||
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 - | ||
Line 103: | Line 92: | ||
(If you don't have root privileges and run in $HOME/bin, only the curl and ln commands have to be run) | (If you don't have root privileges and run in $HOME/bin, only the curl and ln commands have to be run) | ||
Starting with macOS Catalina, you may also need | Starting with macOS Catalina, you may also need | ||
sudo xattr -dr XDS-OSX_64 | sudo xattr -dr com.apple.quarantine XDS-OSX_64 | ||
if you get a security error popup (google "xattr com.apple.quarantine catalina"). | if you get a security error popup (google "xattr com.apple.quarantine catalina"). | ||
Line 116: | Line 105: | ||
==== XDS package for Macs with Apple M processors ==== | ==== XDS package for Macs with Apple M processors ==== | ||
The Intel Mac XDS programs also work on the Apple Silicon machines, but the libraries for e.g. reading data from Eiger detectors don't, and the native binaries are faster. | The Intel Mac XDS programs also work on the Apple Silicon machines, but the plugin libraries (see below) for e.g. reading data from Eiger detectors don't, and the native binaries are faster. | ||
Thus, change the above <code>curl</code> and <code>ln</code> commands to | Thus, change the above <code>curl</code> and <code>ln</code> commands to | ||
# become root (it will ask for your password): | # become root (it will ask for your password): | ||
sudo su | sudo su | ||
curl -L -o - https://xds.mr.mpg.de/XDS-Apple_M1.tar.gz | tar xzvf - | now enter the password, and then | ||
ln -sf XDS-Apple_M1/* . | if [ ! -e /usr/local/bin ]; then mkdir /usr/local/bin; fi | ||
cd /usr/local/bin; | |||
curl -L -o - https://xds.mr.mpg.de/XDS-Apple_M1.tar.gz | tar xzvf - ; | |||
ln -sf XDS-Apple_M1/* . ; | |||
exit | exit | ||
As explained above, you may need | |||
sudo xattr -d com.apple.quarantine XDS-Apple_M1/* | |||
if you get a security-related popup saying that Apple cannot verify the software. | |||
If you want to process .h5 files written by Eiger detectors, use the [https://{{SERVERNAME}}/pub/mac_bin/durin-plugin-Apple-arm64.so Durin plugin for Apple ARM64 processors] (source code [https://github.com/DiamondLightSource/durin available]) or the [https://{{SERVERNAME}}/pub/mac_bin/dectris-neggia-Apple-arm64.so Dectris-Neggia plugin for Apple ARM64 processors] (source code [https://github.com/dectris/neggia available]). The latter may be faster, but does not work on data collected at Diamond Light Source. The former should in principle work for all HDF5 data. | If you want to process .h5 files written by Eiger detectors, use the [https://{{SERVERNAME}}/pub/mac_bin/durin-plugin-Apple-arm64.so Durin plugin for Apple ARM64 processors] (source code [https://github.com/DiamondLightSource/durin available]) or the [https://{{SERVERNAME}}/pub/mac_bin/dectris-neggia-Apple-arm64.so Dectris-Neggia plugin for Apple ARM64 processors] (source code [https://github.com/dectris/neggia available]). The latter may be faster, but does not work on data collected at Diamond Light Source. The former should in principle work for all HDF5 data. | ||
Line 132: | Line 127: | ||
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 141: | Line 136: | ||
source $HOME/.profile | source $HOME/.profile | ||
# Added by CCP4 package manager: | # Added by CCP4 package manager: | ||
. '/Applications/ccp4- | . '/Applications/ccp4-8.0/bin/ccp4.setup-sh' | ||
# or | |||
. '/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 . /Applications/ccp4- | echo . /Applications/ccp4-8.0/bin/ccp4.setup-sh >> $HOME/.zprofile | ||
# or | # or | ||
echo . /Applications/ccp4- | echo . /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]] === | ||
... can be downloaded from https://{{SERVERNAME}}/pub/mac_bin/ . A simple way to obtain them is is to open a Terminal, and type: | ... can be downloaded from https://{{SERVERNAME}}/pub/mac_bin/ . A simple way to obtain them is is to open a Terminal, and type: | ||
sudo su | sudo su | ||
which asks for the password and gives you administrator permissions. Then, | which asks for the password and gives you administrator permissions. Then, for Intel Macs, | ||
# any folder would do; here we use /usr/local/bin/mac_bin | # any folder would do; here we use /usr/local/bin/mac_bin | ||
mkdir -p /usr/local/bin/mac_bin | mkdir -p /usr/local/bin/mac_bin | ||
Line 162: | Line 163: | ||
chmod +x get_folder.sh | chmod +x get_folder.sh | ||
./get_folder.sh | ./get_folder.sh | ||
For Silicon Macs, | |||
# any folder would do; here we use /usr/local/bin/mac_bin | |||
mkdir -p /usr/local/bin/mac_bin | |||
cd /usr/local/bin/mac_bin | |||
curl -O -R https://{{SERVERNAME}}/pub/mac_bin/get_folder_silicon.sh | |||
chmod +x get_folder_silicon.sh | |||
./get_folder_silicon.sh | |||
After that, release root privileges: | |||
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> 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> | # 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 . On Silicon Macs you can either use the Intel binaries for XDSGUI and XDS, or the Silicon binaries - the latter are recommended. You could in principle mix them but then you have to be careful with what you enter in the LIB= line of XDS.INP; and what you enter in Menu/Preferences/Paths/generic library of XDSGUI. | ||
# 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> | ||
A [https://{{SERVERNAME}}/pub/mac_bin/XDS-Viewer-macOS10.13.dmg 10.13] Qt5 version of XDS-viewer (compiled by T. Hauß) works on macOS Catalina, and is installed by <code>get_folder.sh</code>. Older Macs need [https://{{SERVERNAME}}/pub/mac_bin/XDS-Viewer-0.6.dmg this version]; newer macOS should install [https://{{SERVERNAME}}/pub/mac_bin/XDS-Viewer-macOS10.15.dmg 10.15] | A [https://{{SERVERNAME}}/pub/mac_bin/XDS-Viewer-macOS10.13.dmg 10.13] Qt5 version of XDS-viewer (compiled by T. Hauß) works on macOS Catalina, and is installed by <code>get_folder.sh</code>. Older Macs need [https://{{SERVERNAME}}/pub/mac_bin/XDS-Viewer-0.6.dmg this version]; newer macOS should install [https://{{SERVERNAME}}/pub/mac_bin/XDS-Viewer-macOS10.15.dmg 10.15]. | ||
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 193: | Line 202: | ||
== 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 217: | Line 226: | ||
=== 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 228: | Line 237: | ||
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 235: | Line 245: | ||
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]] |