(18)最尤法を用いた分子進化系統樹作成プログラムDeepforest
研究テーマ、研究代表者:
(1)研究テーマ
最尤法を用いた分子進化系統樹作成プログラム Deepforest
(2)研究代表者(氏名、所属、役職)
斎藤 成也
国立遺伝学研究所、助教授
報告項目
(1) 研究の目的
平成8年度委託研究成果である「最尤法を用いた分子進化系統樹作成
プログラム Deepforest」の操作説明書や例題集の拡充(ブラッシュアッ
プ)及び最尤推定高速化のための新規モジュールの開発。
(2) 研究の進捗状況
研究の進捗状況の概要は以下の通り:
■:済
□:予定
1998年 1999年
7 8 9 10 11 12 1 2
+−−−+−−−+−−−+−−−+−−−+−−−+−−−+
<■■■新規モジュールの整備■■□>
<■■■■■操作説明書の整備■■■■□□□□□□□□>
<■■■■■■例題集の整備□□□□□>
新規モジュールの整備
予定の約90パーセントを完了した。新規モジュールはCとKL1/KLIC
を用いて書かれてたもので、最尤推定に関係する述語や組織の進化を
推定するための述語を含んでいる。詳細は新規モジュール一覧を参照
のこと。
操作説明書の整備
予定の約50パーセントを完了した。最新の内容に合わせた操作説明
書を作成中。
例題集の整備
予定の約50パーセントを完了した。例題集用の入力ファイルを予定
の50パーセント作成した。最新の内容に合わせた例題集を作成中。
(3) 現在までの主な成果
(a) 新規モジュール一覧
主な新規モジュールのみを示す。
- pml
-
このモジュールは述語pml/5を含む。pml/5の実体はprotml
ver.2.2(Adachi and Hasewagwa, 1996)から流用したいくつかの関数
にデータを渡し、その結果を受け取ってKL1/KLICのデータに変換する
ものである。最尤推定エンジン部分がすべてCで記述されているため
高速な計算が期待できる。またprotml ver.2.2にはなかったTreeの構
造体をメモリ空間から開放する関数free_treeを追加してあるために、
任意個の最尤推定エンジンをひとつのプロセスから呼び出すことがで
きる。
protmlから流用したプログラムは以下の通り(ヘッダ・ファイルを除く)
getseq.c seqproc.c mltree.c altree.c qltree.c sltree.c
njtree.c njmtree.c prtree.c pstree.c matrixut.c mygetopt.c
protml.c protproc.c dyhfjtt.c mtrev24.c tranprb.c distan.c
mlklhd.c
- threetree
-
述語threetree/4は新しい系統樹作成法であるthreetree法(OOta,
1998)を実装したもの。並列論理型言語実行時のメモリ消費量を押え
るため、同期をとるための工夫がしてある。この方法は最小進化原理
を用いない点に特徴がある。
- sim
-
様々な系統樹作成法のシミュレーションを行うために用いるモジュー
ル。述語sim/5は無限長の疑似乱数のリストを与えると祖先配列から
ある樹形に沿った進化をシミュレートし、その結果生成された現存配
列データと使われなかった疑似乱数のリストを返す。樹形は二分木で
ある必要はなく、任意の節で多分岐していてもかまわない。
その他以下のモジュールについて変更を加えた。
nj The neighbor joining method.
ancestor Inference of ancestral sequences.
dismat Computation and operation of distance matrix.
format Formatting sequence data file.
list Operation of list data.
otermio Input/Output of prolog-like terms.
simn Simulation (for nucleotides).
string Operation of strings.
seq Operation of sequence data (1).
seq2 Operation of sequence data (2).
tree Operation of tree structure data.
probability Computation of probability.
(b) 既存のモジュールへの述語の追加
主な追加述語のみを示す。
- tree tree/6
-
述語tree/6は系統樹作成プログラムの標準フォーマットであるニュー
ハンプシャー・フォーマットを論理型言語で扱いやすいよう
tree(Node, Branch_Lengths, Subtrees)
というファンクタに変換する。ただし現在のバージョンは
Branch_Lengthに整数値しか与えることができない。
- seq conv_seq/2
-
配列の集合をサイトの集合に変換する。もしくはある行列の行と列を
入れ換える。
- seq get_symbol/2
-
ニューハンプシャー・フォーマットで与えられた文字列から最初に現
われるシンボル(メタキャラクタ)、OTU、枝の長さのいずれかを取り
出す。
(c) 新規アプリケーションの開発
主な新規アプリケーションのみを示す。
- super
- 複数の遺伝子系統樹を重ね合わせることにより組織の進化を推定する。
- tdistance
- モデル系統樹と推定された系統樹を比較し、その統計情報を出力する。
- sim_threetree
- 新しい系統樹作成法であるthreetree法の正当性を確認するための
シミュレーション・プログラム。
- sim_dismat
- シミュレーションによって生成されたOTUの配列とその距離行列を出力する。
これを使って任意の距離行列法に属する系統樹作成法の正当性を
調べることができる。
(4) 今年度目標成果ソフトウェアイメージ
操作説明書や例題集はhtmlで供給する予定。また最新の操作説明書や
例題集をユーザが参照できるようDeepForest専用のサイトを構築し、
保守を続ける。
www-admin@icot.or.jp