データ受託解析チームのkuboです。
データ解析受託担当ですが、トレーニングや、データ解析のお困りごとの相談にお答えするコンサルにも顔を出すことがあります。
scRNA-seq解析の定番であるSeuratを使ったデータ解析のトレーニングやコンサルでは、主にscRNA-seq解析においてよく使用されるRパッケージSeuratの使用方法をご紹介しています。
Seuratを使用した複数のデータセットを統合する手順について
「IntegrateData
による統合とmerge
による統合の違いは何か」
というご質問を何度かいただいたことがあるので、簡単に説明します。
IntegrateData
による統合
参考:Analysis, visualization, and integration of Visium HD spatial datasets with Seurat • Seurat
IntegrateData
関数を使ってSeuratオブジェクトを統合する場合は、以下の流れでデータセットを統合します。
FindIntegrationAnchors
関数でanchorを決める- anchorを用いて
IntegrateData
関数でデータセットを統合する
この方法で統合する際は、データ間のバッチエフェクト補正が行われ、統合したデータ内でそのまま、サンプル同士をクラスタリングしたり比較したりすることができます。
ちなみに、3つ以上のデータを統合する場合も同じフローで、すべてのデータ同士のペアについて同じ計算を行います。2サンプルの統合だと1組み合わせについて計算を行うだけですが、5サンプルだと10組み合わせ、10サンプルだと45組み合わせと、計算量が爆発的に増えていきます。そのため、Seuratは多サンプルの統合については、別の方法(Analysis, visualization, and integration of Visium HD spatial datasets with Seurat • Seurat)を提示しています。
merge
関数による統合
参考:https://satijalab.org/seurat/articles/merge_vignette.html
merge
関数は、Seuratオブジェクトのraw countマトリクス同士を結合し、新しいSeuratオブジェクトを作成します。
- 例
pbmc.combined <- merge(pbmc4k, y = pbmc8k, add.cell.ids = c("4K", "8K"), project = "PBMC12K")
このコマンド例ではSeuratオブジェクトpbmc4k
とpbmc8k
からraw countを取り出し、新しいSeuratオブジェクトpbmc.combined
を作成しています。pbmc.combined
の中では、統合前のそれぞれのデータは、add.cell.ids
で指定した4K
8K
というidentifierで区別して扱うことができます。
raw countマトリクス同士を結合するので、当然もとのSeuratオブジェクトpbmc4k
とpbmc8k
を事前に正規化やスケーリングをしていても、その結果は削除された状態で結合されます。
IntegrateData
関数とは全く異なりますね。
merge.data = TRUE
オプションを追加することで、事前に計算した正規化結果を一緒に結合することもできるそうです。
pbmc.normalized <- merge(pbmc4k, y = pbmc8k, add.cell.ids = c("4K", "8K"), project = "PBMC12K", merge.data = TRUE)
IntegrateData
が行っているバッチエフェクト補正等は一切行っていないので、このやりかたでSeuratオブジェクトを結合した後はバッチエフェクト補正等は別途行う必要があります。
アメリエフでは、バイオデータ解析やそのシステム・インフラ環境の開発に興味のあるエンジニア・リーダー候補を募集しています。
www.wantedly.com