Strange Fo-Fc map
Anonymous
nobody at REPLAY.COM
Thu Dec 4 13:26:45 EST 1997
In article <34866FA8.41C6 at btk.utu.fi>, Vesa Tuominen O_GOLD
<Vesa.Tuominen at btk.utu.fi> wrote:
> Yes I am using X-plor online? And yes I am also calculating sigmaA
> weighted maps.
> Thank you !
Here is what I could find.
Depending upon the scrit you are using, the syntax migh be different. Look
for the part of the script that deals with the weighting of centric
reflections and see how it looks. Here is that section of my script with a
comment before the line that was changed.
do (fom=2 sigmaa eobs ecalc / (1 - sigmaa^2))
($low_res >= d >= $high_res and ampl(fobs) > 0)
do (fom=i1overi0(fom)) ( acentric and ampl(fobs) > 0 )
do (fom=tanh(fom/2)) ( centric and ampl(fobs) > 0 )
!changes for map coeffiecient weighting of centric reflections
do (deri1=combine(2 $nn fom ampl(fobs) - 2 $mm dd ampl(fcalc+fpart),
phase(fcalc+fpart)))
($low_res >= d >= $high_res and acentric and ampl(fobs) > 0 )
do (deri1=combine($nn fom ampl(fobs) - $mm dd ampl(fcalc+fpart),
phase(fcalc+fpart)))
($low_res >= d >= $high_res and centric and ampl(fobs) > 0 )
undeclare name=ddgmad domain=reciprocal end
Here is the whole script for you to try it. I hope it works for you.
remarks file tutorial/xtal_ml/map.inp
remarks Makes a (nfo-mfc, phi_calc) map.
remarks Sigmaa-weighting optional.
remarks Cross-validation for sigmaa-weighting optional.
remarks Averaging from several structures optional.
remarks
remarks Authors: Axel T. Brunger and Paul D. Adams
!
! Cite the following papers when using this protocol:
!
! 1. R.J. Read (1986). Improved Fourier coefficients
! for maps using phases from partial structures with
! errors. Acta Cryst. A42 (1986), 140--149.
!
!
! 2. G.J. Kleywegt, A.T. Brunger, Checking your imagination:
! Applications of the free R value, Structure 4, 897-904 (1996).
!
{* Guidelines for using this file:
- all strings must be quoted by double-quotes
- logical variables (true/false) must not be quoted
- do not remove any evaluate statements from the file *}
{======================= molecular structure =========================}
{* structure file(s) *}
{===>} evaluate ($structure_file="ref4/t13g_start_r4.psf")
structure @$structure_file end
{* parameter file(s) *}
{===>} evaluate ($par_1="../partop/toppar/paramcsdx_mod.pro")
{===>} evaluate ($par_2="../partop/param19_HOH.sol")
{===>} evaluate ($par_3="../partop/param11x.adp")
{===>} evaluate ($par_4="")
{===>} evaluate ($par_5="")
{* calculate map from a single structure *}
{* this will be ignored if averaging is carried out *}
{* coordinate file(s) *}
{===>} evaluate ($coord_in_file="ref4/slowcool_1.pdb")
{* average structure factors from a number of models *}
{===>} evaluate ($averaging=true)
{* number of structures to average *}
{===>} evaluate ($num_struct=2)
{* root file name to determine coordinates to be read for averaging *}
{* assumed that coordinates start at name_1.pdb and go up to name_n.pdb *}
{===>} evaluate ($coord_root="ref4/slowcool")
if ( $averaging = false ) then
coordinates @@$coord_in_file
elseif ( $averaging = true ) then
evaluate ($input_coor=$coord_root + "_1.pdb")
coordinates @@$input_coor
end if
{=========================== output files ============================}
{* output map *}
{===>} evaluate ($output_map="maps/fo-fc_ref4_siga.map")
{====================== crystallographic data ========================}
{* form factor library *}
{===>} evaluate ($scatter_library="XTALLIB:scatter.lib")
{* space group *}
{* uses International Table conventions with
subcripts substituted by parenthesis *}
{===>} evaluate ($sg="P2(1)2(1)2(1)")
{* unit cell *}
evaluate ($a=143.350)
evaluate ($b=64.300)
evaluate ($c=46.230)
evaluate ($alpha=90)
evaluate ($beta=90)
evaluate ($gamma=90)
{* reflection file *}
{* includes test set for cross validation *}
{===>} evaluate ($ref="t13g_2.cv")
{* resolution limits for data included in map calculation *}
{* all data available should be included in the map calculation *}
{===>} evaluate ($low_res=40.0)
evaluate ($high_res=1.7)
{* F/sigma amplitude cutoff. *}
{===>} evaluate ($f_cut=0.0)
{* Absolute amplitude cutoffs - used to remove outliers *}
{===>} evaluate ($f_low=0.001)
evaluate ($f_high=1000000)
{* NCS information *}
{* choice of: "restrain", "strict", "none" (type: string) *}
{===>} evaluate ($ncs_flag="none")
{* NCS-restraints/constraints file name *}
{* examples are in xtalrefine/ncs_strict.inp
and xtalrefine/ncs_restrain.inp *}
{===>} evaluate ($ncs_file="" )
{========================== atom selection ===========================}
{* select atoms to be included in map calculation *}
{===>} vector ident (store1) (known and not hydrogen)
{==================== map generation parameters ======================}
{* maps are calculated nFo - mFc *}
{* eg. 2fo-fc map -> $nn=1 and $mm=1
fo-fc map -> $nn=1 and $mm=1 *}
{* specify n *}
{===>} evaluate ($nn=1)
{* specify m *}
{===>} evaluate ($mm=1)
{* use sigmaa weighting for map *}
{===>} evaluate ($sigmaa=true)
{* should cross validated sigmaa estimate be used *}
{===>} evaluate ($sigmaa_cv=true)
{* scale map by dividing by the rms sigma of the map *}
{* otherwise map will be on an absolute FOBS scale *}
{===>} evaluate ($map_scale=true)
{* map grid size: dmin*grid, use grid=0.22 for better map appearance *}
{===>} evaluate ($grid=0.22)
{============ initial b-factor and bulk solvent corrections ==========}
{* Initial B-factor correction *}
{* choice of: "none", "iso", "aniso" (type: string) *}
{===>} evaluate ($bscale="none")
{* lower resolution limit for B-factor correction *}
{* the correction can only be calculated using data truncated at a
lower resolution limit of between 8 and 6 A. The correction will be
applied to all reflections *}
{===>} evaluate ($low_res_bscale=6.0)
{* bulk solvent correction (true or false, type: logical) *}
{* a mask is created around the atoms selected in store1. The region
outside this mask is the solvent region *}
{===>} evaluate ($bulk_sol=false)
{* mask for bulk solvent - from file if name given, otherwise
from coords of atoms selected in xrefin (store1) *}
{===>} evaluate ($bulk_mask="")
{* optional: fix solvent density level by setting
this parameter to a positive value. *}
{===>} evaluate ($k3=-9999.)
{* optional: fix solvent b-factor by setting
this parameter to a positive value. *}
{===>} evaluate ($b3=-9999.)
{===========================================================================}
{ things below this line do not normally need to be changed }
{===========================================================================}
parameter
if ($par_1 # " ") then
@@$par_1
end if
if ($par_2 # " ") then
@@$par_2
end if
if ($par_3 # " ") then
@@$par_3
end if
if ($par_4 # " ") then
@@$par_4
end if
if ($par_5 # " ") then
@@$par_5
end if
end
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 }
reflection @$ref end
resolution_limits= $low_res $high_res
do (fobs=0) (amplitude(fobs) <= $f_cut * sigma)
do (fobs=0) ($f_low > ampl(fobs) or ampl(fobs) > $f_high)
evaluate ($f_low=0.001)
evaluate ($f_high=1000000)
fwindow $f_low $f_high
selection=( store1 )
method=FFT
fft
memory=2000000 grid=$grid
end
end
if ($ncs_flag="strict") then
@@$ncs_file
elseif ($ncs_flag="restrain") then
@@$ncs_file
flags include ncs end
end if
xrefin
update
end
@@XTALMACRO:scalenbulk (
bscale=$bscale;
sel=( $high_res <= d <= $low_res_bscale and
$f_low <= amplitude(fobs) <= $f_high and test=0 );
atom_select=( store1 );
sel_bulk=( $high_res <= d <= $low_res and
$f_low <= amplitude(fobs) <= $f_high and test=0 );
bulk_sol=$bulk_sol;
bulk_mask=$bulk_mask;
k3=$k3;
b3=$b3;
fcalc=fcalc;
fobs=fobs;
sigma=sigma;
fpart=fpart;
B2_11=$aniso_11;
B2_22=$aniso_22;
B2_33=$aniso_33;
B2_12=$aniso_12;
B2_13=$aniso_13;
B2_23=$aniso_23;)
xrefin
update
end
xrefin
declare name=sel domain=reciprocal type=integer end
declare name=sel_test domain=reciprocal type=integer end
do (sel=0) ( all )
do (sel_test=0) ( all )
do (sel=1)
($f_low <= ampl(fobs) <= $f_high and
$high_res <= d <= $low_res)
if ($sigmaa_cv=true) then
do (sel_test=1)
($f_low <= ampl(fobs) <= $f_high and
$high_res <= d <= $low_res and test=1)
else
do (sel_test=1)
($f_low <= ampl(fobs) <= $f_high and
$high_res <= d <= $low_res)
end if
{* Calculate number of bins used for E and sigmaa calculation. }
{ Make sure there are at least 25 reflections in each bin. }
show sum (1) (sel_test=1)
evaluate ($mbins=int(max(20,$result/25)))
evaluate ($mbins=min($mbins,50))
mbins=$mbins
end
if ( $sigmaa = true ) then
xrefin
declare name=eobs domain=reciprocal type=real end
declare name=ecalc domain=reciprocal type=real end
declare name=sigmaa domain=reciprocal type=real end
declare name=sigmad domain=reciprocal type=real end
declare name=dd domain=reciprocal type=real end
do (eobs=norm(amplitude(fobs))) ( sel_test=1 )
do (ecalc=norm(amplitude(fcalc+fpart))) ( sel_test=1 )
do (sigmaa=sigacv[weight=100](eobs,ecalc)) ( sel_test=1 )
do (sigmad=sqrt(save(ampl(fobs)^2) ( 1 - sigmaa^2 ) ) ) ( sel_test=1)
do (dd= sigmaa * sqrt( save(amplitude(fobs)^2) /
save(amplitude(fcalc+fpart)^2) ) ) ( sel_test=1 )
if ($sigmaa_cv=true) then
{* Cross-validation active: need to expand to all selected *}
{* reflections and compute the normalized structure factor *}
{* for all data. *}
do (sigmaa=sum(sigmaa*test)/ max(1,sum(test))) ( sel=1 )
do (sigmad=sum(sigmad*test)/ max(1,sum(test))) ( sel=1 )
do (dd=sum(dd*test)/ max(1,sum(test))) ( sel=1 )
do (eobs=norm(amplitude(fobs))) ( sel=1 )
do (ecalc=norm(amplitude(fcalc+fpart))) ( sel=1 )
end if
print r
statistics
(sigmaa) (sigmad) (dd) (save(eobs^2)) (save(ecalc^2))
selection=( sel=1)
end
do (fom=2 sigmaa eobs ecalc / (1 - sigmaa^2))
($low_res >= d >= $high_res and ampl(fobs) > 0)
do (fom=i1overi0(fom)) ( acentric and ampl(fobs) > 0 )
do (fom=tanh(fom/2)) ( centric and ampl(fobs) > 0 )
!changes for map coeffiecient weighting of centric reflections
do (deri1=combine(2 $nn fom ampl(fobs) - 2 $mm dd ampl(fcalc+fpart),
phase(fcalc+fpart)))
($low_res >= d >= $high_res and acentric and ampl(fobs) > 0 )
do (deri1=combine($nn fom ampl(fobs) - $mm dd ampl(fcalc+fpart),
phase(fcalc+fpart)))
($low_res >= d >= $high_res and centric and ampl(fobs) > 0 )
undeclare name=eobs domain=reciprocal end
undeclare name=ecalc domain=reciprocal end
undeclare name=sigmaa domain=reciprocal end
undeclare name=sigmad domain=reciprocal end
undeclare name=dd domain=reciprocal end
end
else
xrefin
do (deri2=fcalc+fpart) (all)
multiscale
bfmin=-40 bfmax=40
set1=fobs k1=-1 b1=0
set2=deri2 b2=0
selection=($low_res_bscale >= d >= $high_res and ampl(fobs) > 0 )
end
do (deri2=$k2*deri2) (all) { apply scaling to all reflections }
do (deri1=combine($nn * ampl(fobs) - $mm * ampl(deri2), phase(deri2)))
( sel=1 )
end
end if
xrefin
do (map1=ft(deri1)) ($low_res >= d >= $high_res and ampl(fobs) > 0 )
end
evaluate ($remark="")
if ( $averaging = true ) then
evaluate ($remark="averaged ")
end if
evaluate ($remark=$remark + encode($nn) + "fo-" + encode($mm) + "fc ")
if ( $sigmaa = true ) then
evaluate ($remark=$remark + "sigmaa")
if ( $sigmaa_cv = true ) then
evaluate ($remark=$remark + "cv")
end if
end if
evaluate ($remark=$remark + " map")
remark $remark
xrefin
write map
automatic=$map_scale
from=map1
formatted=false
output=$output_map
cushion=5.0
selection=( store1 )
extend=molecule
end
end
stop
More information about the X-plor
mailing list