このエントリで(多分)最後です。
4. shelxD の Try数は 100 で充分。Try数を増やすより最大分解能を変えろ
shelxDによるS-SADのイオウ位置探索において、たまに「最大分解能で 1000 Try 回すのがイイ」ってのを聞きます。
確かに、
- 高角まで含めて回折点数増やした方が、少ないとはいえ寄与が増えるから良さそうだ
- 解が見つからなかったのは、Try数が少ないからで、チャンスを増やせば見つかりそうだ
という気もします。…実際のところはどうなんでしょうか?
前エントリで使ったデータ(波長 1.5 Åで取ったThaumatin結晶)は、最大分解能が 1.66 Åありますので、【SHEL 999 1.6】【NTRY 1000】でやってみたのが、以下の結果です。
最大分解能 | CCallの最頻値 | BestCCall | Maxσ(mode) |
---|---|---|---|
1.6 | 7.479 | 9.56 | 2.999 |
…まぁ、甘くはありませんねw
shelxDにおいて、(異常分散寄与のほとんど見られない・寄与より誤差のほうが大きい)不要な高角データは、解析結果に顕著に悪影響を与えるようです。
このことは、前段階である shelxC が、適切と思われる最大分解能を見積もって、D のインプットファイルに出力する、というお世話を焼いてくれることからも推察できます。
しかし、その見積りがアテにならないこともある、ってのは前々回示した通りですw
(ちなみに、一連のエントリで用いている Thaumatin のデータに対して、shlexC が見積もった最大分解能は 2.2 Åでした)
「やたらに分解能高くしても良くない」のはわかりましたが、「解が見つからなかったのはTry数が少ないから」という疑念は依然として残ります。
そもそも、前エントリの最大分解能を変えたデータでは、それぞれBestCCall が出現したTry数はいくつだったんでしょうか?
出現Try数を含めて表を再掲してみますと、
最大分解能 | CCallの最頻値 | BestCCall | 出現Try数 | Contrast(ori) | Contrast(inv) | Maxσ(mode) |
---|---|---|---|---|---|---|
2.2 | 12.706 | 15.28 | 11 | 0.410 | 0.392 | 2.893 |
2.4 | 14.477 | 17.48 | 26 | 0.436 | 0.380 | 2.344 |
2.5 | 16.295 | 19.27 | 16 | 0.389 | 0.410 | 2.459 |
2.6 | 17.442 | 24.96 | 1 | 0.718 | 0.421 | 6.199 |
2.8 | 20.400 | 29.53 | 70 | 0.514 | 0.452 | 5.922 |
3.0 | 22.523 | 36.59 | 20 | 0.730 | 0.444 | 10.370 |
3.2 | 25.469 | 38.16 | 80 | 0.734 | 0.438 | 8.518 |
3.4 | 27.526 | 42.03 | 39 | 0.715 | 0.437 | 8.222 |
3.6 | 31.333 | 45.88 | 84 | 0.571 | 0.430 | 7.812 |
3.8 | 33.538 | 47.87 | 12 | 0.733 | 0.451 | 4.750 |
4.0 | 35.367 | 49.19 | 60 | 0.511 | 0.436 | 6.586 |
4.2 | 38.519 | 50.44 | 72 | 0.479 | 0.416 | 4.557 |
4.4 | 41.385 | 47.01 | 2 | 0.463 | 0.428 | 2.490 |
4.6 | 41.500 | 49.05 | 42 | 0.493 | 0.418 | 3.356 |
見事にバラバラです… shelxD の仕様からすると当然なんですが…
「BestCCall は現れるのがランダムだ」とすると、「解が見つからなかったのはTry数が少ないから」という疑念もより確かなものになってきます。
…例えば、上記表中の「最大分解能 2.8 Å」のデータ、Maxσ(mode) が前後の分解能のものより若干低く、(ori) と (inv) の Contrast差も明瞭ではありません。
この「最大分解能 2.8 Å」のデータを、Try数 300 回に増やしてやると、
最大分解能 | CCallの最頻値 | BestCCall | 出現Try数 | Contrast(ori) | Contrast(inv) | Maxσ(mode) |
---|---|---|---|---|---|---|
2.8 | 20.403 | 34.15 | 295 | 0.729 | 0.460 | 9.586 |
となり、確かにこの場合は「解が見つからなかったのはTry数が少ないから」だったのが分かります。
では、単純に「デフォルトの Try数を増やせばイイ」のでしょうか? 今回は 300回で見つかりましたが、それでも見つからなかった場合は、さらに 500回とかまで増やすんでしょうか?
もし、今取り組んでる分解能が、最初に示したような「何千回やってもダメ」な分解能だった場合、これではいつまでたっても終わりませんw
ですので、「ある分解能で 100回 Try して解が見つからなかった」場合は、「その分解能が『何千回やってもダメ』な分解能である」という可能性を考慮し、「別の分解能で 100回 Try する」のをお勧めします。
…まぁ、「ある分解能で 1000回 Try」と「分解能10個で 100Try」は、計算にかかる総時間は大して変わらないでしょうが、手間10倍なので、面倒ですがねw
最大分解能を変えながら shelxD を自動で流してくれるスクリプトか GUI があれば楽チンなんですがねぇ…
0 件のコメント:
コメントを投稿