560 likes | 783 Vues
配列および化合物データ解析のためのカーネル法. 阿久津達也 京都大学 化学研究所 バイオインフォマティクスセンター. サポートベクターマシン. カーネル法 の一つ、 ニューラルネットワーク と類似 1990 年代に、 Cortes と Vapnik が発明 トレーニングデータとして与えられた 正例と負例 から、それらを分離する 超平面 を計算 機械学習、統計学、人工知能、パターン認識、 バイオインフォマティクス など様々な分野に応用 配列分類 タンパク質フォールド予測、二次構造構造 遺伝子発現データ解析 タンパク質相互作用予測 化合物の性質推定
E N D
配列および化合物データ解析のためのカーネル法配列および化合物データ解析のためのカーネル法 阿久津達也 京都大学 化学研究所 バイオインフォマティクスセンター
サポートベクターマシン • カーネル法の一つ、ニューラルネットワークと類似 • 1990年代に、Cortes と Vapnik が発明 • トレーニングデータとして与えられた正例と負例から、それらを分離する超平面を計算 • 機械学習、統計学、人工知能、パターン認識、バイオインフォマティクスなど様々な分野に応用 • 配列分類 • タンパク質フォールド予測、二次構造構造 • 遺伝子発現データ解析 • タンパク質相互作用予測 • 化合物の性質推定 • c.f. Kernel Methods in Computational Biology, MIT Press, 2004
サポートベクターマシン • 正例と負例を与えて、それらを最適(マージンを最大)に分離する超平面を学習 • カーネルを適切に定義することにより超平面以外での分離が可能
SVMによるテストデータの分類 • 学習データより超平面を学習(SVM) • テストデータは、対応する点の超平面に対する位置(上下)で判定 • テストデータとサポートベクター間のカーネル関数値の重み付き和でテストデータを類別
カーネル • サポートベクターマシン:基本的には超平面で分離 • Φ(x) (特徴ベクトル):「非線形曲面⇒超平面」に写像 • カーネルK(x,y)=φ(x)・φ(y) • xと yの類似度が高い ⇔ K(x,y)が大
カーネルの例 • 線形カーネル: K(x,y) = x・y • 多項式カーネル: K(x,y) = (x・y+ c)d • RBFカーネル: K(x,y) = exp (-||x - y||2/2σ2 ) • シグモイドカーネル(厳密にはカーネルではない): K(x,y) = tanh (κx・y - δ)
カーネルとなるための条件 • カーネルの定義: K(x,y)=φ(x)・φ(y) • Mercer条件を満たす ⇒ カーネル • 連続値の場合 • 離散値の場合 ( x1,x2,…,xnが入力データ)
カーネルの作り方 • データから特徴ベクトル(feature vector)を作るのが一般的、かつ、 多くの場合に実用的 • 特徴ベクトル: 実数値の列 • 例えば、各化合物 x に対し、 • Φ(x) = (分子量, 容積, 表面積, logP,…) とすれば、化合物 x,yに対するカーネルは Φ(x) と Φ(y) の単なる内積
アライメントカーネルによる構造予測 • SCOPとスーパーファミリー予測 • 既存カーネル • 配列解析手法(アライメント、HMM) • 新カーネル • 計算機実験結果 • 結論と課題
タンパク質立体構造予測 • アミノ酸配列から、タンパク質の立体構造(3次元構造)をコンピュータにより推定 • 実験よりは、精度が悪い • だいたいの形がわかれば良いのであれば、4~5割の予測率
フォールド予測 (Fold Recognition) • 精密な3次元構造ではなく、だいたいの形(fold)を予測 • 立体構造は数千種類程度の形に分類される、との予測(Chotia, 1992)に基づく
SCOPデータベース • タンパク質立体構造を形状を中心に、人手で、 階層的に、分類したデータベース SCOP Root Class.1 Class.2 ‥‥‥‥‥ Fold.1 Fold.2 ‥‥‥‥‥ Super Family.1 Super Family.2 ‥‥‥‥‥ Family.1 Family.2 Family.3 mkkrltitlsesvlenlekmaremglsksamisvalenykkgq ispqarafleevfrrkqslnskekeevakkcgitplqvrvwfinkrmrs
Super Family 予測 • 入力配列が SCOP のどのスーパーファミリーに属するかを予測 Super Family.1 タンパク質配列 madqlteeqiaefkeafslfdkdgdgtittkelgtvmrslgqnpteaelqdminevdadgngtidfpefltmmark Super Family.2 Super Family.3 : :
Class Secondary Structure Prediction Fold Threading Super Family HMM, PSI-BLAST, SVM Family SW, BLAST, FASTA 既存手法の主なターゲット
タンパク質配列解析のための既存カーネル • HMMから特徴ベクトルを抽出 • Fisher カーネル(Jaakkola et al., 2000) • Marginalized カーネル(Tsuda et al., 2002) • 配列から直接特徴ベクトルを抽出 • Spectrum カーネル(Leslie et al., 2002) • Mismatch カーネル(Leslie et al., 2003) • 他の配列とのスコアを特徴ベクトルとして利用 • SVM pairwise (Liao & Noble, 2002)
配列アライメント • バイオインフォマティクスの最重要技術の一つ • 2個もしくは3個以上の配列の類似性判定に利用 • 文字間の最適な対応関係を求める(最適化問題) • 配列長を同じにするように、ギャップ記号(挿入、欠失に対応)を挿入
スコア行列(置換行列) • 残基間(アミノ酸文字間)の類似性を表す行列 • PAM250, BLOSUM45 など
ペアワイズ・アライメント • 配列が2個の場合でも可能なアライメントの個数は指数オーダー • しかし、スコア最大となるアライメント(最適アライメント)は動的計画法により、O(mn)時間で計算可能(m,n:入力配列の長さ)
動的計画法による大域アライメント(1)(Needleman-Wunschアルゴリズム)動的計画法による大域アライメント(1)(Needleman-Wunschアルゴリズム) • 入力文字列から格子状グラフを構成 • アライメントと左上から右下へのパスが一対一対応 • 最長経路=最適アライメント
動的計画法による大域アライメント(2) DP(動的計画法)による 最長経路(スコア)の計算 ⇒O(mn)時間 行列からの経路の復元は、 F(m,n)からmaxで=となっている F(i,j)を逆にたどることに行う (トレースバック)
ローカルアライメント(1) (Smith-Watermanアルゴリズム) • 配列の一部のみ共通部分があることが多い ⇒共通部分のみのアラインメント • 配列検索において広く利用されている • 例えば、HEAWGEH と GAWED の場合、 A W G E A W -E というアライメントを計算
ローカルアライメント(2) 動的計画法 の式
LAカーネル • SWアルゴリズムをカーネルとして利用したい ⇒ MAX 操作のためカーネルとならない • 一方、ペアHMMはカーネルとなることが既知 • 本研究 • SWアルゴリズムを模倣するペアHMMを構成 • SWアルゴリズム: 最適なパスのみ • LAカーネル: • 全てのローカルアライメントの(重みつき)和 • 両者ともに時間計算量はO(mn)だが、LAカーネルの方が数十倍、遅い
LAカーネルの定義(1) • 文字(残基)ペアのスコア: Kaβ(x,y) • ギャップのスコア: Kgβ(x,y)
LAカーネルの定義(2) • カーネルの畳み込み(convolution) • ギャップなしブロックが n個ある場合のスコア • LAカーネル
LAカーネルとSWスコアの関係 • π:(ローカル)アライメント • S(x,y,π): アライメントπのスコア • Π:可能なアライメントの集合 定理
LAカーネルとSWスコア • SWスコア: 1個の最適なアライメントのみを考慮 • LAカーネル: すべての可能なアライメントを考慮
SVMによるスーパーファミリー予測 (1) • 各スーパーファミリーごとにSVMを作成 • 最も高いスコアを出したSVMに対応するファミリーを出力 Super Family.1 SVM.1 タンパク質配列 madqlteeqiaefkeafslfdkdgdgtittkelgtvmrslgqnpteaelqdminevdadgngtidfpefltmmark Super Family.2 SVM.2 Super Family.3 SVM.3
SVMによるスーパーファミリー予測 (2) • 黄色の○ • スーパーファミリーに所属するタンパク酸配列データ(正例) • 赤い× • スーパーファミリーに所属しないタンパク質配列データ(負例) • 緑の□ • どのスーパーファミリーに所属するかを予測したいタンパク質配列データ(テストデータ)
x1 x2 x3 x4 CPU1 x1 CPU2 x2 CPU3 x3 x4 カーネル計算の並列化 • LAカーネルの計算 • 1回あたりO(mn)時間(|x|=m, |y|=n) • 配列データの個数を N とし、配列の平均長を n ⇒ 全部で O(N2n2) 時間 ⇒ 並列化が必要 並列化
並列計算機の利用 • LAカーネルの計算 • 1回あたりO(mn)時間だが大量の計算が必要 • 学習データ中のすべての配列ペアに対して計算 • 1CPUだと数十日を要する • 並列計算機 • SGI ORIGIN 3800 (R14000(500MHz) × 256CPU) • PCクラスタ HPC(2.8GHz Xeom × 8CPU) • 並列化 • LSF (Load Sharing Facility) と script の組み合わせ • 単純なデータ分割(分割されたデータごとに別CPUで計算) • 半日程度でカーネル計算が終了 • 並列化手法は単純だが、非常に有効
ROCによる性能評価 カーブが上にあるほど良い性能
mRFPによる性能評価 カーブが上にあるほど良い性能
結論 • タンパク質ホモロジー検出のための新たなカーネル • Smith-WatermanアルゴリズムとペアHMMの組み合わせ • ベンチマークテストにおいては最高クラスの性能 • 単純な並列化が非常に有効 • タンパク配列の個数(学習データ数)が少ないスーパーファミリーの予測 課題
G(V,E) グラフ・カーネル • グラフG(V,E) • 情報科学において幅広く利用されているデータ表現法 • 頂点と辺で構造を表す(点と線で構造を表す) • V: 頂点の集合 E: 辺の集合 • バイオインフォマティクスにおいても幅広い利用 • 化学構造、遺伝子ネットワーク、代謝ネットワーク • グラフカーネル • 二つのグラフ G1(V1,E1)、G2(V2,E2) 間の類似性の指標
Marginalized カーネル • Tsudaらが2002年に提案 • 定義 • h,h’: 隠れ変数群、K’:カーネル • 配列解析やRNA二次構造解析に応用
Marginalized グラフ・カーネル(1) • Kashimaらが2003年に提案 • h: グラフ G1 におけるパス • h’: グラフ G2 におけるパス • l(h): パス h のラベル(原子名)の列 • K’(x,y): ラベル列間のカーネル関数 (例: K’(x,y)=1 if x=y, otherwise 0 )
Marginalized グラフ・カーネル(5) • グラフカーネルの定義 • h: グラフ G1 におけるパス • h’: グラフ G2 におけるパス • すべてのパスを考慮するので、そのまま実行したのでは指数時間かかるが、工夫すると逆行列の計算に帰着できる (|V1||V2|×|V1||V2|サイズの逆行列の計算)
Marginalized グラフ・カーネル(8) • Marginalized グラフ・カーネル⇒逆行列の計算
Marginalized グラフカーネルの問題点 • パス(の集合)だけを用いて化学構造を表現 • 反応中心などの情報を十分に取り入れることが困難? • 行列のサイズが大きく(化合物xの原子数×化合物yの原子数)2)なるため、逆行列の計算に時間がかかる • すべてのトレーニングデータのペア(化合物のペア)について、それぞれ、逆行列を計算することが必要 ⇒ 構造情報(Morgan Index)との組み合わせ により行列のサイズを減らす
Morganインデックス • 化学構造の一意名を計算機により計算するために1960年代に考案 • CAS(Chemical Abstract Service)で利用 • 等価な原子に同じ番号(整数値)が与えられるような、各原子への番号づけを計算 • 簡単な繰り返し計算による番号づけ • 等価で無い原子にも同じ番号がつく可能性(でも、低い) ⇒Marginalized グラフカーネルにおいて、原子名とともに、モーガンインデックスを利用 • 原子名およびモーガンインデックスの両者が一致するパスのみを考慮 ⇒ 部分構造に関する特徴も、ある程度、取り入れられる
1 2 4 1 2 5 1 2 4 1 3 7 1 2 5 1 2 5 1 3 7 1 2 5 1 2 6 N N N 3 7 1 O O O O O O 1 1 1 1 3 3 1 3 5 Morganインデックスの計算法 • すべての原子に番号1を割り当てる • すべての原子 xについて以下を実行 • xに結合している原子の番号を総和を、x の番号とする
計算機実験 • MUTAG データを利用 • 標準的ベンチマークテストの一つ • 化合物のサルモネラ菌の変異性への影響データ • 125個の正例、63個の負例を利用 • 各例1個のみをテストデータとし、他を学習データとしたテストを繰り返した • ソフトウェア • SVMソフトとして、GIST (http://microarray.cpmc.columbia.edu/gist) を利用 • 他は C++ で記述