生命情報学(3,4) 進化系統樹推定 - kyoto u
Post on 13-Apr-2022
5 Views
Preview:
TRANSCRIPT
生命情報学 (3,4)
進化系統樹推定
阿久津 達也
京都大学 化学研究所
バイオインフォマティクスセンター
進化系統樹
進化系統樹 種間(もしくは遺伝子間)の進化の関係を表す木
以前は形態的特徴をもとに構成
現在は配列情報をもとに構成
有根系統樹と無根系統樹
有根系統樹: 根(共通の祖先に対応)がある系統樹
無根系統樹: 根のない系統樹
いずれも葉にのみラベル(種に対応)がつく
有根系統樹 無根系統樹
系統樹を扱う際は、頂点でなく節点という用語を使う
進化系統樹の個数
系統樹の同型性
同型な系統樹:本質的に同じつながり方(グラフとして同型)をした系統樹
(a)と(b):同型
(a)と(c):非同型
(d)と(e):同型
(d)と(f):非同型
系統樹の個数 葉の個数と節点の個数の関係(葉の個数= n)
有根系統樹: 2n-1 個の節点、 2n-2 本の枝
無根系統樹: 2n-2 個の節点、 2n-3 本の枝
無根系統樹と有根系統樹の関係 根は無根系統樹の任意の枝に設定可能
⇒ 有根系統樹の個数=(2n-3)×無根系統樹の個数
枝が 2n-3 本の無根系統樹に1本の枝を追加
⇒ 2n-3 種類の異なる無根系統樹
#葉 #枝(無根系統樹)
#無根系統樹 #有根系統樹
3 3 1 3
4 5 3 3×5
5 7 3×5 3×5×7
6 9 3×5×7 3×5×7×9
… … … …
n 2n-3 (2n-5)!! (2n-3)!!
系統樹の個数(例)
根は無根系統樹の任意の枝に設定可能
⇒ 有根系統樹の個数=(2n-3)×無根系統樹の個数
枝が 2n-3本の無根系統樹に1本の枝を追加
⇒ 2n-3 種類の異なる無根系統樹
UPGMA法
距離行列法の一つ 距離行列法:葉のペアの距離データから系統樹を構成
アルゴリズム 各配列のみからなるクラスタを作成
クラスタが2個になるまで以下を繰り返す
クラスタ間距離が最小のクラスタどうしを併合
新しくできたクラスタと他のクラスタ間の距離を計算
クラスタ間距離
距離の性質
UPGMA法 (Unweighted pair group method using arithmetic averages)
lk CjCi
ij
lk
kl dCC
D,||||
1
||||
||||
ji
jjliil
klCC
CDCDD
UPGMA法の例
}5,4,3,2,1{}3,2,1{
}2,1{}5,4{
869378
217546
CCCCCC
CCCCCC
UPGMA法の正当性 分子時計=進化速度一定性の仮定
枝長=分子時計により刻まれた時間
分子時計仮説が成立
「任意の葉までの枝長の和が等しい」が任意節点について成立
⇒UPGMA法は系統樹を正しく再構成
以下の例で、(a) は仮説を満たさないが、(b)は満たす
近隣結合法
近隣結合法(1) UPGMA法では以下の例(a)で、2と3が最初に選ばれたため、正しい系統樹を再構成できなかった
最初に、3と4、もしくは、1と2が選ばれれば良い
つまり、兄弟関係(近隣関係)にある葉が選ばれれば良い
近隣結合法では(距離が加法性を満たすという仮定のもとで)
常に近隣関係にある葉を選ぶ
近隣結合法(2) 近隣結合法
距離が加法性を満たせば系統樹を正しく再構成
ただし、計算されるのは無根系統樹
加法性: 節点間の距離 = 節点間を結ぶパスの枝長の和
近隣結合法(3) 加法性: 節点間の距離=節点間を結ぶパスの枝長の和
i と jの親を k とすると、葉 m に対し以下が成立
)(21
ijjmimkm dddd
近隣結合法: アルゴリズム
M を葉集合とし、L=M とする
|L|>2の間、以下を繰り返す
L の中から Dij が最小となるペア (i,j) を選ぶ
新しい節点 k を作り,L 中のすべての m について
とする
k を M に追加し,k と i, j を枝で結び,枝長を
とする
i, j を L から削除し,k を L に追加する
i, j 間に枝をはり,その長さを dij とする
)(21
ijjmimkm dddd
ikijjkjiijik dddrrdd ),(21
Lk
ikLijiijij drrrdD2||
1),(ただし、
アウトグループ 近隣結合法: 無根系統樹しか計算されない
無根系統樹における根の決定法 最も長い葉の間の中点を根とする
対象とする種と離れていることが明らかな種(アウトグループ)を追加して系統樹を作成し、アウトグループに接続する節点を根とする
最節約法
最節約法:問題設定
最小コストの置換で各配列を生成する系統樹を計算
2種類の探索が必要
系統樹の形状(トポロジー) ⇒難しい
内部節点への配列の割り当て⇒動的計画法で計算可能
最節約法: アルゴリズム
Sk(a) : 節点 k に塩基 a を割り当てた時のコスト
S(a,b) : a を b に置換するためのコスト
動的計画法により葉から根へという順で Sk(a) を計算
配列割り当ては各位置ごとに独立に計算可能
)),()((min)),()((min)( baSbSbaSbSaS jb
ib
k
otherwise
]1[ if0)(
k
k
saaS
k が内部節点の場合(i,j は k の子節点)
k が葉の場合
最節約法:実行例
)),()((min)),()((min)( baSbSbaSbSaS jb
ib
k
進化の確率モデル
進化の確率モデル
P(b|a,t) : 長さ tの枝をたどることにより塩基 aが塩基 b
に置換される確率
P(y|x,t) : 長さ tの枝をたどることにより配列 x が配列 y
に置換される確率
u
uu txyPtxyP ),|(),|(
置換行列 (置換確率行列)
),T|T(),T|G(),T|C(),T|A(
),G|T(),G|G(),G|C(),G|A(
),C|T(),C|G(),C|C(),C|A(
),A|T(),A|G(),A|C(),A|A(
)(
tPtPtPtP
tPtPtPtP
tPtPtPtP
tPtPtPtP
tS
乗法性
)()()( stSsStS
Jukes-Cantor行列(1) 置換速度行列を R とし、 を仮定
S(t) の乗法性より
よって
A,C,G,T が対等であるとして
対称性より
よって
tRItS )(
3
3
3
3
R
tRtStStRItS
tStStStSttS
)()())((
)()()()()(
RtSdt
tdS)(
)(
)()()()(
)()()()(
)()()()(
)()()()(
)(
trtststs
tstrtsts
tststrts
tstststr
tS
)()()(
)(3)(3)(
trtsdt
tdststr
dt
tdr
Jukes-Cantor行列(2)
を に代入して、
これを解いて
この S(t)が Jukes-Cantor行列
は十分時間が経つと A,C,G,T の割合いが等しくなることを意味する
3
3
3
3
R
RtSdt
tdS)(
)(
)()()()(
)()()()(
)()()()(
)()()()(
)(
trtststs
tstrtsts
tststrts
tstststr
tS
)()()(
)(3)(3)(
trtsdt
tdststr
dt
tdr
)1()()31()( 4
414
41 tt etsetr
ttstr if)()(41
TATAT(=x)が t 時間後にTTAAA(=y)に置換する確率は
より
Jukes-Cantor行列の応用例
)31()A,|A()T,|T(
)1()T,|A()A,|T(
4
41
4
41
t
t
etPtP
etPtP
3424
5)1()31(
4
1),|( tt eetxyP
系統樹の尤度(確率)
配列 s1,…,sn に対し、尤度最
大の系統樹のトポロジー T
と、枝長 tiを計算
ただし、p(i) は i の親節点
この計算は難しく、様々な手法が提案されている
最尤法による系統樹推定
22
1
)(
,,
121 ),|()(),|,,(121
n
i
iipi
ss
nn tssPsPtTssPnn
1塩基あたりの尤度
配列全体の尤度
尤度計算の例(1)
a
uuauu taxPtaxPqttTxxP ),|(),|(),,|,( 2
2
1
1
21
21
N
i
uu ttTxxPttTxxP1
21
21
21
21 ),,|,(),,|,(
CGのみからなる配列
n1個は同じで n2個は変化 (この例では、n1=8, n2=3)
尤度計算の例(2)
GCGGGCCGGCC
GCCGGCCGCGC
)e1()2(),,|GC,(
)e31()3(
),,|CC,(
)(4-
161
41
21
)(4-
161
41
TAGC21
21
212121
21
2121
21212121
tt
tttttt
tt
tttt
tttttttt
ssrssrttTP
ssrr
ssqssqssqrrqttTP
221121
21)e1()e31(
16
1),,|,(
)(4-)(4-
21
21 nttntt
nnttTxxP
よって、系統樹全体の尤度は、
尤度は、t1+t2が一定なら変わらないことに注意 ⇒ 根の位置の任意性
系統樹の信頼性
推定された系統樹の信頼性は不明
⇒信頼性評価の必要性
必ずしも系統樹全体でなくても、大きな分岐などの特定の特徴の信頼性を評価できれば良い
⇒ブートストラップ法による評価
ある確率モデルのもとで、
ブートストラップ法による頻度≈ 特徴の事後確率
系統樹に対するブートストラップ法1. もとのアラインメントから各カラムを重複を許してランダムに抽出
2. ステップ 1 で作ったアラインメントから系統樹を推定
3. ステップ 1,2 を数多く(例えば1000回)繰り返し、各特徴の頻度分布を計算し、頻度により信頼性を評価
ブートストラップ法
最大合致部分系統樹
最大合致部分系統樹 (maximum agreement subtree)
系統樹推定には様々な方法⇒複数の系統樹を統合
一部の種だけを考えることにより、複数の系統樹から共通の系統樹を得る(⇒種の数の最大化)
入力: 同じラベル集合{1,2,…,n}を持つ有根系統樹 T1,T2,…,TN
出力: Ti|B がすべて同型となる要素数最大の B
Ti|B: B に含まれない葉とそれに接続する枝を削除し、さらに子が一つになった内部節点を繰り返し縮約して得る
⇒ B={1,3,5,6,8}
最小共通祖先 (LCA: Least Common Ancestor)
lcai(a,b): a,b をラベルにもつ葉の共通の祖先で最も根から遠いもの
半順序: 節点 u が節点 v の子孫⇔ )( vuvu
LCAの例
□: lcai(2,3) ○: lcai(4,7) △: lcai(5,7)
動的計画法アルゴリズム
})),(lca),((lca|),({),(
})),(lca),((lca|),({),(
babxTbxbaR
baxaTxabaL
iii
iii
)},({max)},({max),(
1),(
),(),(),(),(bcWcaWbaW
aaW
baRbcbaLca
a≠b として L(a,b), R(a,b) を次のように定義
すべての a≠b に対して、W(a,b) を動的計画法で計算
ただし、 L(a,b), R(a,b) のいずれかが空の時は、W(a,b)=-∞
)},({max|| baWBba
すると、 B はトレースバックで計算可能
動的計画法の例
B={1,3,5,6,8}
5)8,5()3,1()8,1(
3)8,8()6,5()8,5(
2)3,3()1,1()3,1(
)}8,8{()8,5()}6,5(),5,5{()8,5(
)}3,3{()3,1()}1,1{()3,1(
WWW
WWW
WWW
RL
RL
下図の例に対する計算例(一部分)
時間計算量の解析
定理: 最大合致部分系統樹問題は O(n3N) 時間で計算可能
証明: 正当性の証明は省略。
O(n2) 個の (a,b) と N 個の系統樹について 、LCAを計算するのにかかる時間の合計は O(n2N) 。
L(a,b)(およびR(a,b))1個あたりの要素数は O(n)であり、あらかじめ lcai(a,b)間の半順序関係の表を作っておけば、全体で O(n3N)
時間。
W(a,b) は全体で O(n3)時間で計算可能。
子頂点の数が制約されない一般の場合は NP困難
まとめ
系統樹の個数
無根系統樹で (2n-5)!! 有根系統樹で (2n-3)!!
距離行列法
UPGMA法: 最小距離のクラスタを結合
近隣結合法: 近隣の節点を結合
最節約法: 置換コストが最小の系統樹を計算
進化の確率モデル:
Jukes-Cantor行列を用いて配列間の置換確率を計算
最尤法: 確率が最大となる系統樹を推定
ブートストラップ法: 系統樹の特徴の信頼性評価
最大合致部分系統樹: 複数の系統樹の比較
top related