kuroの覚え書き

96の個人的覚え書き

タンパク質立体構造の予測

すでに解かれているタンパク質モデルをお手本に別の似たタンパク質の立体構造を予測してみる。

UCSF Chimeraでできるらしいのだが、このソフトウェアは色々できることがありすぎて、逆に使い方がわかりにくい。
そこで、そもそもChimeraも内部で使っているらしい、MODELLERをコマンドラインから使うことにする。

https://salilab.org/modeller/
ここからソフトウェアをダウンロードしてくる。
Academicな使用は無料だが、インストールするにはRegistrationが必要である。
インストーラを起動してRegistrationするとメールで送られてくるキーワードを入力すると、無愛想にインストール完了するがコマンドがインストールされるだけなのでアプリのようなものはできない。

今回はversion 10.0をダウンロードしたので、起動するには

$ mod10.0
usage: mod10.0 script [...]

とする。
ちなみに

$ which mod10.0
/usr/local/bin/mod10.0

とりあえずインストールができたなら、ためしになんかモデリングしてみる。
シロイヌナズナFTタンパク質をお手本にトマトのFTタンパク質をモデリングしてみよう。ほとんど一緒だから、まずおかしなことにはならないでしょう。

まず必要なものはPDBファイルというもの。これを
f:id:k-kuro:20210317185900p:plain
このように
https://pdbj.org
からダウンロードしてくる。pdb1wkp.entを落としてきて1WKP.pdbという名前にしておく。

次にアライメントファイルを作成する。(ファイル名はalign.pirとした)

>P1;Solyc03g063100.2.1
sequence:Solyc03g063100.2.1::::::::
RDPLVVGRVVGDVLDPFTRTIGLRVIYRDREVNNGCELRPSQVINQPRVEVG
GDDLRTFFTLVMVDPDAPSPSDPNLREYLHWLVTDIPATTGSSFGQEIVSYESPRPSMGI
HRFVFVLFRQLGRQTVYAPGWRQNFNTRDFAELYNLGLPVAAVYFNCQRESGSGGRRRSA
D*
>P1;1WKP
structureX:1WKP:6:A:168:A::::
RDPLIVSRVVGDVLDPFNRSITLKVTYGQREVTNGLNLRPSQVQNKPRVEIG
GEDLRNFYTLVMVDPDVPSPSNPHLREYLHWLVTDIPATTGTTFGNEIVSYENPSPTAGI
HRVVFILFRQLGRQTVYAPGWRQNFNTREFAEIYNLGLPVAAVFYNSQRES---------
-*

clustalw等でアライメントを作成してPIR形式で保存したところにヘッダーをつける。お手本となるAtのアミノ酸配列はPDBファイルをダウンロードしてきたページで配布されている配列を使っておくと間違いない。
上にモデリングしたい配列、下にお手本配列を置いたが、逆でもいいのかもしれない。
ヘッダーの書式はターゲットの1行目はPIRそのままでいい。まあなんでもいいみたい。
2行目には
sequence:(1行目で使った名前)::::::::
後ろのオプションはとりあえずそのまま。
お手本側のヘッダー1行目もPIRそのままでいいと思うが、PDBのIDにしておくのが無難かもしれない。
2行目は
structureX:(1行目で使った名前):6:A:168:A::::
X線構造解析されているときはstructureX。NMRのときはどうするんだろうね。(structureNらしい)
この後ろの6:A:168:Aというのが曲者で、おそらくN末の構造は不安定で解かれていないために6番目のアルギニンからしか情報がないらしく、PDBファイルの
f:id:k-kuro:20210317191132p:plain
この部分がARG A 6からになっている。ATGから構造が解かれていればMET A 1のようになっているはずだが。
またAというのがなにかというとPDBファイルが4量体の構造を解いているらしく
f:id:k-kuro:20210317191408p:plain
ABCDという4つのChainを含んでいるため、Aのchainをお手本とするよ、という意味になる。
168は同様にC末端がどこまでかを表している。

もともとのアライメントを取ったfastaファイルでは

>1WKPA:FLOWERING LOCUS T protein
GSHMSINIRDPLIVSRVVGDVLDPFNRSITLKVTYGQREVTNGLNLRPSQVQNKPRVEIG
GEDLRNFYTLVMVDPDVPSPSNPHLREYLHWLVTDIPATTGTTFGNEIVSYENPSPTAGI
HRVVFILFRQLGRQTVYAPGWRQNFNTREFAEIYNLGLPVAAVFYNSQRES

となっているがMの前のGSHは要らないのは当然としてPDBが6番目のRからなので、MSINIも削ってアライメントを作る必要がある(アライメントしてから削ってもいい)
今回はTargetの方もそれに合わせて頭を削っておいた。そのままではだめなのかは試してみていない。
さて、ここまで準備したら、最後にスクリプトファイルを書く。

from modeller import *
from modeller.automodel import *

log.verbose()
env = Environ()

a = automodel(env,
              alnfile  = 'align.pir',
              knowns   = '1WKP',
              sequence = 'Solyc03g063100.2.1')
a.starting_model= 1
a.ending_model  = 1
a.make()

これをscript.pyと名前をつけて、PDBファイル、アライメントファイルと同じフォルダに保存し、そのディレクトリ内で

$ mod10.0 script.py

とやるとパタパタパタっとファイルが生成されて完了する。
今回はSolyc03g063100.2.1.B99990001.pdbというファイルが生成されていた。
これをお手本にしたPDBファイルと比べてみよう。
f:id:k-kuro:20210317195608p:plain
ほほー。確かにそっくりだ。左はAtの4量体で右がトマトの予測構造。