水の拾いかた

S. Fushinobu

水を拾う方法として、現時点で一番ラクチンだと思うのは、CNSの "water_pick.inp" を使う方法です。全自動で拾ってくれる上に、位置やBまで精密化してくれます。rejection criteriaまで思いのままなので、変なピークを拾うことも少ないです(でも、Oなどで必ずピークを確認すること)。ただし、この方法は、Fo-Fcまたは2Fo-Fcマップの片方しか見てくれません。

ccp4のexampleのwaterpeaksというスクリプトは、2Fo-FcとFo-Fcの平均マップを見てくれるので、以前はこれがお気に入りでよく使っていました。rejection criteriaを甘めにして多めに拾い、精密化したBを見たり、Oなどでマップと周辺環境をじっくり見て切り捨てていくのがいいと思います。

注意事項

結構面倒くさいですね。(スクリプトの後に続きあり)

--------------- 0pdbset.sh ---------------
#!/bin/csh -f
#!Take output from Xplor into a form suitable for ccp4
pdbset xyzin foo_1.pdb \
xyzout foo_ccp4.pdb << 'eof-1'
cell    98.801 98.801 149.341   90.00   90.00  120.00
spacegroup P3221
xplor
'eof-1'
exit
--------------- 0pdbset.sh ---------------
 
--------------- 1avewat.sh ---------------
#!/bin/sh
#
# Procedure  for finding water peaks. 
# An atom map generated with SFALL is used to mask out the protein regions in
# both an fo-fc and 2fo-fc map.  These solvent maps are then averaged and 
# searched for peaks.  
#
# fofcmap script does the same thing but only uses fo-fc map
#
set -e
 
########################################################################
# Generate atom map for final coordinates
########################################################################
sfall    			\
MAPOUT junk_fc.map \
XYZIN  foo_ccp4.pdb \
<< END-sfall 
MODE ATMMAP RESMOD
FORM NGAU 2
SFSG P3221
symm P3221
END-sfall
########################################################################
# Calculate sfs for final coordinates -
########################################################################
sfall    			\
HKLIN foo.mtz \
HKLOUT junk_fofc.mtz  \
XYZIN  foo_ccp4.pdb \
<< END-sfall 
MODE SFCALC XYZIN HKLIN
FORM NGAU 2
RESO  8 2.8
BINS 40
RSCB  8 2.8
BADD 0
LABI FP=FP SIGFP=SIGFP
LABO FC=FC PHIC=AC
END-sfall
#
########################################################################
# Fo-Fc map from final coordintes.  
########################################################################
#
fft \
HKLIN  junk_fofc.mtz  \
MAPOUT junk_fo-fc.map  \
<< END-fft
RESO 8 2.8
SCALE F1 1.0 0.0
SCALE F2 1.0 0.0
GRID 294 294 450        ! see 1st sfall output to determine
XYZLIM 0 293 0 293 0 75 ! GRID and XYZLIM
BINMAPOUT
LABI F1=FP SIG1=SIGFP F2=FC PHI=AC
END-fft
#
########################################################################
# 2Fo -fc map from final coordintes.  
########################################################################
#
#
fft \
HKLIN  junk_fofc.mtz  \
MAPOUT junk_2fo-fc.map  \
<< END-fft
RESO 8 2.8
SCALE F1 2.0 0.0
SCALE F2 1.0 0.0
GRID 294 294 450        ! see 1st sfall output to determine
XYZLIM 0 293 0 293 0 75 ! GRID and XYZLIM
BINMAPOUT
LABI F1=FP SIG1=SIGFP F2=FC PHI=AC
END-fft
#
#
########################################################################
# exclude points from 2fo-fc map which occur in fcalc map
########################################################################
 
overlapmap \
MAPIN1 junk_fc.map  \
MAPIN2 junk_2fo-fc.map  \
MAPOUT junk_2fo-fc_masked.map  \
<< end-over
MAP EXCLUDE
end-over
#
########################################################################
# exclude points from fo-fc map which occur in fcalc map
########################################################################
#
overlapmap \
MAPIN1 junk_fc.map  \
MAPIN2 junk_fo-fc.map  \
MAPOUT junk_fo-fc_masked.map  \
<< end-over
MAP EXCLUDE
end-over
#
########################################################################
# average 2 solvent maps now
########################################################################
#
overlapmap \
 MAPIN1  junk_fo-fc_masked.map \
 MAPIN2  junk_2fo-fc_masked.map \
 MAPOUT  junk_av_masked.map \
<< end-over
MAP AVERAGE
end-over
########################################################################
# run peakmax with electron density level 0.15  - look at 2fo-fc, fo-fc 
#                                                 to get sensible level
########################################################################
 
#  run extend to cover molecule
extend    \
 XYZIN   foo_ccp4.pdb \
 MAPIN   junk_av_masked.map \
 MAPOUT  junk_av_masked.ext \
<< END 
border 4.0
end
END
#
########################################################################
#  Some peaks may appear twice since map has been extended.
########################################################################
 
peakmax                 \
 XYZOUT junk_peaks.pdb \
 MAPIN  junk_av_masked.ext \
<< END-peakmax
NUMPEAKS 1200
THRESHOLD rms 1.5
RESIDUE TIP
ATNAME OH2
CHAIN S
END-peakmax
#
########################################################################
# run atpeak to check distances within 4.0A
########################################################################
#
 
watpeak                  \
PEAKS  junk_peaks.pdb \
XYZIN  foo_ccp4.pdb \
xyzout foo_wat.pdb \
<<END-watpeak
TITLE  2.0 to 4.0, no HETATOMONLY 
DISTANCE 2.0 4.0
SYMMETRY P3221
!HETATOMONLY ! use if only distances from O and N wanted
END-watpeak
#
 
rm junk*
exit
--------------- 1avewat.sh ---------------
 

水分子の名前 (HOH, WAT, TIP等)と水原子の名前(OH2, OW, O1等)、chain(なし、S等)は、nedit等を使って、適当なものに変換すること。

Oのwater_pekpikを使う場合、以下のように行う。

s_a_i foo_wat.pdb water (読み込み)
mol water zone ; end (表示)
ce_at water 1 OW (1個目の水を見る)
 
water_init
newat (mol nameをnewatにする)
(number: return: [100])
(resname: return: [1])
 
water_pekpik
water (pekmol)
(zone: return: [all molecule])
newat (solmol)
(first resname: return: [1])

map、環境を見ながら、yes/noで選択していく。途中でやめたいときはclear_flags。

newatというmolの中に選んだ水が入っているので、

s_a_o newat.pdb newat ;;;;;

で出力。ファイルをneditで開き、選んだ水以降の座標が全て1500になってるのでこれを削除。精密化プログラム(CNS等)の好きな水分子名/原子名/chainに変換。

 

connectivity Dbがない、と言われた時は、

odat/all.datのファイルの中の、読み込んでいる水分子の名前(HOH, WAT等)を確認し、

conn_file all.dat

でファイルを読み直したり、読み込むファイルの水分子の名前をnedit等で変更する。

 


Back