I am having some trouble in getting my translation script, PC-refinement
part, to give the same result as a straight PC-refinement. The input and
results are given below. Any insight into the problem would be greatly
appreciated.
---PC-refinement
xrefine
@XTALLIB:spacegroup.lib { Read symmetry
library. }
a=$a b=$b c=$c alpha=$alpha beta=$beta gamma=$gamma { Define unit
cell. }
@$scatter_library { Read form factor
library }
nreflections=$max_nrefl
reflection @$refl_name end {*Read
reflections.*}
resolution $low_res $high_res {*Resolution
range.*}
do ( fobs = 0 ) ( ampl(fobs) <= $f_cut*sigma) {*Sigma
cutoff.*}
fwindow $f_low $f_high {* Amplitude
cutoff.*}
method=dire
wa=$wa
target=E2E2 {*Specify
target.*}
{* Calculate number of bins used for E calculation. Make sure there
are }
{* at least 100 reflections in each
bin. }
show sum (1) ($f_low <= ampl(fobs) <= $f_high and $high_res <= d <=
$low_res)
evaluate ($mbins=int(min(10,$result/100)))
mbins=$mbins
tolerance=0. lookup=false {*This makes the minimizer
happy.*}
{*Expand data to a P1
hemisphere. *}
expand
selection=( not hydrogen and store 1 )
end
flags exclude * include xref end {*Use only XREF energy
term.*}
coor copy end {*Save current
coordinates *}
coor rotate euler=( $t1 $t2 $t3 ) end {*and then rotate
them *}
{*according to the
orientation*}
{*specified by $t1, $t2,
$t3. *}
energy end {*Compute initial
energy*}
evaluate ($pc1=1.0-$xref/$wa) {*and store in
$pc1. *}
minimize rigid
nstep=$mini_steps
drop=10.
translation=false {* Translation of the last group is kept
fixed. *}
end
evaluate ($pc2=1.0-$xref/$wa)
minimize rigid
group=( store1 )
nstep=$mini_steps
drop=10.
translation=false {* Translation of the last group is kept
fixed. *}
end
evaluate ($pc3=1.0-$xref/$wa)
coor swap end {*Fit coordinates to starting structure
in*}
vector do (vx=x) ( all ) {*order to measure the orientation of
the *}
vector do (vy=y) ( all ) {*PC-refined
structure. *}
vector do (vz=z) ( all ) {*The arrays vx, vy, vz are used as
temporary*}
coor fit end {*stores in order to keep the
starting *}
vector do (x=vx) ( all )
{*coordinates. *}
vector do (y=vy) ( all ) {*The COOR FIT statement stores the
angles *}
vector do (z=vz) ( all ) {*in the symbols $theta1, $theta2,
$theta3.*}
{*Print information: orientation of
rotation *}
{*function peak ($t1, $t2, $t3),
orientation *}
{*after PC-refinement ($theta1, $theta2,
$theta3),*}
{*order of the rotation function,
rotation *}
{*function value, and PCs for
initial, *}
{*rigid-body, and domain-refined
structures. *}
----result
314.01 -5.00 314.01 147.14 10.82 115.73 520. 2.15 0.1977
0.2194 0.2194
-----translation
coor copy end
coor rotate euler=(314.01 -5.00 314.01 ) end
xrefin
@XTALLIB:spacegroup.lib
a=$a b=$b c=$c alpha=$alpha beta=$beta gamma=$gamma { Define unit
cell. }
@$scatter_library { Read form factor
library }
nreflections=$max_nrefl
reflection @$refl_name end {* Read
reflections.*}
resolution $low_res $high_res
do ( fobs = 0 ) ( ampl(fobs) <= $f_cut*sigma) {*Sigma
cutoff.*}
fwindow $f_low $f_high {* Amplitude
cutoff.*}
method=dire
wa=$wa
target=E2E2 {*Specify target used for both
PC-refinement*}
{*and translation
search. *}
{* Calculate number of bins used for E calculation. Make sure there
are }
{* at least 100 reflections in each
bin. }
show sum (1) ($f_low <= ampl(fobs) <= $f_high and $high_res <= d <=
$low_res)
evaluate ($mbins=int(min(20,$result/100)))
mbins=$mbins
tolerance=0. lookup=false {*This makes the minimizer
happy.*}
expand {*Expand data to a P1
hemisphere.*}
selection=( not hydrogen and store1 )
end
flags exclude * include xref end {*Use only XREF energy
term.*}
set precision=5 end
set message=off end
set echo=off end
{*Same PC-refinement protocol as that of job
filter.inp.*}
minimize rigid
nstep=$mini_steps
drop=10.
translation=false {* Translation of the last group is kept fixed.
*}
end
minimize rigid
group=( store1 )
nstep=$mini_steps
drop=10.
translation=false {* Translation of the last group is kept fixed. *}
end
coor swap end {*Fit coordinates to starting structure
in*}
vector do (vx=x) ( all ) {*order to measure the orientation of
the *}
vector do (vy=y) ( all ) {*PC-refined
structure. *}
vector do (vz=z) ( all ) {*The arrays vx, vy, vz are used as
temporary*}
coor fit end {*stores in order to keep the
starting *}
vector do (x=vx) ( all )
{*coordinates. *}
vector do (y=vy) ( all ) {*The COOR FIT statement stores the
angles *}
vector do (z=vz) ( all ) {*in the symbols $theta1, $theta2,
$theta3.*}
display $theta1 $theta2 $theta3
----result
148.63 7.1271 117.86
Angela Toms
Department of Chemistry
University of Manitoba