XDSGUI: Difference between revisions

Jump to navigation Jump to search
798 bytes removed ,  14 December 2020
(21 intermediate revisions by the same user not shown)
Line 22: Line 22:
* the simple editor operating in the XDS.INP, XDSCONV and XSCALE tabs understands ctrl-X (cut), ctrl-c (copy), ctrl-v (paste), ctrl-z (undo) and ctrl-Z (redo).  
* the simple editor operating in the XDS.INP, XDSCONV and XSCALE tabs understands ctrl-X (cut), ctrl-c (copy), ctrl-v (paste), ctrl-z (undo) and ctrl-Z (redo).  
* ctrl-+ (control-plus) and ctrl-- (control-minus) enlarge or decrease the font size of characters.
* ctrl-+ (control-plus) and ctrl-- (control-minus) enlarge or decrease the font size of characters.
* flexibility of operation: all commands in the TOOLS tab may be modified by the user, simply by modifying the (bash) code in the text field below the button. The user-changed command is automagically and permanently stored in ~/.xds-gui . The user may also change what is written on a button, by editing ~/.xds-gui.
* flexibility of operation: all commands in the ''tools'' tab may be modified by the user, simply by modifying the (bash) code in the text field below the button. The user-changed command is automagically and permanently stored in ~/.xds-gui . The user may also change what is written on a button, by editing ~/.xds-gui.
* Menu / Settings is used for setting "Paths" for binaries (xds_par, xscale_par, shelxc/d/e, ...), "Library" (typically /usr/local/lib64/dectris-neggia.so), and "Appearance" (font size and default plot height).
* Menu / Settings is used for setting "Paths" for binaries (xds_par, xscale_par, shelxc/d/e, ...), and "Appearance" (font size and default plot height). "generic Library" (typically /usr/local/lib64/dectris-neggia.so) should currently not be filled out, due to a bug.


== Tabs ==
== Tabs ==
Line 91: Line 91:
* The second item ("Saving and comparing good results") offers commands to save/restore the current data processing files to/from a "save" directory. Make sure to replace "xdiff" with "xxdiff" or "tkdiff", if one of the latter is available. If [http://www.globalphasing.com/autoproc autoPROC] is installed, I suggest to use the "User defined command 2" for <code>mkdir staraniso; cd staraniso; aP_scale -hkl ../XDS_ASCII.HKL; echo anisotropy-corrected files are in staraniso subdirectory</code>.
* The second item ("Saving and comparing good results") offers commands to save/restore the current data processing files to/from a "save" directory. Make sure to replace "xdiff" with "xxdiff" or "tkdiff", if one of the latter is available. If [http://www.globalphasing.com/autoproc autoPROC] is installed, I suggest to use the "User defined command 2" for <code>mkdir staraniso; cd staraniso; aP_scale -hkl ../XDS_ASCII.HKL; echo anisotropy-corrected files are in staraniso subdirectory</code>.


* The third item ("Optimizing data quality") offers commands that manipulate [[XDS.INP]] in several ways. Please note: the popup "XDS.INP has been changed externally" is emitted by the Qt system and cannot be switched off. It appears if one of the scripts changes XDS.INP while it is opened by XDSGUI (which is always the case) . Thus, one should simply press the "Reload" button. XDSGUI sometimes hangs (and must be killed with Ctrl-C) when running <pre>grep _E INTEGRATE.LP | tail -2 >x; sed -e 's/ BEAM_DIVERGENCE=/! BEAM_DIVERGENCE=/' -e 's/ REFLECTING_RANGE=/! REFLECTING_RANGE=/' XDS.INP >>x; mv x XDS.INP</pre> I suggest to replace the final part of the latter command <pre>mv x XDS.INP</pre> with <pre>cat x > XDS.INP; rm x</pre> because this workaround conserves the inode. This bug will be fixed in the code. The user-definable command may be used e.g. for <pre>echo RELRAD=7 ! default is 5 >x; grep -v BEAM_DIVERGENCE XDS.INP >>x; cat x > XDS.INP; rm x</pre> This provides more pixels to the background estimation (for another INTEGRATE), and is useful for weakly exposed data sets which have mostly pixels with zero counts.
* The third item ("Optimizing data quality") offers commands that manipulate [[XDS.INP]] in several ways. Please note: the popup "XDS.INP has been changed externally" is emitted by the Qt system and cannot be switched off. It appears if one of the scripts changes XDS.INP while it is opened by XDSGUI (which is always the case) . Thus, one should simply press the "Reload" button. The user-definable command may be used e.g. for <pre>echo RELRAD=7 ! default is 5 >x; grep -v BEAM_DIVERGENCE XDS.INP >>x; cat x > XDS.INP; rm x</pre> This provides more pixels to the background estimation (for another INTEGRATE), and is useful for weakly exposed data sets which have mostly pixels with zero counts.


* The last item ("Further analyses") may be used for commands, e.g. running [[pointless]] against the XDS_ASCII.HKL file. The user-definable commandline may be used e.g. for
* The last item ("Further analyses") offers useful commands. "determine spacegroup with pointless" runs [[pointless]] against the XDS_ASCII.HKL file. The button "show spots in reciprocal space" runs [[spot2pdb]] to show you the reflections of SPOT.XDS in reciprocal space, with coot. You see the reflections that could be indexed in IDXREF in yellow, the not-indexed ones in pink, the rotation axis in blue and the origin as a blue cross. Ice rings and additional lattices can be easily identified - see [[spot2pdb]] for examples!
grep -s allow-duplicate-sequence-numbers ~/.coot || echo "(allow-duplicate-sequence-numbers)" >>~/.coot ; spot2pdb -r 1; coot SPOT-*.pdb
since that runs [[spot2pdb]] to show you the reflections of SPOT.XDS in reciprocal space, with coot. You see the indexed reflections (indexed in IDXREF) in yellow, the not-indexed ones in pink, the rotation axis in blue and the origin as a blue cross.


=== statistics ===
=== statistics ===
Line 128: Line 126:
=== Dependencies ===
=== Dependencies ===


XDSGUI depends on [[generate_XDS.INP]], [[XDS-viewer]], and of course [[XDS]] (both the xds and xds_par binaries!), [[XDSCONV]], and [[2cbf]]. The ''statistics'' tab requires [[XDSSTAT]] and [[XDSCC12]]. [[Eiger]] data processing requires <code>h5dump</code>, and either the <code>H5ToXds</code> binary or the <code>dectris-neggia</code> library (download from Dectris!). The latter should be put into a directory (e.g. /usr/local/lib64), and the full path to it (e.g. /usr/local/lib64/dectris-neggia.so) should be entered into the "generic frame library" entry, in Menu->Settings.
XDSGUI depends on [[generate_XDS.INP]], [[XDS-viewer]], and of course [[XDS]] (both the xds and xds_par binaries!), [[XDSCONV]], and [[2cbf]]. The ''statistics'' tab requires [[XDSSTAT]] and [[XDSCC12]]. For visualization of the raw data frames in the ''Frame'' tab, [[Eiger]] data processing requires either the [https://www.dectris.com/features/features-eiger-x/h5toxds/ <code>H5ToXds</code>] binary or the [https://www.globalphasing.com/autoproc/wiki/index.cgi?DataProcessingHdf5 <code>hdf2mini-cbf</code>] binary (needs autoPROC license). Only the latter works for the .h5 files produced at Diamond Light Source; if hdf2mini-cbf should be used, it needs to be symlinked under the name H5ToXds (because XDSGUI has the name H5ToXds hardwired). ([https://github.com/biochem-fan/eiger2cbf <code>eiger2cbf</code>] does not seem to work with Eiger2 .h5 files.)


One of the items in the <code>tools</code> tab calls a graphical file comparison program; if the default (xdiff) is not available, [http://furius.ca/xxdiff xxdiff] or [http://sourceforge.net/projects/tkdiff tkdiff] or [http://kdiff3.sourceforge.net/ kdiff3] or [http://meldmerge.org/ meld] may be used - please adjust the command line below the button accordingly. See also [[Installation]].
One of the items in the ''tools'' tab calls a graphical file comparison program; if the default (xdiff) is not available, [http://furius.ca/xxdiff xxdiff] or [http://sourceforge.net/projects/tkdiff tkdiff] or [http://kdiff3.sourceforge.net/ kdiff3] or [http://meldmerge.org/ meld] may be used - please adjust the command line (below the button) accordingly.  


Technically, the word "dependency" means that these scripts/programs should be in your $PATH - an 'alias' is often not good enough because the ''TOOLS'' commands use <code>bash</code> as a shell, and that shell does not inherit the aliases from e.g. (t)csh.
The XDSCONV functionality requires a working CCP4 installation for conversion to MTZ files. Likewise, XDSSTAT (in the ''statistics'' tab) needs CCP4.
 
Technically, the word "dependency" means that these scripts/programs should be in your $PATH - an 'alias' is often not good enough because the commands in the ''tools'' tab use <code>bash</code> as a shell, and that shell does not inherit the aliases from e.g. (t)csh.
 
If you use the <code>get_folder.sh</code> script as explained in [[Installation]], most of these dependencies are checked, and binaries are downloaded.


=== Installation ===
=== Installation ===


The current version of the program can be downloaded, by academic users, for Linux [https://{{SERVERNAME}}/pub/xdsgui.rhel6.64 64bit] (compiled on RHEL6) or [https://{{SERVERNAME}}/pub/xdsgui.dmg Mac] (works on OSX 10.6 and up).  
The program can be downloaded, by academic users, as Qt5 binary for Linux [https://{{SERVERNAME}}/pub/linux_bin/xdsgui 64bit] (compiled on RHEL6) and as Qt4 binary for [https://{{SERVERNAME}}/pub/xdsgui_qt4.dmg Mac] (works on OSX 10.6 and up). A Qt4 version is available for [https://{{SERVERNAME}}/pub/linux_bin/xdsgui.qt4 old Linux distributions] and a Qt5 version for [https://{{SERVERNAME}}/pub/mac_bin/xdsgui_qt5.dmg latest MacOS] is also available; these may have to be renamed.
 
Industrial users: pls contact me directly.
Industrial users: pls contact me directly.


Line 144: Line 147:
  sudo ln -s /Applications/xdsgui.app/Contents/MacOS/xdsgui /usr/local/bin/xdsgui
  sudo ln -s /Applications/xdsgui.app/Contents/MacOS/xdsgui /usr/local/bin/xdsgui
'''and to start the GUI from a terminal window, by typing xdsgui'''. In a similar way, XDS-viewer should be put into the $PATH under the name xds-viewer, e.g. using
'''and to start the GUI from a terminal window, by typing xdsgui'''. In a similar way, XDS-viewer should be put into the $PATH under the name xds-viewer, e.g. using
  sudo ln -s /Applications/XDS-Viewer.app/Contents/MacOS/xds-viewer-bin /usr/local/bin/xds-viewer
  sudo ln -s /Applications/XDS-Viewer.app/Contents/MacOS/XDS-Viewer /usr/local/bin/xds-viewer


==== Libraries and software that the program depends on ====
==== Libraries and software that the program depends on ====
Line 151: Line 154:
if you get the error message
if you get the error message
  xdsgui: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory
  xdsgui: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory
or similar for libQtCore.so.4.
or similar for libQtCore.so.4 or libQtOpenGL.so.4 .
 
Generally, if in case of RHEL or related distributions you don't know the name of the package, e.g.
  yum provides "*/libQtCore.so.4"
would tell you what the name of the corresponding RPM is.


RedHat Enterprise Linux 8 (CentOS 8) does not provide the needed libraries (in particular not the Qt4 libs). Everything needed can be installed using the Fedora 29 packages:
RedHat Enterprise Linux 8 (CentOS 8) does not provide the needed libraries for the Qt4-based xdsgui binary. For such new distributions, you should install the new Qt5 xdsgui binary linked above.
wget https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/29/Everything/x86_64/os/Packages/q/qt-4.8.7-41.fc29.x86_64.rpm
wget https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/29/Everything/x86_64/os/Packages/q/qt-common-4.8.7-41.fc29.noarch.rpm
wget https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/29/Everything/x86_64/os/Packages/q/qt-x11-4.8.7-41.fc29.x86_64.rpm
wget https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/29/Everything/x86_64/os/Packages/q/qt-settings-29.0-1.fc29.noarch.rpm
dnf install mesa-libGLU qt-4.8.7-41.fc29.x86_64.rpm qt-common-4.8.7-41.fc29.noarch.rpm qt-x11-4.8.7-41.fc29.x86_64.rpm qt-settings-29.0-1.fc29.noarch.rpm
The qt-settings RPM is also available from EPEL. Alternatively, a non-default repository can be installed:
dnf install https://extras.getpagespeed.com/redhat/8/noarch/RPMS/getpagespeed-extras-release-8-6.el8.gps.noarch.rpm
dnf install mesa-libGLU qt-x11
and answering "y" to all questions. However, using the FC29 packages is recommended.  


'''Ubuntu''' needs the libglu1-mesa package if you get the error message
'''Ubuntu''' needs the libglu1-mesa package if you get the error message
  xdsgui: error while loading shared libraries: libGLU.so.1: cannot open shared object file: No such file or directory
  xdsgui: error while loading shared libraries: libGLU.so.1: cannot open shared object file: No such file or directory
If in the case of Ubuntu you don't know the name of the package that provides a certain library, the
  sudo apt-file search libGLU.so.1
command would find it for you. This needs a one-time installation by
  sudo apt install apt-file
  sudo apt-file update
 


On the '''Mac''' (e.g. Yosemite) one needs [https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 Xcode] installed. Otherwise one may obtain a popup error “You can’t open the application because it is not supported on this type of Mac.” After installation of Xcode, run the <code>strings</code> command (once) and accept the license agreement!
On the '''Mac''' (e.g. Yosemite) one needs [https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 Xcode] installed. Otherwise one may obtain a popup error “You can’t open the application because it is not supported on this type of Mac.” After installation of Xcode, run the <code>strings</code> command (once) and accept the license agreement!
Line 185: Line 169:
# ''Problem description: On the Mac, after loading frames, by clicking “generate XDS.INP”, the program gives some strange symbol “” in XDS.INP. And the more you click “save” button, the more “” appeared. This looks like <br>SPACE_GROUP_NUMBER=0  ! 0 if unknown <br>UNIT_CELL_CONSTANTS= 70 80 90 90 90 90  .''<br> The problem is due to the “Rich text” format in TextEdit when saving "generate_XDS.INP". It is solved by re-downloading the script, and changing format to Plain - everything is working now.
# ''Problem description: On the Mac, after loading frames, by clicking “generate XDS.INP”, the program gives some strange symbol “” in XDS.INP. And the more you click “save” button, the more “” appeared. This looks like <br>SPACE_GROUP_NUMBER=0  ! 0 if unknown <br>UNIT_CELL_CONSTANTS= 70 80 90 90 90 90  .''<br> The problem is due to the “Rich text” format in TextEdit when saving "generate_XDS.INP". It is solved by re-downloading the script, and changing format to Plain - everything is working now.
# on a Mac, you may find a stream of the following error messages in the console window: <code>Jan 31 14:35:17  xdsgui[20939] <Error>: Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem. Jan 31 14:35:17  xdsgui[20939] <Error>: If you want to see the backtrace, please set CG_NUMERICS_SHOW_BACKTRACE environmental variable.</code> This sounds terrible, but is actually harmless. Since it is a message from Qt (which XDSGUI uses for graphics), ''it does not compromise the XDS data processing in any way''. If it bothers you, just suppress the printout of these messages, by <code>xdsgui 2>&1 | egrep -v 'CoreGraphics|CG_NUMERICS'</code>
# on a Mac, you may find a stream of the following error messages in the console window: <code>Jan 31 14:35:17  xdsgui[20939] <Error>: Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem. Jan 31 14:35:17  xdsgui[20939] <Error>: If you want to see the backtrace, please set CG_NUMERICS_SHOW_BACKTRACE environmental variable.</code> This sounds terrible, but is actually harmless. Since it is a message from Qt (which XDSGUI uses for graphics), ''it does not compromise the XDS data processing in any way''. If it bothers you, just suppress the printout of these messages, by <code>xdsgui 2>&1 | egrep -v 'CoreGraphics|CG_NUMERICS'</code>
# there is a bug in the Jan-2017 version of XDSGUI that prevents it from displaying non-CBF files. The symptom is that the frames appear to be blank. The workaround is: go to (upper left) "Menu"->"Settings"->remove the string "/usr/local/lib64/dectris-neggia.so". The fix is in the Oct-2017 version (thanks Wolfgang!).
# there is a bug in XDSGUI that prevents it from displaying .h5 files. The symptom is that the frames appear to be blank. The workaround is: go to (upper left) "Menu"->"Settings"->remove the string "/usr/local/lib64/dectris-neggia.so" from "generic library", and install <code>H5ToXds</code> or <code>hdf2mini-cbf</code> as explained above.
# in the COLSPOT tab, one sometimes has to jiggle a bit the border in the middle of the page, between the log output and the two plots, to trigger showing the plots.
# XDSGUI sometimes hangs (and must be killed with Ctrl-C) when running <pre>grep _E INTEGRATE.LP | tail -2 >x; sed -e 's/ BEAM_DIVERGENCE=/! BEAM_DIVERGENCE=/' -e 's/ REFLECTING_RANGE=/! REFLECTING_RANGE=/' XDS.INP >>x; mv x XDS.INP</pre> in the tools tab. A potential workaround is given [[XDSGUI#tools|above]] - pls try!


If you find a bug, please send email to Kay dot Diederichs at uni-konstanz dot de , with enough information/data to reproduce the bug.
If you find a bug, please send email to Kay dot Diederichs at uni-konstanz dot de , with enough information/data to reproduce the bug.
Line 196: Line 178:
* The display of large frames in the FRAME tab may be slow over the network.
* The display of large frames in the FRAME tab may be slow over the network.
* The green INCLUDE_RESOLUTION and red semi-transparent EXCLUDE_RESOLUTION_RANGE circles in the Frame tab as well as all resolution values in the Frame and IDXREF tabs are calculated from values in XDS.INP (rather than from the refined values in XPARM.XDS, which XDS uses). For the (curved) Pilatus 12M, the calculations in XDSGUI do not give the correct results.
* The green INCLUDE_RESOLUTION and red semi-transparent EXCLUDE_RESOLUTION_RANGE circles in the Frame tab as well as all resolution values in the Frame and IDXREF tabs are calculated from values in XDS.INP (rather than from the refined values in XPARM.XDS, which XDS uses). For the (curved) Pilatus 12M, the calculations in XDSGUI do not give the correct results.
* The path (e.g. /usr/local/lib64/dectris-neggia.so) to the <code>dectris-neggia</code> library (available from Dectris) or the <code>durin-plugin</code> library (download from Diamond Light Source, DLS) should be entered into the "generic frame library" entry, in Menu->Settings, to enable visualization of raw data from Eiger detectors, but this mechanism currently does not work properly. Therefore, <code>H5ToXds</code> or <code>hdf2mini-cbf</code> should be installed as explained above.


== News ==
== News ==
Line 229: Line 212:


update April 17, 2019: Arcimboldo programs are available through the ARCIMBOLDO tab.
update April 17, 2019: Arcimboldo programs are available through the ARCIMBOLDO tab.
update October 22, 2020: Qt4 (xdsgui) and experimental Qt5 (xdsgui_qt5) versions with improved TOOLS, and bugfixes.


== See also ==
== See also ==
Video [https://www.youtube.com/watch?v=yN2gk_PtWeY Running XDS (and xdsgui) on Windows 10 build 14361] by Gustavo Machado Alvares de Lima


[[Installation]]
[[Installation]]
2,652

edits

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

Navigation menu