Eiger: Difference between revisions

341 bytes added ,  10 March 2016
no edit summary
No edit summary
Line 2: Line 2:


# It is advisable to use the most recent 64bit version of XDS (since version Oct 15, 2015 the 32bit versions are no longer distributed anyway). The idea of the new framecache in XDS is that RAM is used to save on I/O. To this end, XDS tries to store NUMBER_OF_IMAGES_IN_CACHE=DELPHI/OSCILLATION_RANGE images in memory. Each frame is stored as (number of pixels)*(4 bytes) which means 72 MB in case of the Eiger 16M. As an example: if DELPHI=20 and OSCILLATION_RANGE=0.05 your computer has to have 400*72MB = 29GB of memory (plus some more for the program and the operating system). If it has not, the fallback is to the old behaviour of reading each frame three times.
# It is advisable to use the most recent 64bit version of XDS (since version Oct 15, 2015 the 32bit versions are no longer distributed anyway). The idea of the new framecache in XDS is that RAM is used to save on I/O. To this end, XDS tries to store NUMBER_OF_IMAGES_IN_CACHE=DELPHI/OSCILLATION_RANGE images in memory. Each frame is stored as (number of pixels)*(4 bytes) which means 72 MB in case of the Eiger 16M. As an example: if DELPHI=20 and OSCILLATION_RANGE=0.05 your computer has to have 400*72MB = 29GB of memory (plus some more for the program and the operating system). If it has not, the fallback is to the old behaviour of reading each frame three times.
# Dectris provides [https://www.dectris.com/news.html?page=2 H5ToXds] (Linux only!) which is needed by XDS. H5ToXds should be copied to e.g. /usr/local/bin/H5ToXds.bin - note the .bin filename extension! As an alternative, one could use GlobalPhasing's hdf2min-cbf program or, from http://www.mrc-lmb.cam.ac.uk/harry/imosflm/ver721/downloads, the miniCBF-OSX or miniCBF-Linux program.
# Dectris provides [https://www.dectris.com/news.html?page=2 H5ToXds] (Linux only!) which is needed by XDS. H5ToXds should be copied to e.g. /usr/local/bin/H5ToXds.bin - note the .bin filename extension! As an alternative, one could use GlobalPhasing's hdf2mini-cbf program or, from http://www.mrc-lmb.cam.ac.uk/harry/imosflm/ver721/downloads, the miniCBF-OSX or miniCBF-Linux program.
# For faster processing, the shell script below should be copied to /usr/local/bin/H5ToXds and made executable (<code>chmod a+rx /usr/local/bin/H5ToXds*</code>). This script ''also'' uses RAM to speed up processing; it uses it for fast storage of the temporary file that Dectris' H5ToXds writes, and that each parallel thread ("processor") of XDS reads. The amount of additional RAM this requires is modest (about (number of pixels)*(number of threads) bytes).
# For faster processing, the shell script below should be copied to /usr/local/bin/H5ToXds and made executable (<code>chmod a+rx /usr/local/bin/H5ToXds*</code>). This script ''also'' uses RAM to speed up processing; it uses it for fast storage of the temporary file that H5ToXds/miniCBF/hdf2mini-cbf writes, and that each parallel thread ("processor") of XDS reads. The amount of additional RAM this requires is modest (about (number of pixels)*(number of threads) bytes).


A suitable XDS.INP should normally be written by the beamline software; [[generate_XDS.INP]] does not (yet) write it. The XDS_from_H5.py script (below) can be used if XDS.INP is not available.
A suitable XDS.INP should normally be written by the beamline software; [[generate_XDS.INP]] does not (yet) write it. The XDS_from_H5.py script (below) can be used if XDS.INP is not available.
Line 36: Line 36:
#!/bin/bash
#!/bin/bash
# Kay Diederichs 10/2015
# Kay Diederichs 10/2015
# store temporary files from H5ToXds in fast local directory, instead of NFS
# 3/2016 adapt for miniCBF-Linux/miniCBF-OSX/hdf2min-cbf
# for the latter see https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ccp4bb;58a4ee1.1603 and
# https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ccp4bb;a048b4e8.1603
#
#
# Installation: This script should reside in $PATH, e.g. /usr/local/bin/H5ToXds
# Idea: put temporary files into fast local directory, instead of NFS
#               Dectris' H5ToXds should be /usr/local/bin/H5ToXds.bin
#
#              Alternatively, miniCBF-Linux or miniCBF-OSX or hdf2mini-cbf could be installed
# Installation: Rename Dectris' H5ToXds to H5ToXds.bin
#              Note that if the one of the latter should be used, the script must still be
#              This script should be called H5ToXds and reside in $PATH
#              called H5ToXds! (only the line /usr/local/bin/H5ToXds.bin ... needs to change)
#              Modify this script according to which binary you use - see comments below.
#
#
# Recommendation:
# Recommendation:
Line 50: Line 52:
tempfile="/dev/shm/H5ToXds${PWD//\//_}.$3"
tempfile="/dev/shm/H5ToXds${PWD//\//_}.$3"
#
#
# the next line runs Dectris' H5ToXds binary, so we specify the absolute path.
# comment out the next 2 lines when using hdf2mini-cbf or miniCBF; uncomment for H5ToXds.bin
#
/usr/local/bin/H5ToXds.bin $1 $2 "$tempfile"
/usr/local/bin/H5ToXds.bin $1 $2 "$tempfile"
ln -sf "$tempfile" $3 2>/dev/null
#
#
# if miniCBF-Linux/miniCBF-OSX or Globalphasing's hdf2min-cbf are used, the above line needs to be adapted
# comment out the next 2 lines when using H5ToXds.bin or hdf2mini-cbf; uncomment for miniCBF
#/usr/local/bin/miniCBF-OSX $1 $2 "$tempfile" >& /dev/null
#ln -sf "$tempfile" $3 2>/dev/null
#
#
ln -sf "$tempfile" $3 2>/dev/null
# comment out the next 3 lines when using H5ToXds.bin or miniCBF; uncomment for hdf2mini-cbf
#/usr/local/bin/hdf2mini-cbf -image $2 -m $1 -o "$tempfile" >& /dev/null
#mv "$tempfile"$2.cbf "$tempfile"
#ln -sf "$tempfile" $3 2>/dev/null
</pre>
</pre>


2,652

edits