シングルセル RNA解析ソフト Seurat で
しばしばPCA, tSNE, UMAPといった次元削減を行いますね。
Seuratを使って作図するときは DimPlot()
関数を使いますが、座標だけを知りたいときはこうします。
座標があれば、Rで細かな作図のアレンジをすることはもちろん、
csvに書き出せばエクセル、Loupe Browserなど他のソフトでも使えるようになります。
Embeddings
座標を取り出すには Embeddings()
関数を使います。
日本語では 「包埋」。
取り出したマトリックスの列数は元の次元数に対応し、tSNE, UMAPは2で、PCAは数十個となります。
> embeds_u <- Embeddings(seurat_obj@reductions$umap) > head(embeds_u) UMAP_1 UMAP_2 AAACCTGAGACTAGAC-1 -7.163653 6.226910 AAACCTGAGCGTGAAT-1 -0.065422 -3.196421 AAACCTGCACGGCTAC-1 5.703184 7.593324 AAACGGGTCACAATGC-1 7.623787 6.151849 AAACGGGTCAGTCAGT-1 -2.568561 -8.758121 AAACGGGTCAGTGCAC-1 -6.955000 6.381600 > write.csv(embeds_u, "umap_embeds.csv", row.names=TRUE)
Loupe Browserに取り込む際は、上記では行名となっているバーコード配列が1列目 'Barcode' となり必要です。
おまけ。この情報、どこに入っているんだ?
先ほど使った、座標が入っているこれ seurat_obj@reductions$umap
どうやって探してくるかといいますと、
seuratオブジェクトにはたくさんのスロット(データ入れ場)があります。
ちょっと確認してみます。
以下のスロット名が確認でき、次元削減の結果は seurat_obj@reductions
に入っていそうだなと分かります。
> slotNames(seurat_obj) [1] "assays" "meta.data" "active.assay" "active.ident" "graphs" [6] "neighbors" "reductions" "project.name" "misc" "version" [11] "commands" "tools"
お役立てください。
「このcsv欲しい!」
受託解析を依頼される方、遠慮なくお知らせください。
参考文献:
x and y coordinate of t-SNE plot · Issue #1520 · satijalab/seurat · GitHub