Hyper-Positive-Diary

TWICE/遊戯王/バイオインフォ/読書記録/アニメの感想等を走り書きします。

生物の進化✖️AI (数理統計)の話

 

 

この記事はSoftbank AI部 Advent Calender2019 その2の17日目の記事です。 リンクは以下です(https://adventar.org/calendars/4679)。

簡単に自己紹介

東京大学大学院農学生命科学研究科で、生物測定学研究室で生物の分子進化についての研究をしています。 学部時代に社交ダンスの部活に専念し過ぎていたこともあって、論文執筆やインターンをロクにやってきませんでした。 他の内定学生のアドベントカレンダーやブログを拝見して、意識と実力の高さに戦慄しています。みんなすごい。

昨年大学院に進学したのですが、就職について真面目に考えてこなかった自分に焦りを感じ、 当時慌ててインターンシップの申し込みを始めました。 来年からはありがたいことに、縁あってSoftBankでエンジニアとして働く予定です。

  現在修論提出一ヶ月前ということで、執筆や図版作成に追われています。 もう少しエンジニアリングやAI系の勉強に時間を割ければいいのですが...。

内定者Slackグループの自己紹介をちょっと見た感じ、 生命科学✖️AI(実際には数理統計的アルゴリズム)みたいな分野の人があまりいなそうだったので、 修論のモチベ上げがてら、また、アドベントカレンダーの充実がてら、 生物進化学がどういう分野かを記事にしようと思います。 時間と興味がある人が、気晴らしに目を通してくれたら嬉しいです。

分子進化学とは

DNAについて

知っての通り、DNAというのは生命の設計図です。 DNAにはタンパク質の元となるアミノ酸の情報が書かれており、 DNAを読むとどのような生物かを、ある程度把握することができます。 その情報は、DNAの構成要素である4つの塩基、 アデニン(A)、チミン(T)、シトシン(C)、グアニン(G) の並び方によって表されます。 このATCGが果てしなく長く(人間だったらおよそ30億個)並んで、 タンパク質の設計図となり、生物を構築しているのです。

生物間の距離

上のような背景から、生物種間で塩基配列の違いを比べれば、 どの程度種間に違いがあるか、 もしくは現代から遡ってどれほど昔に種が分岐したかを推定することができます。 例えば下の図の例ですと、人間とチンパンジーのDNAは似ているけど、 ゴリラはそんなに似ていない、といった感じです。

f:id:slmnphmet1-2:20191217123320p:plain
DNAの比較の例

DNAが読めるようになる前は、 地質や形態学的特徴(大きさや形)から生物種の分岐年代を推定することが主流でした。 しかし、形態学的特徴よりも、DNAの情報の方が正確である為、 現代では進化を追う為には、まずDNAを読むというのが定石になっています。

分岐年代をAIで推定する

それでは、このような距離はどうやって定量的に求めるのでしょうか。 (ここから統計チックな話になります。馴染みが浅かったら、この節は読み飛ばしても大丈夫です。) 塩基が次の塩基に変化(以降塩基置換と呼ぶ)するステップをマルコフ過程として扱うことで、 分岐の様子は確率的に表現できます。

(マルコフ過程については以下を参考にしてみてください。) ja.wikipedia.org

今、置換速度の速さを各パラメータで表した4次元の行列を Qとします。Qへのパラメータの入れ方は様々なパターンがあるのですが、 よく用いられているのは、一般可逆モデルと呼ばれる下のような行列です。



 \boldsymbol{Q}=
\begin{array}{l}
T \\
C \\
A \\
G \\
\end{array}
\left(
\begin{array}{cccc} 
\cdot  &   x_1\pi_{C}   & x_2\pi_{A}   & x_3 \pi_{G} \\
x_1 \pi_{T} & \cdot & x_4 \pi_{A} & x_5 \pi_{G} \\
x_2 \pi_{T} & x_4 \pi_{C} & \cdot  & x_6 \pi_G \\
x_3 \pi_{T} & x_5 \pi_{C} & x_6 \pi_{A}  & \cdot \\
 \end{array}
\right)


ここの 
\pi_A, \pi_T, \pi_C,\pi_G  は、各塩基のマルコフ過程における平衡確率を表し、 行列内の対角成分は各行の和を-1倍したものです。

すると、塩基iから塩基jに、時間tかけて変化する確率は、 Qtの行列指数関数の(i,j)成分になります(これがマルコフ過程の遷移行列Pに値します)。


\boldsymbol{P} (t) 
  = \exp 
  \left(\boldsymbol{Q}t
  \right)


下のような系統樹に対して、このPの成分を用いて事後確率や尤度関数を求めます。 事後確率や尤度関数を最大化させることで、 分岐年代やx1~x6のMAP推定量/最尤推定量を得られるというわけです。

f:id:slmnphmet1-2:20191217134234j:plain

例えば上図の例ですと、尤度関数Lは、


L = 
\boldsymbol{P}(t_1)_{AA}
\boldsymbol{P}(t_2-t_1)_{AA}
\boldsymbol{P}(t_2)_{AC}^2

となります。簡単のため、祖先の塩基がわかっている場合を書きましたが、 実際には、現在のデータしかわからないことがほとんどですので、 内部節(例えばチンパンジーとゴリラの一個前の生物)の情報は各塩基について周辺化して尤度を求めます。

このような推定を、各サイト(塩基の場所)で行います。 各サイトの塩基置換の様子を独立に扱うと想定できるならば、 全体の尤度は各サイトについての尤度関数の積になります。

祖先DNA配列の復元

分岐年代や塩基置換の速度が求まれば、確率的に祖先の塩基の状態を推定することができます。 すると、祖先ではどのような遺伝子が存在していて、 現在までにどう変化しているかを追うことができます。 つまり、過去の生物の化石やその他の情報がなくても、 復元したDNAの情報から、 どのような生物だったかを推測することができるのです。

AIや統計的アルゴリズムによって過去の生物の情報を知れる、 というのはとてもロマンがあることだと思いませんか?

限界もある

しかし、分子進化学には限界もあります。 例えば、類人猿のDNAをどれだけたくさん集めても、 恐竜のDNAを推定するなんてことはおそらくできないでしょう。 AIによるアウトプットはとても曖昧なものになるはずです。 一般に、分岐年代が昔であればあるほど、 考えられる分岐のパターンが膨大になり、推定は複雑になります。

大切なのはバラエティーに富む多くの生物種のDNA配列を集めることです。 ここら辺は普通の機械学習と一緒ですね。

最後に

分子進化の簡単な枠組みについて紹介しました。 AIかと言われると少々自信がないのですが、 「現存するDNAの情報をインプットとして、 進化の様子や過去の生物のDNAをアウトプットする統計的枠組み」 を、AIと呼んでいると思っていただけると、ありがたいです。

かなり理論が整備されている分野です。 正確かつ詳細な理解は、Wikipediaが詳しいので参考にしてみてください。 en.wikipedia.org

ご一読ありがとうございました。 それでは修論頑張ります。