アメリエフの技術ブログ

Amelieff Staff Blog

Seuratオブジェクトからraw countデータ・正規化データなどを選んで呼び出す方法

f:id:Fuku-I:20220317175453p:plain:w300

こんにちは。Fukuです。

シングルセルRNA-seq解析 プログラムのSeuratでデータ解析をするとき、
正規化、スケーリング、主成分分析など様々な値が作成されていきますね。

その後、解析前の元データを呼び出すにはどうしたらよいでしょうか?

⇒ 下記コマンドで元データの参照が可能です。

> library(Seurat)
> pbmc@assays$RNA@counts

詳細

シングルセルゲノミクス解析のRパッケージ Seuratを用いた解析について説明します。 CRAN - Package Seurat Webサイト

まず、Seuratオブジェクトにはslotという、様々なデータを格納する場所のようなものが内包されています。

> slotNames(pbmc)
 [1] "assays"       "meta.data"    "active.assay" "active.ident" "graphs"
 [6] "neighbors"    "reductions"   "images"       "project.name" "misc"
[11] "version"      "commands"     "tools"

この中の、assaysスロットには発現データが格納されています。
assaysスロットの中を見ると、list構造になっており "RNA" という要素が1つ入っていることが分かります。
( なお、解析の進行によってはこのlistに別名で別のデータを登録することも可能です。例えば、データ統合をすると、"integrated" という要素がpbmc@assaysの中に追加されます。)

> pbmc@assays
$RNA
Assay data with 13714 features for 2681 cells
First 10 features:
 AL627309.1, AP006222.2, RP11-206L10.2, RP11-206L10.9, LINC00115, NOC2L,
KLHL17, PLEKHN1, RP11-54O7.17, HES4

ただし、pbmc@assays$RNA は単に発現データが格納されているだけではなく、その中にもSeuratオブジェクトと同様に複数のslotが内包されています。

> slotNames(pbmc@assays$RNA)
[1] "counts"        "data"          "scale.data"    "key"
[5] "assay.orig"    "var.features"  "meta.features" "misc"

これらのスロットには、生データ・正規化された後の値など複数の階層のデータが格納されています。

  • "counts" カウント生データ
  • "data" 発現量データ
  • "scale.data" 標準化後(平均をゼロにする)のデータ

→ なので、色々解析した後に、生データを参照したい場合には、

> pbmc@assays$RNA@counts

で呼び出してくることが可能です。

注意点・subsetすると大きいデータには戻れません

ただし、subset()関数でのフィルタリングをすると、条件に合わなかった細胞のデータはSeuratオブジェクトに含まれなくなります。

# 例
> pbmc <- subset(pbmc, subset = nCount_RNA < 7000   )

フィルタ前のオブジェクトを上書きして消してしまった場合には、
残念ながらデータ読み込みから再実行するのが手順数的には最も簡単だと思われます。