Aurora blog

バイオインフォ・バイオテクノロジーにまつわる情報

シングルセル解析⑤:ディープラーニングはシングルセル解析に有用なのか

はじめに

シングルセル解析にディープラーニングを利用して、データのノイズ除去(≒インピューテーション)、細胞種の推定、バッチ補正などを行う事例が出てきている。本当に有用であるか些か疑問に感じていたので*1、まとめたいと思う。

研究事例

scVI

2018年にNir Yosefのグループが発表。VAE (Variational autoencoder)をシングルセルデータへ適用した最初期の手法。シングルセルデータのDenoising (Dropoutの除去)、バッチ補正、次元圧縮を実施できる。

www.nature.com

モデル

入力は遺伝子カウントデータ  x_{ng} とBatch ID (どの実験・サンプルに由来するか)  s_n *2。 l Encoder部分でSize factor  l_n (各細胞のSequence depth) と潜在変数  z_n の平均(mean)と標準偏差(std)をNNで計算。

Decoder部分では各遺伝子の頻度  w_{ng}ドロップアウト h_{ng} をNNで計算。 w_{ng} h_{ng} l_nをパラメータとするZINB*3モデルで入力の遺伝子カウントデータをモデル化。

  •  z_n \sim Normal(0, I)
  •  l_n \sim logNormal(l_{\mu}, l_{\sigma})
    •  l_{\mu} : 1細胞あたり総カウント数の平均
    •  l_{\sigma} : 1細胞あたり総カウント数の標準偏差
  •  \rho_{n} = f_w(z_n, s_n))
    •  s_n: Batch ID of cell  n (該当するBatchのindexのみ1、その他は0のOne-hot vector)
    •  f_w: Neural network
  •  w_{ng} \sim Gamma(\rho_{ng}, \theta_{g})
  •  y_{ng} \sim Poisson(l_n w_{ng})
  •  h_{ng} \sim Bernoulli(f_h^g(z_n, s_n))
    •  f_h: Neural network
  •  x_{ng} = y_{ng} (h_{ng} = 0)
  •  x_{ng} = 0 (h_{ng} = 1)

引用元:Lopez et al. “Bayesian Inference for a Generative Model of Transcriptome Profiles from Single-cell RNA Sequencing” bioRxiv. 2018 https://doi.org/10.1101/292037. CC-BY 4.0

示したデータ

  • 7種類のシングルセルデータを使った精度評価
  • Imputation/Denoisingの精度評価
    • 一部の値を0に置換したシングルセルデータを使いImputaionの評価を実施
    • ZINB distributionでモデル化した手法が良い成績を残したことを紹介 (ディープラーニングベースであるかに関わらず) (Fig S3)
    • その一方でゼロのほとんどはNegative binomial distributionで説明でき、Zero inflationがほぼ認められないことも報告している
  • 次元圧縮手法としての有用性
    • 人力による細胞種アノテーションが潜在空間に反映されているかをSilhouette widthやARIで評価
    • 他の次元圧縮手法と比較しても遜色のない結果であることを示している (Fig S9)
    • SIMLRと違いscVIで得られた潜在空間は細胞分化のTrajectoryを反映していることを一部のデータで示している (Fig. 2)
  • バッチ補正手法としての有用性
    • MNNベースの方法よりも良好 (Fig. 2)

メモ

  • 一つ一つのタスク (Denoising・次元圧縮・バッチ補正) は既存の手法を超えるパフォーマンスではない (同等程度)
  • 単一のモデルで上記のことを一度にある程度の精度で実現できることが優れた点なのだろう

scGEN

2019年にFabian Theisグループが発表。VAEで得られる潜在空間がある摂動に対する細胞の反応の予想に使えることを主張した論文。イメージとしては、潜在空間で「細胞A(摂動あり) - 細胞A(摂動なし) + 細胞B(摂動なし) 」を計算すると「細胞B(摂動あり)」に近い細胞状態が得られる、という内容。

www.nature.com

引用元:Lotfollahi et al. “Generative modeling and latent space arithmetics predict single-cell perturbation response across cell types, studies and species” bioRxiv. 2018 https://doi.org/10.1101/478503. CC-BY 4.0

モデル

示したデータ

  • 潜在空間上で「摂動あり」と「摂動なし」の細胞が線形分離できることを2つ (IFNb刺激、細菌感染) のデータで示した (Fig S1, Note S1)
  • "IFNb刺激あり"の細胞種Aだけを学習から除外し、本モデルで細胞種AにおけるIFNbの影響 (発現変動) を推定できるか評価 (Fig. 2)
    • 細菌感染腸管上皮細胞のデータでも同様の結果 (Fig. 3)
    • 細胞種特異的なIFNbへの反応も予測可能 (Fig. 2f)
    • CVAE (Conditional VAE)やStyle transfer GANとの比較を実施 (Fig. S2-4)
  • Data Aの"刺激あり/刺激なし"のデータを使って、"刺激なし"のデータのみしか存在しないData Bから"刺激あり"の状態を予測 (Fig. 4)
    • Organism AのデータからOrganism Bのデータを予測する問題にも挑戦 (Fig. 5)

メモ

  • 面白い試みだが、どの程度一般化できる内容であるかは不明
  • Fig. 4とFig. 5で完全に実現可能性・有用性が評価できているのか疑問に感じた。

SAVER-X

Nancy R Zhangグループが2019年に発表した手法。シングルセルデータで学習したVAEモデルが新規のシングルセルデータのDenoisingに使えることを示した。

引用元:Wang et al. “Data Denoising with transfer learning in single-cell transcriptomics” bioRxiv. 2019 https://doi.org/10.1101/457879. CC-BY 4.0

www.nature.com

モデル

入力は観測された遺伝子カウントデータ  y_{gc} のみ。以下の階層モデルで細胞cにおける遺伝子gの割合  x_{gc} を推定する。scVIやscGenとは違いZero inflationを考慮しないNegative binomial分布でモデル化している。

  •  \Lambda_{.c} = f(y_{.c})
    •  f: Autoencoder
  •  x_{gc} \sim Gamma(\Lambda_{gc}, \theta_{g} \Lambda_{gc}^2)
  •  y_{gc} \sim Poisson(l_c x_{gc})
    • Size factor  l_c = \sum_{g} y_{gc}

示したデータ

  • HCAと10X GenomicsのPBMCデータで事前学習したモデルを使ってPBMCデータのDenoisingを実施 (Fig. 2)
    • Denoising後の遺伝子発現量をCITEseqで得られるタンパク発現量と比較、他のDenoising手法よりも良い結果 (Fig. 2c)
  • マウス脳シングルセルデータで学習したモデルでヒト脳シングルセルデータのDenoising、種を超えた転移学習の可能性を示唆 (Fig. 3)

メモ

  • 従来手法 (e.g. MAGIC, scImpute, DCA) は入力データのみを利用するDenoisingがほとんど。NNを利用した転移学習により過去のデータを利用して良い結果が出せる点は重要。
  • テストケースが少ない (2例) なので結果の一般性については疑問

totalVI

2021年にNir Yosefグループが発表。表面タンパクと遺伝子発現を同時計測するCITEseqデータを対象とするVAEモデルを提案。複数の異なる種類のデータを同時に用いて次元圧縮・クラスタリング・Denoisingすることが可能。

www.nature.com

モデル

同ラボが開発したscVIをベースとしたモデル。入力は遺伝子カウントデータ x_{ng}とタンパクカウントデータ y_{nt}とBatch ID  s_n *4

Encoder部分で遺伝子とタンパクのSize factor  l_n \beta_nと潜在変数  z_n の平均(mean)と標準偏差(std)をNNで計算。

Decoder部分は各遺伝子の頻度  \rho_{ng} をNNで計算。 w_{ng} l_nをパラメータとするNegative binomialモデルで入力の遺伝子カウントデータ x_{ng}をモデル化*5。 タンパクデータに関してはバックグラウンドとフォアグラウンドのシグナルが混在していると仮定したモデル。学習後にフォアグラウンドのシグナルを推定することが可能。

  •  z_n \sim LogisticNormal(0, I)

RNA-seq

  •  l_n \sim logNormal(l_{\mu}^T s_n, l_{\sigma}^T s_n) *6
    •  l_{\mu}^T s_n : Batch  s_nにおける1細胞あたり総カウント数の平均
    •  l_{\sigma}^T s_n : Batch  s_nにおける1細胞あたり総カウント数の標準偏差
    •  s_n: Batch ID of cell  n (該当するBatchのindexのみ1、その他は0のOne-hot vector)
  •  \rho_{n.} = f_w(z_n, s_n)) #
    •  f_w: Neural network
  •  w_{ng} \sim Gamma(\theta_{g}, l_n \rho_{ng})
  •  x_{ng} \sim Poisson(w_{ng}): UMI counts

Protein

  •  \beta_n \sim logNormal(c_{\mu}^T s_n, d_{\sigma}^T s_n): Background signalの平均
  •  v_{nt} \sim Bernoulli(\pi_{nt})
  •  \pi_{nt} = h_{\pi}(z_n, s_n)): Background signalの割合
    •  h_{\pi}: Neural network
  •  v_{nt} \sim Bernoulli(\pi_{nt})
  •  r_{nt} \sim Gamma(\phi_{t}, v_{nt} \beta_{nt} + (1 - v_{nt}) \beta_{nt} \alpha_{nt})
    •  \beta_{nt} \alpha_{nt}: Foreground signalの平均
  •  \alpha_{nt} = g_{\alpha}(z_n, s_n))
    •  g_{\alpha}: Neural network (出力が1以上になるような条件付き)
  •  y_{nt} \sim Poisson(r_{nt}): UMI counts for protein  t

引用元:Gyaoso et al. “Joint probabilistic modeling of paired transcriptome and proteome measurements in single cells” bioRxiv. 2020. https://doi.org/10.1101/2020.05.08.083337. CC-BY 4.0

示したデータ

  • 表面タンパクデータのDenoising
    • Foreground probabilityが陽性細胞を分離する上で有用 (Fig. 2a-f)
  • 異なる抗体パネルのデータも統合可能 (Fig. 3)
    • 通常のscRNA-seqデータをCITEseqデータと統合し、タンパク発現量をImputationできることを示している (Fig. 3g)
  • Archetypal analysis

メモ

  • タンパク発現量の前処理でよく使われているCLR normalizationよりもいくつかのメリットがある
    • BackgroundとForeground signalの分離が可能
    • 異なる抗体パネルのデータを比較可能 (CLRはCompositional dataと仮定するので計測項目が違うと比較できない)
    • 一方で、CLRと違ってSequence depthが考慮されない気がするが、この辺りはどうなのだろうか?Denoising後の数値は細胞間で単純に比較できないのでは?
  • あるオミクスデータから別のオミクスデータを生成できる可能性を示しているのは興味深い

scArches

2021年にFabian Theisグループが発表。シングルセルデータ用VAEモデルに対する効率的な転移学習の方法を提案。 scArchesは先行研究で提案されているモデルを転移学習に利用する方法を提案している。Nir Yosefグループとの共同開発のようで、ツールscArchesを使えば、TheisグループとYosefグループがこれまでに開発したモデル (scVI, totalVI, scgen, trVAE)を転移学習へ応用できる。Yosefグループが開発するscvi-toolsでもすでにscArchesの機能は実装されており、利用することができる。*7

www.nature.com

手法

scArchesではArchitecture surgeryという転移学習の方法を提案している。

データ1~N (Reference data)を使って学習したモデルを転移学習へ利用する場合を考える。このとき上記のモデル(e.g. totalVI)ではBatch ID tex: s_i (i=1~N)をEncoderとDecoderの入力に用いる。Architecture surgeryでは、学習済みモデルへ新たなデータ(N+1)~M(Query data)を適用・再学習する場合に、このOne-hot vectorに新たな項目 s_i (i=(N+1)~M)を追加する。このときパラメータの更新は、Encoder/Decoderの第一層の s_i (i=(N+1)~M)に紐づいているパラメータのみ行い、そのほかのパラメータについてはReference dataで学習した時点から変更はしない。これによってある程度の性能が示せることを論文(Fig. 2)で報告している。

引用元:Lotfollahi et al. “Query to reference single-cell integration with transfer learning” bioRxiv. 2020. https://doi.org/10.1101/2020.07.16.205997 . CC-BY 4.0

メモ

  • 同じ転移学習をテーマにしているSAVER-Xとは違いバッチ間差異を考慮して、学習済みモデルを新たなデータへ適用できることが特徴
  • totalVIで学習した他モダリティ(Protein)のデータを生成した事例(Fig.4)は有用だと思うが、実用性についてはデータが不十分な印象を受けた

*1:なんでもかんでもディープラーニング使っとけばよいという風潮を筆者が嫌いなだけ

*2:nは細胞、gは遺伝子のindex

*3:Zero-inflated negative binomial、ドロップアウトを含むシングルセルデータのモデリングによく用いられる

*4:nは細胞、gは遺伝子、tはタンパクのindex

*5:ZINBを選んでいない

*6:scVIと違いバッチごとの平均・標準偏差を使うようにしている

*7:こちらの方がマニュアル等充実しており使いやすそうな印象も受ける