2cbf: Difference between revisions

From XDSwiki
Jump to navigation Jump to search
(more explanation for LIB= option)
(convert many frames)
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
[http://xds.mpimf-heidelberg.mpg.de/html_doc/2cbf_program.html 2cbf] is part of the [[XDS]] distribution. It converts any image file format that is know to XDS to a miniCBF file. This program is also used by [[XDSGUI]].


For 2cbf to work with the LIB= option, it is mandatory to have a filename like test_123456.xy, i.e. with a 6-digit number and a 2-letter extension. If you want to use LIB= and your filenames do not follow this pattern, just symlink them, and construct the symlinks accordingly.
[http://xds.mpimf-heidelberg.mpg.de/html_doc/2cbf_program.html 2cbf] is part of the [[XDS]] distribution. It converts any image file format that is known to XDS to a miniCBF file. This program is also used by [[XDSGUI]].
 
Single-line example (bash shell):
for i in ../images/*img ; do echo $i; echo $i `basename $i`.cbf | 2cbf ; done
This converts all .img files in ../images to miniCBF files with the extension .img.cbf in the current directory.
 
To have control over the number of digits encoding the frame number, one can use bash's printf command. Example:
<pre>
#!/bin/bash
for j in $(seq 1 120); do
  echo Data_02_$(printf "%04d" "$j").sfrm
done
</pre>
 
To convert frames stored in Dectris-format .h5 files, one should replace "master" with a 6-digit framenumber, and use the [https://xds.mr.mpg.de/html_doc/xds_parameters.html#LIB= LIB=] keyword:
echo collect_01_000001.h5 collect_1.cbf LIB=/usr/local/lib64/dectris-neggia.so | 2cbf
It should work without LIB=, but then H5ToXds is required.
 
To convert a full data set, use e.g.:
#!/bin/bash
for j in $(seq 1 100); do
  echo x1_1_$(printf "%06d" "$j").h5 x1_1_$(printf "%04d" "$j").cbf LIB=/usr/local/bin/linux_bin/dectris-neggia.so | 2cbf
done
 
or just use GlobalPhasing's hdf2mini-cbf :
hdf2mini-cbf x1_1_master.h5 -linkrange 1 100
which seems to convert batches of 100 frames - don't know how to restrict it to convert only frames 1 to 100. The advantage of hdf2mini-cbf is that it writes a proper mini-CBF header which is suitable for MOSFLM or DIALS.

Revision as of 16:35, 22 April 2021

2cbf is part of the XDS distribution. It converts any image file format that is known to XDS to a miniCBF file. This program is also used by XDSGUI.

Single-line example (bash shell):

for i in ../images/*img ; do echo $i; echo $i `basename $i`.cbf | 2cbf ; done

This converts all .img files in ../images to miniCBF files with the extension .img.cbf in the current directory.

To have control over the number of digits encoding the frame number, one can use bash's printf command. Example:

#!/bin/bash
for j in $(seq 1 120); do
  echo Data_02_$(printf "%04d" "$j").sfrm 
done

To convert frames stored in Dectris-format .h5 files, one should replace "master" with a 6-digit framenumber, and use the LIB= keyword:

echo collect_01_000001.h5 collect_1.cbf LIB=/usr/local/lib64/dectris-neggia.so | 2cbf

It should work without LIB=, but then H5ToXds is required.

To convert a full data set, use e.g.:

#!/bin/bash
for j in $(seq 1 100); do
  echo x1_1_$(printf "%06d" "$j").h5 x1_1_$(printf "%04d" "$j").cbf LIB=/usr/local/bin/linux_bin/dectris-neggia.so | 2cbf
done

or just use GlobalPhasing's hdf2mini-cbf :

hdf2mini-cbf x1_1_master.h5 -linkrange 1 100

which seems to convert batches of 100 frames - don't know how to restrict it to convert only frames 1 to 100. The advantage of hdf2mini-cbf is that it writes a proper mini-CBF header which is suitable for MOSFLM or DIALS.