遺伝的アルゴリズムで位相改善

Improving experimental phases for strong reflections prior to density modification Acta Cryst. (2013). D69, 2039-2049 を読んだ。

とりわけ強い反射数百個の位相を遺伝的アルゴリズムで改善してから DM することで、綺麗な map が得られるという。アイデアがすばらしい。精密化の収束半径内にあるような初期位相さえ与えればあとはうまいこと行くんだから、総当たりすれば位相問題は解けるはずというのは誰もが思いつくことだが、数万の反射に対する位相の組み合わせ最適化問題なので、実際には解けない。それを「強度の強い反射数百個だけやればいい」って思いつくのが賢い。今回の論文は、位相を ab initio に決定してるわけではなくて改善してるだけだが、それでもうまいなぁと思った。

この手の探索問題では、「どういう探索方法を使うか」と「解をどう評価するか」が重要である。前者には遺伝的アルゴリズムを用い、後者の評価関数としては map skew を使っている。直感的にいうと、正解の map では大部分(60-70%)を占める溶媒領域に比べて高密度な蛋白質領域があるため、電子密度のヒストグラムが右方に尾を引く。それを positive skew として検出しているということだろう。こんな単純かつグローバルな指標でよい性能が得られるというのもエレガントだなあと感心した。

遺伝的アルゴリズム焼きなまし法が使えるようなアイデアを思いついた時に、さらさらとコードが書き下せるようになりたい。Topcoder Marathon とかがよい訓練にはなると思うけれど、あれは時間が…… (と言っているから上達しないんだな、うむ。)