REFERENCE DATA SET: Difference between revisions
No edit summary |
m (add "quit" to sftools commands to avoid error message) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 20: | Line 20: | ||
Such a file, which I would call "fake XDS_ASCII" can be obtained with a little effort. As an example, the following assumes existence of a MTZ file refine.mtz containing column F-model: | Such a file, which I would call "fake XDS_ASCII" can be obtained with a little effort. As an example, the following assumes existence of a MTZ file refine.mtz containing column F-model: | ||
<pre> | <pre> | ||
echo square model amplitudes: | |||
sftools <<EOF | sftools <<EOF | ||
read refine.mtz | read refine.mtz | ||
Line 26: | Line 26: | ||
calc col I-model = col F-model col F-model * | calc col I-model = col F-model col F-model * | ||
write I-model.mtz col I-model | write I-model.mtz col I-model | ||
quit | |||
EOF | EOF | ||
echo dump to ASCII format: | |||
mtzdump hklin I-model.mtz > temp.hkl <<EOF | mtzdump hklin I-model.mtz > temp.hkl <<EOF | ||
nref 10000000 | nref 10000000 | ||
end | end | ||
EOF | EOF | ||
echo prepare I-model.hkl: | |||
echo \!FORMAT=XDS_ASCII > I-model.hkl | echo \!FORMAT=XDS_ASCII > I-model.hkl | ||
echo \!END_OF_HEADER >> I-model.hkl | echo \!END_OF_HEADER >> I-model.hkl | ||
echo pick reflection info from temp.hkl: | |||
awk '/LIST OF REFLECTIONS/,/<B><FONT COLOR=/' temp.hkl | tail -n +4 | head -n -1 | awk '{print $0,1}' >> I-model.hkl | awk '/LIST OF REFLECTIONS/,/<B><FONT COLOR=/' temp.hkl | tail -n +4 | head -n -1 | awk '{print $0,1}' >> I-model.hkl | ||
echo \!END_OF_DATA >> I-model.hkl | echo \!END_OF_DATA >> I-model.hkl | ||
echo I-model.hkl is now ready to be used as REFERENCE_DATA_SET | |||
rm temp.hkl | rm temp.hkl I-model.mtz | ||
</pre> | </pre> | ||
Line 60: | Line 61: | ||
... | ... | ||
!END_OF_DATA | !END_OF_DATA | ||
</pre> | |||
Such a file can be obtained e.g. with | |||
<pre> | |||
#!/bin/bash | |||
echo square amplitudes: | |||
sftools <<EOF | |||
read $1 | |||
select col FOBS = present | |||
calc col IOBS = col FOBS col FOBS * | |||
calc col SIGIOBS = col FOBS col SIGFOBS * | |||
calc col SIGIOBS = col SIGIOBS 2 * | |||
write $1.mtz col IOBS SIGIOBS | |||
EOF | |||
echo dump to ASCII format: | |||
mtzdump hklin $1.mtz > temp.hkl <<EOF | |||
nref 10000000 | |||
end | |||
EOF | |||
echo prepare XDS_ASCII.HKL: | |||
echo \!FORMAT=XDS_ASCII > $1.hkl | |||
echo \!UNIT_CELL_CONSTANTS=$(grep -A1 dataset$ temp.hkl|tail -1) >> $1.hkl | |||
echo \!SPACE_GROUP_NUMBER=$(awk '/Space group/{gsub(/\)/,"");print $7}' temp.hkl) >> $1.hkl | |||
echo \!ITEM_H=1 >> $1.hkl | |||
echo \!ITEM_K=2 >> $1.hkl | |||
echo \!ITEM_L=3 >> $1.hkl | |||
echo \!ITEM_IOBS=4 >> $1.hkl | |||
echo \!ITEM_SIGMA\(IOBS\)=5 >> $1.hkl | |||
echo \!END_OF_HEADER >> $1.hkl | |||
echo pick reflection info from temp.hkl: | |||
awk '/LIST OF REFLECTIONS/,/<B><FONT COLOR=/' temp.hkl | tail -n +4 | head -n -1 | awk '{print $0,1}' >> $1.hkl | |||
echo \!END_OF_DATA >> $1.hkl | |||
echo $1.hkl is now ready to be used as XDS_ASCII.HKL | |||
rm temp.hkl $1.mtz | |||
</pre> | </pre> |
Latest revision as of 15:17, 3 September 2020
Sometimes one wants to use a REFERENCE_DATA_SET which was not itself written out by XDS or XSCALE.
For a file to be accepted as a REFERENCE_DATA_SET by XDS, it must minimally look like:
!FORMAT=XDS_ASCII !END_OF_HEADER 1 0 4 48445. 983.361 1 0 5 2124.59 283.825 1 0 6 17955. 493.356 1 0 7 19328. 510.718 1 0 8 87172. 3437.40 ... ... !END_OF_DATA
The columns do not have a specified width, and are separated by a blank (Fortran's free format). Additional columns besides h k l I sigI will be ignored. Anomalous data in that file will be treated as required by the setting of FRIEDEL'S_LAW in XDS.INP.
Please note that the REFERENCE_DATA_SET will only be used if SPACE_GROUP_NUMBER > 0, and proper UNIT_CELL_CONSTANTS are specified in XDS.INP !
Such a file, which I would call "fake XDS_ASCII" can be obtained with a little effort. As an example, the following assumes existence of a MTZ file refine.mtz containing column F-model:
echo square model amplitudes: sftools <<EOF read refine.mtz select col F-model = present calc col I-model = col F-model col F-model * write I-model.mtz col I-model quit EOF echo dump to ASCII format: mtzdump hklin I-model.mtz > temp.hkl <<EOF nref 10000000 end EOF echo prepare I-model.hkl: echo \!FORMAT=XDS_ASCII > I-model.hkl echo \!END_OF_HEADER >> I-model.hkl echo pick reflection info from temp.hkl: awk '/LIST OF REFLECTIONS/,/<B><FONT COLOR=/' temp.hkl | tail -n +4 | head -n -1 | awk '{print $0,1}' >> I-model.hkl echo \!END_OF_DATA >> I-model.hkl echo I-model.hkl is now ready to be used as REFERENCE_DATA_SET rm temp.hkl I-model.mtz
For use with XSCALE, the file must look like e.g.:
!FORMAT=XDS_ASCII !NUMBER_OF_ITEMS_IN_EACH_DATA_RECORD= 5 !ITEM_H=1 !ITEM_K=2 !ITEM_L=3 !ITEM_IOBS=4 !ITEM_SIGMA(IOBS)=5 !END_OF_HEADER 1 0 4 48445. 983.361 1 0 5 2124.59 283.825 1 0 6 17955. 493.356 1 0 7 19328. 510.718 1 0 8 87172. 3437.40 ... ... !END_OF_DATA
Such a file can be obtained e.g. with
#!/bin/bash echo square amplitudes: sftools <<EOF read $1 select col FOBS = present calc col IOBS = col FOBS col FOBS * calc col SIGIOBS = col FOBS col SIGFOBS * calc col SIGIOBS = col SIGIOBS 2 * write $1.mtz col IOBS SIGIOBS EOF echo dump to ASCII format: mtzdump hklin $1.mtz > temp.hkl <<EOF nref 10000000 end EOF echo prepare XDS_ASCII.HKL: echo \!FORMAT=XDS_ASCII > $1.hkl echo \!UNIT_CELL_CONSTANTS=$(grep -A1 dataset$ temp.hkl|tail -1) >> $1.hkl echo \!SPACE_GROUP_NUMBER=$(awk '/Space group/{gsub(/\)/,"");print $7}' temp.hkl) >> $1.hkl echo \!ITEM_H=1 >> $1.hkl echo \!ITEM_K=2 >> $1.hkl echo \!ITEM_L=3 >> $1.hkl echo \!ITEM_IOBS=4 >> $1.hkl echo \!ITEM_SIGMA\(IOBS\)=5 >> $1.hkl echo \!END_OF_HEADER >> $1.hkl echo pick reflection info from temp.hkl: awk '/LIST OF REFLECTIONS/,/<B><FONT COLOR=/' temp.hkl | tail -n +4 | head -n -1 | awk '{print $0,1}' >> $1.hkl echo \!END_OF_DATA >> $1.hkl echo $1.hkl is now ready to be used as XDS_ASCII.HKL rm temp.hkl $1.mtz