2,684
edits
(→News: Qt5) |
|||
(36 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
XDSGUI is a GUI (graphical user interface) for XDS that is supposed to help both novice and experienced users. | XDSGUI is a GUI (graphical user interface) for XDS that is supposed to help both novice and experienced users. | ||
It graphically displays the ASCII and [http://www.bernstein-plus-sons.com/software/CBF cbf] files that XDS writes, and can run useful shell commands with a simple mouse click. The design goal of the program is to enable XDS data processing without the commandline, and to supply additional graphical information, in a simple, user-modifiable and user-extensible way. | It graphically displays the ASCII and [http://www.bernstein-plus-sons.com/software/CBF cbf] files that XDS writes, and can run useful shell commands with a simple mouse click. The design goal of the program is to enable XDS data processing without the commandline, and to supply additional graphical information, in a simple, user-modifiable and user-extensible way. | ||
In its latest version, XDSGUI gives access to George Sheldrick's SHELXC, SHELXD and SHELXE programs, via the [[XDSGUI#SHELX|SHELX]] tab, and to Isabel Uson's ARCIMBOLDO programs, via the [[XDSGUI#ARCIMBOLDO|ARCIMBOLDO]] tab. | |||
== How to use XDSGUI == | == How to use XDSGUI == | ||
Line 11: | Line 13: | ||
After finally moving to the [[XDSGUI#XDS.INP|XDS.INP]] tab, other parameters can be adjusted by the user, and finally XDS may be run by clicking a button. The resulting output files from XDS will then be displayed in the next tabs. | After finally moving to the [[XDSGUI#XDS.INP|XDS.INP]] tab, other parameters can be adjusted by the user, and finally XDS may be run by clicking a button. The resulting output files from XDS will then be displayed in the next tabs. | ||
After finishing this first round of processing, the [[XDSGUI#TOOLS|TOOLS]] tab may be used, which - among other things - offers those three options that I found most useful to optimize the data processing. After choosing (by mouse click) one of these three options, the user should go back to the [[XDSGUI#XDS.INP|XDS.INP]] tab, specify | After finishing this first round of processing, the [[XDSGUI#TOOLS|TOOLS]] tab may be used, which - among other things - offers those three options that I found most useful to optimize the data processing. After choosing (by mouse click) one of these three options, the user should go back to the [[XDSGUI#XDS.INP|XDS.INP]] tab, specify JOB=DEFPIX INTEGRATE CORRECT, and run XDS again. Ideally, each of the three options should be tried separately, and its effect should be compared with the previous processing to verify that it ''really'' improved the processed data. A significant increase in [[ISa]] (> 1%) indicates that the processing has improved; a slight decrease in ISa (<1%) often is accompanied by an increase of CC1/2 at high resolution, and thus should be tolerated. | ||
Those options that improve ISa can then be used in combination. | Those options that improve ISa can then be used in combination. | ||
Line 19: | Line 21: | ||
* 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). | |||
== Tabs == | == Tabs == | ||
Line 86: | Line 89: | ||
* The first item of the left panel ("Show frame with predicted spots") generates the predicted pattern of reflections for a user-specified frame, overlaid on the frame, for display with [[XDS-viewer]]. The file FRAME.cbf (produced by INTEGRATE) is renamed to FRAME_$X.cbf (where X is the user-specified frame number) and remains in the temp subdirectory. It may of course be opened in the FRAME tab, but starting XDS-viewer automatically has the advantage that several frames with predictions may be inspected on the screen, at the same time. Please note: if the XDS directory resides in a FAT32 filesystem (which is often the case on a USB stick or disk), then "ln -s" (of the script line) should be replaced by "cp -p" since FAT32 does not support symlinks. Also note: for the script to work correctly, NAME_TEMPLATE_OF_DATA_FRAMES in XDS.INP has to specify an absolute, not a relative path. | * The first item of the left panel ("Show frame with predicted spots") generates the predicted pattern of reflections for a user-specified frame, overlaid on the frame, for display with [[XDS-viewer]]. The file FRAME.cbf (produced by INTEGRATE) is renamed to FRAME_$X.cbf (where X is the user-specified frame number) and remains in the temp subdirectory. It may of course be opened in the FRAME tab, but starting XDS-viewer automatically has the advantage that several frames with predictions may be inspected on the screen, at the same time. Please note: if the XDS directory resides in a FAT32 filesystem (which is often the case on a USB stick or disk), then "ln -s" (of the script line) should be replaced by "cp -p" since FAT32 does not support symlinks. Also note: for the script to work correctly, NAME_TEMPLATE_OF_DATA_FRAMES in XDS.INP has to specify an absolute, not a relative path. | ||
* The second item (" | * 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 (" | * 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 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") 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 | ||
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 111: | Line 113: | ||
a simple XSCALE.INP is provided by default. It may be edited by the user, and saved. Upon clicking a button, [[xscale]] is run. XSCALE.LP may be displayed. | a simple XSCALE.INP is provided by default. It may be edited by the user, and saved. Upon clicking a button, [[xscale]] is run. XSCALE.LP may be displayed. | ||
=== SHELX === | |||
This gives access to SHELXC, SHELXD and SHELXE ([http://shelx.uni-goettingen.de/ documentation]) in a similar manner to [[ccp4com:Hkl2map|hkl2map]]. As in other tabs, the commands for running these programs are shown, and the user can modify and customize them. | |||
=== ARCIMBOLDO === | |||
This gives access to ARCIMBOLDO ([http://chango.ibmb.csic.es/ documentation]). As in other tabs, the commands for running these programs are shown, and the user can modify and customize them. | |||
== Availability == | == Availability == | ||
The [ | The [https://sourceforge.net/u/joseptrivino/xdsgui/ci/master/tree/ program's source code] is released under the terms of the [https://gnu.org/licenses/old-licenses/gpl-2.0.txt GPLv2]; it uses the [http://www.qt.io/ Qt library] which was released under the terms of the [https://gnu.org/licenses/lgpl.txt LGPL]. The program is under development and probably has bugs. If it crashes, it should simply be restarted. A crash of the program ''does not interfere'' with the operation of [[XDS]]; likewise, closing the program window does not influence any XDS run started from XDSGUI. | ||
=== 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 | 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]]. As discussed in [[Generate_XDS.INP#Dependencies]], [[Eiger]] data processing requires the <code>h5dump</code> binary, and either the <code>H5ToXds</code> binary or the <code>dectris-neggia</code> library (available from Dectris) or the <code>durin-plugin</code> library (download from Diamond Light Source, DLS). The library 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. | ||
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. | 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. | ||
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 ''TOOLS'' commands use <code>bash</code> as a shell, and that shell does not inherit the aliases from e.g. (t)csh. | 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. | ||
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 [ | 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). Experimental Qt5 versions are available for [https://{{SERVERNAME}}/pub/linux_bin/xdsgui_qt5 the latest Linux distributions] and [https://{{SERVERNAME}}/pub/mac_bin/xdsgui_qt5.dmg latest MacOS]; these will soon become the default. | ||
Industrial users: pls contact me directly. | Industrial users: pls contact me directly. | ||
The easiest way to install XDSGUI, and all XDSGUI-related programs is documented in [[Installation]]. | |||
In case of a '''Mac''', the DMG file may be installed in the usual way, by double-clicking it and dragging the icon into the Applications folder. '''It is advantageous to place a symbolic link, like''' | Alternatively, in case of '''Linux''', after downloading the binary file, its name should be changed to "xdsgui" and then be made executable ("chmod a+x xdsgui"). The binary may then be copied into e.g. the directory /usr/local/bin by the administrator, or to the $HOME/bin directory by the user. Any other directory should be suitable as long as it is in your $PATH. In case of a '''Mac''', the DMG file may be installed in the usual way, by double-clicking it and dragging the icon into the Applications folder. '''It is advantageous to place a symbolic link, like''' | ||
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 | ||
Line 137: | Line 151: | ||
==== Libraries and software that the program depends on ==== | ==== Libraries and software that the program depends on ==== | ||
In case of Fedora or Redhat Enterprise Linux distributions, you may have to | In case of '''Fedora''' or Redhat Enterprise Linux ('''RHEL'''; same as CentOS) distributions, you may have to | ||
yum install qt qt-x11 | yum install qt qt-x11 | ||
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 . | ||
'''Ubuntu | RedHat Enterprise Linux 8 (CentOS 8) does not provide the needed libraries for the Qt4-based xdsgui binary (which is still the default). For such new distributions, you should install the new Qt5 xdsgui binary linked above. | ||
'''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 | |||
if you get the error message | |||
xdsgui: error while loading shared libraries: | |||
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 160: | Line 172: | ||
# 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 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!). | ||
# 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. | # 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 209: | ||
update Oct 10, 2017: fix the bug that non-CBF files are not being displayed (see Bugs section above). | update Oct 10, 2017: fix the bug that non-CBF files are not being displayed (see Bugs section above). | ||
update Apr 27, 2018: fix the bug that the INTEGRATE tab is not updated when XDS runs. 32-bit Linux binaries are no longer made. | update Apr 27, 2018: fix the bug that the INTEGRATE tab is not updated when XDS runs. 32-bit Linux binaries are no longer made. Download source from https://sourceforge.net/u/joseptrivino/xdsgui/ci/master/tree/ . | ||
update June 15, 2018: SHELXC, SHELXD and SHELXE are available through the SHELX 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]] |