シングルセルデータの可視化

このグラフは何でしょうか?


f:id:emoriiin979:20201111204253p:plain J.C. Kimmel et al., 2019


このようなグラフは、シングルセル解析の論文でよく出てきます。シングルセル解析というのは、臓器や組織から採取された大量の細胞データを解析することをいいます。

このグラフの各プロットは細胞を表し、距離が近いほどデータの類似度が高いことを示します。


本記事では、このグラフの作成に挑戦します。


グラフの作成方法


このグラフを作成するには、どうすればよいでしょうか。


シングルセル解析でよく用いられているのは、t-SNEUMAPです。どちらとも、データ間の類似度を比較して、類似度が高いデータほど近くに配置されるようプロットしてくれるアルゴリズムです。

これらのアルゴリズムは、シングルセル解析の統合解析ツールにも採用されています。


どちらもPythonで実装可能なので、試しに実行してみます。


まずはサンプルデータで試す


実データに適用する前に、まずはサンプルデータでt-SNEとUMAPを試してみます。


今回はIrisデータセットを使います。これは有名なサンプルデータで、アヤメの3品種(setosa、versicolor、virginica)のいずれかのデータが150件入っています。

これらのデータの類似度を可視化してみます。


いつものようにGoogle Colaboratory(Colab)上でPythonを実行し、Irisデータを取得します。


f:id:emoriiin979:20201111214228p:plain


今後の解析のために、変数Xとyにデータを格納します。


f:id:emoriiin979:20201111215842p:plain


それでは、最初にt-SNEで可視化します。


f:id:emoriiin979:20201111220501p:plain


アヤメの品種ごとにプロットの色を変えています。同じ品種であるほどデータの類似度が高く、近くにプロットされていることが分かります。


次に、UMAPで可視化してみます。


f:id:emoriiin979:20201111220721p:plain


t-SNEのときのプロット位置は異なりますが、こちらも同じ品種のデータが近くに配置されています。


実データに試す


類似データが近くに配置されるのが確認できたため、いよいよ実データに適用してみます。

ここでは、以前の記事で取得した老化細胞データを取り扱います。


まずは、t-SNEからです。


f:id:emoriiin979:20201111222022p:plain


次に、UMAPです。


f:id:emoriiin979:20201111222255p:plain


どちらも、いくつかのまとまりを形成しているようです。

論文中の画像では細胞種でラベル付けされていますが、現時点ではデータごとの細胞種が判明していないので、全てのプロットが同じ色で表されています。


ちなみに、計算時間を比較してみたところ、t-SNEが166秒で、UMAPが39秒でした。

t-SNEの計算時間の多さを克服したアルゴリズムがUMAPという話なので、その話を裏付ける結果となりました。


まとめ


この記事では、t-SNEとUMAPを使って老化細胞データの可視化を行いました。


同じ細胞種のデータ同士は類似度が高いため、Irisデータの時と同様に近くに配置される傾向があります。

この性質を利用して、t-SNEやUMAPで未知の細胞種を見つけるということがよく行われています。もし、これまで同じ細胞種だと思われていたものも、可視化することで別のまとまりだと判別された場合、実は別の細胞種だったといえるかもしれません。


細胞種が異なる場合、若年細胞と老年細胞の比較が難しくなります。肝細胞と肺細胞では生成されるタンパク質が全く異なるため、違いが老化によるものなのか細胞種によるものなのかが区別できないからです。

未知の細胞が混在していないかを調べるために、今後もこれらの方法を使って細胞種の確認をすることになりそうです。


以上です。