3.4.3. 結晶構造との比較¶
3.4.3.1. モデルのばらつきによるモデルの分解能の評価¶
結晶構造の比較する前に、モデルの分解能について調べてみる。
モデルの分解能はFourier Shell Correlation (FSC)でビーズモデルのばらつきから、モデルの分解能がわかるという報告がある。[7]
これは、damaver
を実行した際に生成されるログファイルdamsel.log
に記述されている。
[1]:
flog=open('damsel.log','r')
lines=flog.readlines()
res = [i for i in lines if 'Ensemble Resolution' in i]
print(res[0])
Ensemble Resolution = 32 +- 3 Angstrom
3.4.3.2. 元のpdbファイルとの重ね合わせ¶
結晶構造と比較するには代表的ビーズモデルの向きをあわせてやる(アラインメント)してあげる必要がある。
6lyz.pdb
にdamfilt.pdb
をアラインメントしてみよう。
ここではsupalm
[8]という``ATSAS``のプログラムを使用する。
[2]:
!!supalm 6lyz.pdb damfilt.pdb
[2]:
[' Read file .............................................. : 6lyz.pdb',
' Number of atoms read ................................... : 1102',
' Fineness of the template ............................... : 1.514',
' Read file .............................................. : damfilt.pdb',
' Number of atoms read ................................... : 853',
' Fineness of the superimposed structure ................. : 3.500',
'',
' Principal axes orientation table',
'',
' Distance Orientation',
'',
' 1.1360454524805610 1 -1 -1',
' 1.1419180336932468 1 1 -1',
' 1.1706840733884827 -1 1 1',
' 1.1720072826064973 -1 -1 1',
' 1.1741133266525163 1 1 1',
' 1.1992066476404875 -1 -1 -1',
' ---------------------------------------------',
' 1.1996296950877527 1 -1 1',
' 1.2065759032678545 -1 1 -1',
' Calculating amplitudes from 6lyz.pdb',
' --WARNING: Recompute the intensity with LM= 13',
' Calculating amplitudes from damfilt.pdb',
' Initial Final',
' Orientation Correlation Correlation',
' 1 -1 -1 0.87072 0.87756',
' 1 1 -1 0.87217 0.87629',
' -1 1 1 0.86609 0.87156',
' -1 -1 1 0.86081 0.87057',
' 1 1 1 0.86799 0.88473',
' -1 -1 -1 0.85997 0.86985',
' Final distance (NSD) = 1.1673967678946129 ',
' Wrote file ......... : damfiltr.pdb',
'']
6lyz.pdb
にアラインメントされたdamfilt.pdb
はdamfiltr.pdb
として保存されているのでそれを読み込む。
通常なら別のプログラムを立ち上げて確認することになるのだが、jupyter-notebook上で3D表示し、視点を変えることもできる。
[3]:
import nglview
view = nglview.show_file("damfiltr.pdb") # ビーズファイルを指定する
view.add_surface('.CA', opacity=0.1) # ビーズファイルの表面だけ表示する
#以下の部分はグラフィックボードとの相性で同時に表示されないこともあるのでコメントアウトしている。
mol2=nglview.FileStructure("6lyz.pdb") #pdbファイルを指定する
view.add_structure(mol2)
view.camera = 'orthographic'
view.center()
view
気に入った向きで画像を動かして、次のコマンドで保存する。
[4]:
view.download_image('beads.png')
3.4.3.3. Normalized Spatial Discrepancy (NSD)値¶
構造の差異を表す指標としてRMSD(Root Mean Square Deviaiton)平均自乗偏差が良く使われるが、結晶構造とビーズモデルでは分解能が違うのでRMSDは使えない。
そこで、タンパク質溶液散乱ではNSD(Normalized Spatial Discrepancy)という指標を使用する。[6]
NSDは、元のPDBファイルとの重ね合わせでもNSDが最小になるようPDBの方向を変えているので、damfiltr.pdb
ファイルにも記載されている。
[5]:
flog=open('damfiltr.pdb','r')
lines=flog.readlines()
res = [i for i in lines if 'Final distance' in i]
print(res[0])
REMARK 265 Final distance (NSD) : 1.1674