2010年12月20日月曜日

何か作ってみた

シミュレーションのデータ取りの合間に、ちょっとした思いつきでスクリプトを書いてみた。

問題提起としては次の通り。


RAxMLの最新バージョン(7.2.6)では -uオプションが使えず、これによってブートストラップ解析において各replicateに対し複数の初期系統樹を使ったML探索が出来なくなっている。

このことについては,作者の主張としては

「100のbootstrapサンプルに対し10回のML探索を行うよりは、1000サンプルに対し1回ずつ探索を行う方が良い結果が得られる」

ということである。

ただ、この主張に対しては疑念はある。それは、

「配列数、配列長がかなり大きくなった場合、各replicateにおいても全体としての探索空間がもの凄く広くなってしまう。その場合(RAxMLの探索効率が既存のソフトウェアの中では優秀な方だとしても)、デフォルトでの一回のML探索をやるだけでは探索の非効率性がBP値に影響を与えてしまうことが考えられる。」

ということである。

すなわち、例えばある枝に対しBP=50が得られたとして、それが純粋にBP値の定義通り「ある枝の分岐を指示する情報が、配列のサイト全体に対しどの程度の割合で含まれているのか=配列データがその分岐を全体としてどれだけ指示するか」ということを指すのか、それとも「多くのサンプルにおいてML系統樹の探索漏れが生じている」ことの影響が多分に含まれていることをも含んでいるのか、が分からないことが問題である。

あるいは、単純に各サンプルに対する探索効率が悪化することにより、各サンプルにおいて局所解に捕まりやすくなってしまうことも考えられるだろう。

従って、これらのよろしくない要因が結果としてのBP値の過大評価or過小評価に繋がることは十分に考えられる。んでこれらの影響はブートストラップの試行を繰り返してもかなりぶれるかもしれない。

簡単に言って、Phylogenomicクラスの解析でも、そういった要因からブートストラップ解析を何回かやったら+-10くらいBPがぶれてしまうような解析結果なんて議論に値しないでしょ?ということを言いたいのである。

じゃあこれをどうやって解決するかと言うことだが、まあ一番単純なのはbootstrapの各サンプルでのML解析を複数初期系統樹から行って、解析の精度を上昇させることだろう(探索結果の試行によるブレの減少)。これでも限界はあるけどね。

なお、今回の場合は配列データに強力なバイアスがあってML解析そのものがそれに強く誘引されてしまうようなケースは問題が根本的に違うのでこれを考慮しない。


長いので分割

0 件のコメント: