SHELXL使いへの道
- 参考文献:Refinement of Triclinic Lysozyme to 1.1Å by Thomas Schneider -- SHELXLチュートリアル
- 実際の流れと全てのファイルが公開されているので一度は確認しておくとよいでしょう
- SHELXLを使ってみよう -- ざっくりとしたSHELXLの使い方の流れ。この記事よりも先に一通り目を通すことをおすすめします。
用意するもの
- PDBファイル
- 私の場合はHKLファイル(MTZ2VARIOUSを使ってh,k,l,F,sig(F)を反射数分、テキストファイルへ出力したものです。
最初のコマンド
$ shelxpro
- つらつらなんか言われた後に「続ける?」って聞かれます。始めたところなんで、辞める理由も無くエンター。
- この後、
Enter name of .ins file [shelxpro.ins]: インプットファイルの名前(これから作る) Enter name of PDB file [shelxpro.ent]: PDBファイルの名前(insファイル作成に必要) Enter title [shelxpro]: タイトルを入力(お好きなように) Cell in Angstroms and deg. [***.** ***.**.....] PDBファイルのCRYST1に載っているのを画面に表示してくれるはず。合ってたらエンター。 Enter Z (number of molecules per cell): 読んで字のごとくで。これも空間群から出してくれるので合ってたらエンターで。 Enter space group in PDB or XPREP rotation: 空間群。出してくれてます。エンター。 Enter wavelength in Angstroms [****] : 異常分散の解析以外には必要ないかもしれませんが、測定波長を。 Generate atom coordinates using SCALE instructions from PDB file(P) or use current cell to calculate transformation matrix (C) [C]:
- 逆格子、実格子の変換マトリックス(PDBヘッダのSCALE項)をどうするか。Cがデフォルト。これでよいと思われます。
SHELXL does not recognize chain ID letters, so it will be necessary to incorporate these into the residue numbers by adding offsets of (say) 1000 for chain A, 2000 for B etc. to the residue numbers from the PDB files. Offset for chain A[1000]:
- 何言われてるの?おいらのPDBにchainIDが入ってないので残基番号で見分けがつくようにしたいのか・・・。とりあえずデフォルトで。
Enter old residue numbers (modified by chain ID, if any) for all N-termini (<CR> if none). To continue on the next line, put "=" at the end of the line:
-
よくわからんのでエンターじゃ
Enter old residue numbers for all C-terminii in the same way: しらん! Enter old residue numbers in the same way at which renumbering of a block of residues should start. The block continues until the next residue specified here (<CR> if none): しらん New residue number for first solvent water [3001]: おけ Reset water occupancies to unity ? [Y] 水の占有率を1.0にする?いんじゃない? Convert anisotropic atoms to isotropic (Y or N) [Y]: 異方性でやってた温度因子、等方性にする?是非。 HKLF code (3 for F, 4 for F-squared) [4]: Fと強度どっちで入れますか?デフォルトはF**2(強度) May have to add restraints etc. for the following residues that were not matched in the dictionary file: FS4 SUL FS4 SULがわかりません。結合情報のことね。さてはてふむぅ。 The .ins file has been written successfully. The U option in SHELXPRO may be used for further checking of occupancies etc.
- とりあえず、クラスターのことはわからなかったなりに.insファイルを作ってくれたみたい。
- よぉし。やってみますか?
Rigid body refinement
とりあえず.insファイルを編集してSHELXLに突っ込む、というのが常套のようなのです。なので、先ほどSHELXPROに作ってもらった.insファイルを大切にね!
conjugate gradient minimization -> full matrix least squares minimization
CGLS 10 -> L.S. 20 -1
- ※-1 を入れておくとFree-R因子を表示することになる。Rigid bodyリファインメントの場合はパラメータがあまり動かないのでフルマトリクスの精密化を行う。
座標の精密化しかしたくない
BLOC 1
- ※座標の精密化しかしたくない
2.5Åまで使いたいです。や、むしろ、2.5Åまでしか使いたくないです。
SHEL 10 0.1 -> SHEL 10 2.5
4Åから徐々に0.1Åずつ精密化に使用する反射を増やしていきたいです。
STIR 4.0 0.1
タンパク質を剛体(堅いからだ)と定義するため、
AFIX 6
- というパラメータを「一番最初の原子」より「前」に入れなければならない。
そして
AFIX 0
- というパラメータを「一番最後の原子」の「後ろ」に入れなければならない。
さてさて、これで
$shelxl foo
と打ち込んであげればリファインメントが始まりますが、大体の場合叱られているLOGが流れます。対処する、しないは別にして警告やコメントはしっかりと理解するようにしておきましょう。特に対称操作でぶつかる分子などの情報はしっかりと修正するようにメモっておきましょうね。SHELX君はこれらの結晶中でとなりあう分子間の相互作用に関するリストレイン情報を持ち合わせていないので、とても困ってしまうってこった。
どうすればよいの?
何が起こっていたのか?ということを理解するために、.lstファイルを見るようにしましょう。
Following 1,2- or 1,3-distances involving residues not restrained
という行があるので、そこから先を見てみると
CB_1011 Fe1_1082 SG_1011 Fe1_1082 SG_1011 S1_1082 SG_1011 S3_1082
てのが、ツラツラと並んでいます。人によって行数が多い、少ないってのはあると思いますが。これらはSHELX君が内部に原子間結合情報を持ち合わせておらず「リストレインしませんでした、フン」という意味を持っています。1,2- 1,3-distancesというのは恐らく、SHELXはある3つの原子が順に1-2-3と結合しているときに、1の原子に注目して2番目、あるいは3番目の原子に対する位置の結合情報を扱っているためだと思います。これによって結合長、結合角が規定できるわけですよね。
さしあたって
結構な数は叱られるはず。よくよく見ると、ナガーイアミノ酸残基など(ARGとか)が引っかかる場合が多い(モデルがしょぼいから?)。こんなときはCbetaより先をちょん切って使うってなことをやってみましょう(初期段階はね)。どうやって削るのか?ってのは、PDBをこちょこちょいじるのでは「なくて」、.insファイルをいじるのだ。
叱られているアミノ酸について
.insファイル(よく見ようね)中に残基情報が載っているところがあるので、そいつらをエディタ(viとかemacsとかね)で消してしまおうってこと。
まだ叱られますか?どうですか?
no match
とかって言われる場合、モデルを切り取ったところとかで叱られるはずなので、個人で理解できていれば問題ないでしょう。
座標と等方性温度因子の精密化だよ〜ん
まずは
前の精密化のファイルをコピーするのだ。
$cp foo.res foo2.ins
とな。SHELX君はこのように精密化によって変わった情報(上記のRIGIDなら座標は全体的に変わっているはずですよね?)を.resファイルに書き込んでくれています。座標が更新されるわけで、それは次からの精密化に使わなければならないわけで、ずっと使えるなんて、青春がずっと続くなんて思わないでよね。
次に
.insファイルを編集していきましょう。
BLOC 1
を削除。覚えてます?座標の精密化しかしたくないときに、これを使います。今回は「等方性温度因子」も精密化したいので、このようにBLOC文を削っておきます。
L.S. 20 -1 ⇒ CGLS 20 -1
剛体君リファインメントでは無くなったので、フルマトリクス精密化は無謀です(あ、分解能によります)。で、conjugated gradient法による推定的精密化に切り替えます(REFMACCERには馴染み深いですよね?)。
SHEL 10 2.5 ⇒ SHEL 10 1.5
に変えましょう。RIGIDは分解能なんて低くていいんだよー、ってことですよね。これからはしっかりと等方性温度因子を精密化するぞ〜ってことで使用する反射の分解能をあげてあげるということです。
STIR 2.5 0.1
さっきも出てきましたが、2.5Åから0.1Åずつ分解能を伸ばして(反射数を増やしていって)精密化をするってことです。RIGIDでは2.5Åで分子全体の位置を決めました。で、今回の場合はモデルが正しいと思っているので(前に解けてた、あるいはREFMACである程度精密化をしていた、と言う前提)、2.5Åの位相が「かなりの精度で」決まっていることを期待して、そこから「真の構造」をはずさないように精密化をしていこう、っていう目論見です。
AFIX
コマンドを抜きましょう。AFIXは「ここからここまで剛体だぜ」という宣言です。今回の精密化には必要ありませんね。
SIMU 0.1... ⇒ SIMU 0.05...
リストレイン(原子間の既知情報を使った束縛条件)を緩める、ということを示しています。デフォルトは0.1なんですが、これを緩めておいてわざとSHELX君に「なぁ、ここの構造おかしいんやけど・・・」というLOGをかかせることで「おかしな構造」をいち早く見つけよう、ということでこの段階で「ほんの少し」束縛を緩めてあげています。
計算してみましょう
計算が終わったら電子密度やlistファイル(.lst)を見てみてしっかりと悪い構造を修正していきましょう。
最初の構造修正(モデル修正)が終わったら・・・
もう一度、SHELXLなのだ。賛成の反対なのだ。
タンパク構造の常套ですね。この段階でモデル修正をして「う〜ん、これってマルチコンホメーションかなぁ」などと悩むよりも腫瘍な(主要な)部分の修正だけで結構だ!ってことで。
問題の箇所を見つけよう(.lstファイルを開けてみろよ)
MAX(SIMU) deviation
.lstファイルの最後のほうに掲載されている、この値によってこの作業が楽になります。もしこいつが0.15を越える、つまり、隣り合う二つの原子の温度因子が
0.15*8*pi^2=12A^2
12も違う!って部分を探してみましょう。隣り合う原子の温度因子が12も違っていたら、その原子の周辺に何か問題ありそうですよね?なので、重点的に修正をしてみてください。
問題の箇所に対応しよう
削ったり、再構築(最初のRIGIDで削ったのが見えてきたりしたら)したり、しましょう。
もしも、劇的に精密化情報が変わってしまったら(残基とか削って)
$shelxpro
というコマンドを叩きましょう。つまり、最初に.insファイルを作成したあのアプリケーションを再び用いるわけです。この場合は、ちゃんとPDB座標を準備しておきましょうね。
.insファイルは適宜書き直してね
CGLS 10 -1
にして、Free-Rフラッグを有効に(Free-R因子を出力できるように)しましょう。
SHEL 10 0.1 ⇒ SHEL 10 1.5
まぁ、SHELXPROを使って書き直すかどうかは、人それぞれだとは思いますが、混乱しないためにもこの作業は重要のように思います。
コマンド覚書(ごめんね、全てをフォローするのはザックリ覚えてからにする)
SIMU 0.1.... -> SIMU 0.05....
にすると、リストレイン(つまり原子結合情報の理想を仮定してそれを真の値として束縛をかけること)を緩めることが出来る。SIMUが何を指すのか現時点では知らないが、リストレインを緩めることで「モデルの悪い部分」を見つけやすくすることが出来るらしい。by Thomas Schneider(人のせい)