【次元削減(PCA/UMAP)】標的Pathwayに基づいた化合物のクラスタリング【混合ガウス分布】

1細胞マルチオーム法

本記事では、こちらの記事で作成した以下のPathwayスコア行列に基づいて、化合物をクラスタリングします。

Pathway 1Pathway 2Pathway jPathway Np
化合物 1p11p12p1jp1Np
化合物 2p21p22p2jp2Np
化合物 ipi1pi2pijpiNp
化合物 NcpNc1pNc2pNcjpNcNp

0. はじめに

本記事は、以下の記事の続きになります。

1. 化合物の標的タンパクを取得

以下の記事に従い、化合物のInChIKeyから標的タンパクのリスト(シンボル表記)を得る辞書(ink_syms)を作成します。

2. Pathwayを構成するタンパクを取得

以下の記事に従い、PathwayのIDからPathwayに含まれるのタンパクのリスト(シンボル表記)を得る辞書(ptm_syms)を作成します。

3. 標的Pathwayの算出

以下の記事に従い、冒頭の行列に相当するdf_scoreを用意します。

4. 次元削減

化合物の分布を2次元平面上に可視化するため、df_scoreを次元削減します。

4.1. 次元削減の関数を作成

本記事ではPCAとUMAPで次元削減をします。以下のように関数を定義しておきます。

Python

4.2. PCAおよびUMAPの実行

上記の関数を以下のように実施します。

Python

4.3. PCAおよびUMAPの結果の可視化

PCAとUMAPの結果を可視化する関数を作成します。

Python

上記の関数plot_decompositionを用いて、PCAの結果(res_pca)は以下のように可視化できます。

Python

同様にUMAPの結果(res_umap)は以下のように可視化できます。

Python

5. クラスタリング

本記事では、混合ガウスモデル(Gaussian Mixture Model, GMM)によって前節の2次元データをモデリングします。

5.1. BICの計算

混合するガウス分布の数は最大50とし、BICが一番小さい数を選択します。

まずは以下の1から50の混合数および4種類の共分散の種類について、BICの計算を行います。

以下のように関数を定義して実行します。

Python

5.2. BICに基づいたモデル選択 (クラスタリング)

次に、上記の結果を可視化し、混合するガウス分布の数を決めます。

可視化の関数は以下です。

Python

GMMによるPCAのモデリングの可視化の結果は以下です。

混合するガウス分布の数は26、共分散はfullがベストであることが分かりました。

PCAを用いるとパスウェイに基づいた化合物は26グループに分けられることが明らかとなりました。

Python

GMMによるUMAPのモデリングの可視化の結果は以下です。

混合するガウス分布の数は50以上、共分散はsphericalがベストであることが分かりました。

UMAPを用いるとパスウェイに基づいた化合物は50以上のグループに分けられることが明らかとなりました。

ただし、50以上の混合数は解釈が困難になるため以降は50をベストとして進めます。

5.3. GMMの可視化

続いて、ベストであったパラメータのGMMによるクラスターの中心と等高線を次元削減した図にマッピングした図を作成してみます。

中心と等高線を描画する関数は以下です。

Python

PCAの場合、以下のようになります。

Python

UMAPの場合、以下のようになります。

Python

5.4. クラスタリングの可視化

各化合物がどのクラスターに属しているか可視化するため、クラスター毎に色を変えた図も作成してみます。

化合物がどのクラスターに属しているか分かりやすいように、Bokehを用いてHoverによってクラスター番号がポップアップするようにします。

関数は以下となります。

Python

PCAの結果は以下です。

Python

UMAPの結果は以下です。

Python

6. まとめ

本記事では、標的パスウェイに基づいて化合物をクラスタリングしました。

以上になります。

コメント