ゲノムアルゴリズム ゲノムの仕組み 応用問題 アラインメントアルゴリズム ミスマッチトレランス 遺伝子発見問題.

Slides:



Advertisements
Similar presentations
『わかりやすいパターン認 識』 第 5 章 特徴の評価とベイズ誤り確率 5.4 ベイズ誤り確率と最近傍決定則 発表日: 5 月 23 日(金) 発表者:時田 陽一.
Advertisements

A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
模擬国内予選2013 Problem F テトラ姫のパズル 原案:須藤 解答:大友、須藤 解説:須藤.
J: Magical Switches JAG 模擬地区予選 2013 原案:保坂 解答:保坂・楠本 解説:保坂.
到着時刻と燃料消費量を同時に最適化する船速・航路計画
3次元nクイーン問題の 解に関する研究 論理工学研究室 伊藤精一
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
極小集合被覆を列挙する 実用的高速アルゴリズム
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
文字列の類似構造発見問題と 複数分類アルゴリズム
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
On the Enumeration of Colored Trees
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
「Self-Organizing Map 自己組織化マップ」 を説明するスライド
5.チューリングマシンと計算.
5.チューリングマシンと計算.
分子生物情報学 動的計画法に基づく配列比較法 (ペアワイズアライメント法)
「データ学習アルゴリズム」 第3章 複雑な学習モデル 3.1 関数近似モデル ….. … 3層パーセプトロン
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
 Combinations(2)        古川 勇輔.
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
データ構造と アルゴリズム 知能情報学部 新田直也.
疑似頻出アイテム集合の 多項式遅延列挙アルゴリズム
最短路問題のための LMS(Levelwise Mesh Sparsification)
高山建志 五十嵐健夫 テクスチャ合成の新たな応用と展開 k 情報処理 vol.53 No.6 June 2012 pp
生物統計学・第2回 注目要素を決める まず木を見る、各種グラフ、ウェブツール
7.時間限定チューリングマシンと   クラスP.
ネットワーク理論講義補助資料 Text. 組合せ最適化とアルゴリズム 4.3 節 Lagrange緩和 pp
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
二分探索木によるサーチ.
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
ゲノムアルゴリズム ゲノムの仕組み 応用問題 アラインメントアルゴリズム ミスマッチトレランス 遺伝子発見問題.
MPIを用いた並列処理 ~GAによるTSPの解法~
生命情報学入門 配列のつなぎ合わせと再編成
決定木とランダムフォレスト 和田 俊和.
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
グラフアルゴリズムの可視化 数理科学コース 福永研究室 高橋 優子 2018/12/29.
人工知能特論 9.パーセプトロン 北陸先端科学技術大学院大学 鶴岡 慶雅.
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
卒論の書き方: 参考文献について 2017年9月27日 小尻智子.
植物系統分類学・第15回 比較ゲノミクスの基礎と実践
リファクタリング支援のための コードクローンに含まれる識別子の対応関係分析
生  物  数  学 斉木 里恵.
First Course in Combinatorial Optimization
A Simple Algorithm for Generating Unordered Rooted Trees
数独の解生成と 解に対する番号付け 理学部 情報科学科 渡辺研究室 戸神星也.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
新しい高速相同検索アルゴリズムを用いたゲノム解析ツールの開発
サポートベクターマシンを用いた タンパク質スレッディングの ためのスコア関数の学習 情報科学科4年 81025G 蓬来祐一郎.
プログラミング 4 探索と計算量.
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
第16章 動的計画法 アルゴリズムイントロダクション.
短い部分文字列の ミスマッチトレランスを 高速計算するアルゴリズム
構造的類似性を持つ半構造化文書における頻度分析
5.チューリングマシンと計算.
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
大規模データ処理に対する アルゴリズム理論からのアプローチ
4.プッシュダウンオートマトンと 文脈自由文法の等価性
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年8月1日 3.2 競合学習
参考:大きい要素の処理.
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
集中講義(東京大学)「化学システム工学特論第3」 バイオインフォマティクス的手法による化合物の性質予測(1) バイオインフォマティクス概観
分子生物情報学(0) バイオインフォマティクス
プログラミング論 バイナリーサーチ 1.
Presentation transcript:

ゲノムアルゴリズム ゲノムの仕組み 応用問題 アラインメントアルゴリズム ミスマッチトレランス 遺伝子発見問題

DNA • DNAは、高分子の鎖に、ATGCで略される4種類の器が並んで付いているもの(化学物質の名前)。なので、ATGC文字列として表現できる(この情報のことをゲノムという) • DNAが複製される際に、1本のDNAは一塊になる。これが染色体 • 人の場合、DNAの長さは50-60cm? ATGC TACG

ゲノムの大きさ • 人の場合、1本の染色体に、およそ1億文字が含まれる。ただし、長いもの、短いものがある。 •人間の場合、DNAの長さは、染色体23対の合計で30億文字になる。 • マウスやチンパンジーもほとんど同じ。一般的に高等な生物のほうが長いようだ。大腸菌は400万文字くらいしかない AATGCCGT

たんぱく質の生成 • 酵素がDNAの1部を切り出し、たんぱく質を作る。(正確には DNA RNAたんぱく質)そのときDNAの中のATGなどの3文字が1つのアミノ酸に翻訳される • ATGC3文字の組合せは64通りあるが、これが20種類のアミノ酸と対応している(表で表される) AATGCCGT AAA  ○  ACA ☆ AAC  ○  ACC ☆ AAT  ○  ACT ■ AAG  ○  ACG ■

切り出しの位置 • ゲノムの中で、たんぱく質になる部分を遺伝子と言う • 遺伝子の始まりの位置と終わりの位置には、マークがある。マークもATGC3文字でできている • ゲノムの中にマークは大量にあるが、どうやって遺伝子の始まりを探し出しているかは不明    どこが遺伝子かを探り当てるのは大変 終 始

遺伝子の応用 • 「遺伝子の発見」は、応用上とても重要 - 遺伝病の発見、診断 - 新薬の発見 - 種の進化の解明 - 生態システムの理解   - 遺伝病の発見、診断   - 新薬の発見   - 種の進化の解明   - 生態システムの理解   … • 何とかして遺伝子を見つけたい

遺伝子を見つける • ゲノムの中で、数理的に遺伝子になりうる部分列 - スタートマークで始まり - エンドマークで終わり  - スタートマークで始まり  - エンドマークで終わり  - 間の長さは 3k • 天文学的な数! • 列挙はできないから、他の方法でなんとかしよう

遺伝子を見つける (2) • 幸い、いくつかの遺伝子は判明している。 • これを使って、何か他に、遺伝子を特徴付けるルールを見つけられないか?   機械学習・データマイニング • 長さ、含む部分列、できるアミノ酸のパターン、量、割合などから、ルールを導く

遺伝子ルール学習 • 長さ、含む部分列、できるアミノ酸のパターン、量、割合などから、ルールを導く • ゲノムの中から、そのルールを満たす部分列を列挙する • 効率良く、遺伝子の「候補」が見つかる (あとは実験で確認すればよい)

既存ソフトの正解率 • 遺伝子部分を予測するアルゴリズムは多種ある • プログラムを作った、という論文だけでも50以上、その中で、フリーで使えるものだけでも30以上 • 正解率は、遺伝子のスタート/エンドマークに関しては正解率0.7、発見率0.7 遺伝子だと正解率0.15発見率0.15ぐらいのようだ。

ゲノムの変化 • ゲノムは、紫外線などの外因で、ときに傷ついたりする。この結果染色体が切れたり、つながったりする • チンパンジーと人間のゲノムを比べると、ある部分がそっくりそのまま他の部分に現れていたり、こっちでは2つに分かれているが、あっちでは1つながりになっていたりするらしい • DNAのコピーをしそこなうこともある。この場合、文字が抜けたり、増えたり、変化したりする    人間 チンパンジ

ゲノムの変化2 • これらの変化は確率的に起こるので、2つの種のゲノムを比べ、どの程度の変化がおきているのかを調べると、2つの種がどの程度昔に分かれたのかが推測できる。 • チンパンジーと人間で異なる遺伝子と、ゴリラとの違いを調べると、共通祖先がどのような遺伝子を持っていたか分かる • 共通先祖と人間で異なる遺伝子を調査すれば、「人間を人間たらしめているものは何か」がわかる    人間 チンパンジ    ゴリラ

系統樹作り • 各生物種が、どれくらい前に分かれたものかという、進化の系統樹を推測する • ゲノムが似ているものは最近分かれた種である、という推測で樹を作る • いくつかのまったく違う生物から大まかな樹を作るものと、ターゲットとなる種を(例えばイネとか)決めて、その中でどのように細かい種が分かれていったかを調べるものがあるようだ

系統樹作り • 系統樹を作るためには、複数のゲノムを、類似性で(最適に)分類する問題が発生する • ある種のグループ内でなるべくうまくゲノムをそろえたり、 他種のグループとゲノムを比較する • この問題はとてもタフで難しく、ヒューリスティックや経験則による前処理をして解くようだ ATACGTGGTCAAACGCCGTATAG ATACGTGGTCAAA---CGTATAA ATACG-AC-CAAA---CGTATAT

ゲノムの比較 • このように類似する部分を調べるには、「2つのゲノムの類似度を計算する」方法が必要。これを発展させ、「2つのゲノムから、似た部分列同士の対応を見つける」 「似ている」とは、数理的にはどのようなことだろうか

ゲノムの類似度 • ゲノムが変化するときは、その中の1文字が変化/挿入/削除される • 片方のゲノムから、もう片方まで、少ない変化でいけるなら「似ている」 • すべての変化のさせ方の中で、最も回数の少ないものを見つけ、その回数で類似度を定義する 2つのゲノムの類似度の計算は 「最小変化」を見つける最適化問題

• 2つのゲノムに対して、最小変化をどうやって見つけるか ATACGCTTAC AGACCTTACC ATACGCTTAC* AGAC*CTTACC 最短路問題に帰着できる ダイクストラ法を使って解ける

• 2つのゲノムに対して、グリッド型のネットワークを作る 最短路問題 • 2つのゲノムに対して、グリッド型のネットワークを作る 横移動  : 左側に空白を挿入 縦移動  : 下側に空白を挿入 斜め移動 :  空白無し(同じ文字ならコスト0) ATGCA AGCAT A C G T ATGCA* A*GCAT A G C A T

• ゲノムは長い。ときに1億文字 • 頂点数は1京(10000兆)とてもメモリに入りません しかし • ゲノムは長い。ときに1億文字 • 頂点数は1京(10000兆)とてもメモリに入りません A C G T A G C A T 実際にネットワークは作らない ゲノムさえあれば、与えられた場所の枝とコストは計算できる

• 良く見るとこのネットワーク、左から右(下から上)にしか移動しない • 左から右に1列ずつ解けばよい最短路を解けばよい 1列ずつ • 良く見るとこのネットワーク、左から右(下から上)にしか移動しない • 左から右に1列ずつ解けばよい最短路を解けばよい A C G T A G C A T 計算に必要なのは、今の列と前の列だけ

A*で時間節約 • メモリは線形になったが、計算時間はまだ2乗 • A*アルゴリズム+両側から解く、をすると、短縮 終点への距離の下界は、残りの文字列中の各文字の数で算定 実際のデータは、似ていると思われるもの、を比較するので、 だいたいはゴールを目指すほうが有利になる

複数の空白を扱うと、少しネットワークが変わる コストの変化 • 変化しやすい文字、変化しにくい文字がある。 • 空白2つ は空白1つ×2よりも小さい       変化のコストに変化を付けたい       枝コストの与え方を変えれば良い G→A 3 T→A 1 A→C 4 … 空白1つ 3 空白2つ 5 空白3つ 7 …. 複数の空白を扱うと、少しネットワークが変わる (縦横に複数マス移動する枝ができる)

次の目標 人間 マウス • 2つのゲノムから「似た部分のペア」を見つける • 単純に2つのゲノムの類似度を計算しただけではだめ。全体的に見てどの程度にているかしかわからない 人間 マウス

遺伝子の発見 人間 マウス • 例えばマウスとヒトのゲノムを比べて、共通の部分を見つける • 遺伝子になる部分は、変化すると生体に大きな影響を与えてしまうので、余り変化していないと考えられる • そこで、共通な部分列を探して、遺伝子を探しだす候補にしようというもの    人間   マウス

ゲノムの読み取り ゲノムを読み取る方法 1. DNAを薬で溶かして、ひも状にする 2.放射線などを当てて、短い切片にぶつぶつ切る 3.機械で読む。1回で500文字程度読める  ただし、精度は99.9%程度。1000文字に1文字くらいミスる 4.読んだ結果をつなぎ合わせて、もとのゲノムを構築する

切片から再構築 1.切片をうまく並べるためには、どことどこが重なるか調べる必要あり 2.大量のゲノムから、端が重なるペアを列挙する 3.しかも、読み損ないがあるので、「似ている」という意味で重なるものにする

マイクロアレイ (ジンチップ) • 近年、工業的に「20文字程度の、ある指定した部分列があると反応する試薬」ができた • 例えば、あるQさんがXという遺伝子を持つかの判定で、Xを20文字ずつにぶつ切りし(オーバーラップするようにする)、それらに反応するような試薬を作り、QさんのDNAを放り込んで反応を見ればよい • 全部に同じように反応するならば、遺伝子があるだろうと考えられる

ジンチップ • しかし、Qさんのゲノムの他の部分にたまたま同じ部分列があったら、それに反応してしまう。 • そこで、ヒトゲノムの中から、「他とは一致しない部分列」を見つける問題が、有用である。(使い方によっては) • これは、サフィックスアレイを使ったアルゴリズムで、高速に解ける(パソコンで1G文字で1分程度)

固有部分列の発見 • 人間の場合、だいたい20文字程度とってくると、場所が唯一に定まるようだ(1-2割程度、自分とまったく同じものがある) • しかし実際には読みそこない、変異もあるので、多少エラーがあっても大丈夫なように、「α文字異なるものが存在しない」というものを使いたい

ミスマッチトレランス • 部分列の固有さを表す尺度にミスマッチトレランスというものがある • 長さを例えば20とし、ゲノムの各ポジションから始まる20文字の部分列について、そこから最小で何文字変更すると他の場所の部分列と一致するか、がミスマッチトレランス • まともに比較すると2乗オーダーの時間がかかる。ゲノムじゃとても無理 (1億×1億とすると、1京。1秒間に1億回比較できるとしても、1億秒 ≒ 1000日)

少し距離が大きめの場合 問題: 各項目が同じ長さ l の短い文字列(50文字程度)であるデータベースを入力したときに、文字列のペアで異なり数(ハミング距離)が d 文字以下である組を全て見つけよ • ゲノム全体から各ポジションを先頭とする長さ l の部分文字列を全て集めてこの問題を解くと、似ている部分列が全て見つかる (ハミング距離の意味で似ている部分文字列) ATGCCGCG GCGTGTAC GCCTCTAT TGCGTTTC TGTAATGA   ... • ATGCCGCG と AAGCCGCC • GCCTCTAT と GCTTCTAA • TGTAATGA と GGTAATGG      ...

問題の難しさ • 全ての項目が同じだと、O(項目数2) 個の出力がある  l を定数だと思えば、単純な全対比較のアルゴリズムが      計算量の意味では最適になる    計算量理論的には面白くない問題 • 現実には、やたらと似ているものを比較しても意味が無い    出力は少ないと仮定する ATGCCGCG GCGTGTAC GCCTCTAT TGCGTTTC TGTAATGA   ... • ATGCCGCG と AAGCCGCC • GCCTCTAT と GCTTCTAA • TGTAATGA と GGTAATGG      ...

基本のアイディア:文字列の分割 • 各文字列を、k(>d) 個のブロックに分割する • k-d 個のブロックの場所を指定したときに、そこがまったく等しくて、かつハミング距離がd 以下となるようなペアを全て見つけよ、という部分問題を考える  各文字列の k-d 個のブロックをつなげてキーにし、ソートをする。同じものはグループになる。それを総当りで比較すればよい • k-d 個のグループ数が大きければ、平均的にグループのメンバー数は小さくなるので、総当りで比較してもたいしたことない

全ての場合を尽くす • 先の部分問題を、全ての場所の組合せについて解く  2つの文字列が似てれば、必ずどこか k-d 個のブロックが同じ  必ずどれかの組合せで見つかる • 部分問題は、バケツソートやRadixソートで速く解ける • 組合せの数は kCd 。のk=5 で d=2 なら10通り    ソート10回 +α で解ける。全対比較よりもかなり高速 •各文字の数から、1文字比較した場合に等しくなる確率を求め、適切な分割数 k を使用する

• ABC、ABD、ACC、EFG、FFG、AFG、GAB のペアでハミング距離が1以下のものを求めよ 例題 • ABC、ABD、ACC、EFG、FFG、AFG、GAB のペアでハミング距離が1以下のものを求めよ ABCDE ABDDE ADCDE CDEFG CDEFF CDEGG AAGAB A BCDE A BDDE A DCDE C DEFG C DEFF C DEGG A AGAB  A BC DE A BD DE A DC DE C DE FG C DE FF C DE GG A AG AB ABC DE ABD DE ADC DE CDE FG CDE FF CDE GG AAG AB

メモリに解を保持せずとも、重複が回避できる 重複の回避 • まったく同じ文字列があると、全てのブロックの組合せで見つかるので、 kCd 。回出力される   重複を回避する必要がある • 各見つかったペアについて、選択されていないブロックが選択したブロックの間にあったら出力しないようにする   等しいブロックが一番左端によっている場合にのみ出力 メモリに解を保持せずとも、重複が回避できる

イメージ的には • 似ているもののペアを探す問題は、マトリクスのセルの中で必要なものを全て見つける問題 • 全対比較は、マトリクスのセルをすべて見ていることに対応 • 分類によるアルゴリズムは、 分類を順々にしていると思えば、 木構造の探索を行っていることに対応

分類による計算 • 例えば20文字中2文字だけしか異ならない部分列を見つけるとしよう • 20文字中、異なる文字の位置を i1, i2 とする。 • 残り18文字で、全ての部分列をソートして、分類する。radix sort を使って20×線形時間でできる ATGATGC ATGCTGG ATGTTGC

分類による計算 (2) • 他分類してできたグループ内の部分列は、 i1, i2 番目だけが異なる部分列のペア • 全ての i1, i2 について、同じことをする。( i1, i2 の値は(20×19/2) 通り) • 計算時間は(20×19/2)×線形時間。これならなんとかなる ATGATGC ATGCTGG ATGTTGC

少し長いものでも高速に • 文字列の長さが30程度あると、間違いが3箇所でも、  30*29*28/1*2*3 = 4060   30*29*28/1*2*3 = 4060 そんなに小さいわけではない • もう少し分け方を少なくする: 文字列を h 個に分割し、k 個の間違いがどこに入っているか、で分類する   例えば h = 7 とすれば 7*6*5/1*2*3 = 35 通り • ただし、同一のグループに入ったからといって、異なり数が k 以下とは限らないので、同一のグループ内で全対比較が必要 • 文字列の統計量から、1文字比較した場合に等しくなる確率を求め、最適な分割数 h を使用する

類似するペアの発見 • 同様の技法を使うと、類似する文字列のペア(あるいはグループ)を全て見つけることができる • 全一般に、「正確に同じもの」を見つけるのは(二分探索などで)簡単にできるが、「似ているもの」を探すのには手間がかかる (データが大きくなると、1000倍の時間ではきかない) • データが大規模になると、とてもとけないのは、ミスマッチトレンランスと同じ

効率的に、似ている部分の候補を絞り込める 応用: 長い文字列の比較 • 長い文字列データの類似部分の候補を絞り込む • 多数の長い文字列データの,類似するペアの候補を絞り込む 1) 長い文字列を1つずつずらした短い文字列にスライスする 2) 似ているもののペアを全部見つける 3) 似ている部分は、多くの似ているペアを必ず含む 長い文字列が多数ある場合でも、やり方は同じ 効率的に、似ている部分の候補を絞り込める

ゲノムの比較 ヒト21番染色体とチンパンジー22番染色体の比較 • 3000万文字の文字列×2 から、30文字の切片を3000万個取る • 類似するペアを見つける • 横方向がヒト、縦方向がチンパンジー、というマトリクスを作って、類似するペアがたくさん あるセルの色を白くする • 白い部分が 「似ている可能性のある部分」 • 黒い部分が 「(絶対に)似ていない部分」 ヒト 21番染色体 チンパンジー22番染色体 PCで 1時間で可能

ゲノムの比較 (2) PCで 1時間で可能 ヒトX染色体とマウスX染色体の比較 • マウスはオーバーラップさせ、ヒトはオーバーラップさせずに、 30文字ずつにスライス • 間違い 2文字以下のペアを列挙 • 解が多すぎるため、ペアの両方に 250個以上の相方が見つかっている 場合無視 • 長さ3000で、幅300の斜めの 領域に3つペアがあれば点を打つ ヒトX番染色体 マウスX染色体 PCで 1時間で可能

まとめ • ゲノムの基本問題の紹介 系統樹・遺伝子発見・類似度計算・部分列のマッチ・固有部分列の発見 • 機械学習を用いた遺伝子の発見 • 最短路を使ったゲノムの類似度計算の方法 • 分類を使ったミスマッチトレランスの計算 • 類似する短かい文字列のペアを使ったゲノムの比較