17章

DNAシンセサイザー:マルコフ連鎖を用いた合成データの作成

 マルコフ連鎖は与えられたデータセットに見られる確率過程を表現するモデルです。入力データからパターンを学習するため、機械学習(ML)アルゴリズムと呼ばれます。この演習では、DNA配列のデータセットで学習させたマルコフ連鎖を使って、新規のDNA配列を生成する方法を紹介します。

 この章では以下のことを学びます。

  • 入力配列ファイルをいくつか読み込んで、与えられたkに対してユニークなk-merをすべて見つける。
  • これらのk-merを使ってマルコフ連鎖を作り、最小値と最大値で区切られた長さの新しい配列をいくつか生成する。
  • ジェネレータについて学ぶ。
  • 乱数シードを使用して、ランダムな選択を再現する。

17.1 マルコフ連鎖の理解

 クロード・シャノンの「A Mathematical Theory of Communication」(1948)(https://oreil.ly/8Gka4)では、マルコフ過程は、正規表現の説明に用いてきたグラフや有限状態遷移図に驚くほど似ていることが説明されています。シャノンはこの過程を「システムが取りうる有限の状態」とある状態が別の状態に至る「遷移確率の集合」と表現しています。

 マルコフ過程の一例として、シャノンは英語のアルファベット26文字とスペースからランダムに選んで文字列を生成するシステムについて述べています。各文字がランダムかつ等確率で選択されるとする「0次近似」では、どの文字も選ばれる確率は同じです。このようなプロセスでは、bzqrのような文字の組み合わせは、stquと同じ頻繁で出現します。しかし、実際の英単語を調べてみると、後者の2つの方が最初の2つよりも桁違いに多いことがわかります。 ...

Get Pythonではじめるバイオインフォマティクス ―可読性・拡張性・再現性のあるコードを書くために now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.