單細(xì)胞轉(zhuǎn)錄組數(shù)據(jù)分析||Seurat3.1教程:Interoperability between single-cell object formats

本節(jié),我們演示了在Seurat對(duì)象套么、singlecellexper對(duì)象和anndata對(duì)象之間進(jìn)行轉(zhuǎn)換的能力医寿。以建立Seurat與其他單細(xì)胞數(shù)據(jù)分析工具之間的鏈接巡揍。

# install scater https://bioconductor.org/packages/release/bioc/html/scater.html
library(scater)
# install loomR from GitHub using the remotes package remotes::install_github(repo =
# 'mojaveazure/loomR', ref = 'develop')
library(loomR)
library(Seurat)
library(monocle)
Seurat to monocle

用 Seurat 3 的Seurat::as.CellDataSet()函數(shù)可以直接將Seurat對(duì)象轉(zhuǎn)化為monocle2的對(duì)象,進(jìn)行monocle2的擬時(shí)分析油够。

?Seurat::as.CellDataSet()
monocle to Seurat

那蚁袭,monocle分析之后又想用seurat的功能怎么辦呢?monocle的對(duì)象也是可以轉(zhuǎn)化為Seurat的石咬。在這之前揩悄,讓我們來(lái)看看monocle的數(shù)據(jù)格式:

一般monocle構(gòu)建CDS需要3個(gè)矩陣:expr.matrix、pd鬼悠、fd

  • expr.matrix :基因-細(xì)胞表達(dá)矩陣
  • pd :細(xì)胞-細(xì)胞特征注釋矩陣
  • fd :基因-基因特征注釋矩陣

而創(chuàng)建這個(gè)seurat對(duì)象需要什么呢删性?

?Seurat::CreateSeuratObject

CreateSeuratObject(
  counts,  # 一個(gè)基因-細(xì)胞表達(dá)矩陣 (對(duì)應(yīng)monocle的expr.matrix)
  project = "SeuratProject", # 項(xiàng)目名稱可以以您的心情寫(xiě)
  assay = "RNA", # 一般count矩陣說(shuō)就是RNA
  min.cells = 0, # cells 過(guò)濾條件
  min.features = 0, # 基因過(guò)濾條件
  names.field = 1,  # 細(xì)胞名稱格式(一般不用亏娜,geo下載的數(shù)據(jù)需要注意了)
  names.delim = "_", # 細(xì)胞名稱分隔符(一般不用)
  meta.data = NULL  #細(xì)胞-細(xì)胞特征注釋矩陣 
)

所以我們可以用monocle的 expr.matrix 和pd 來(lái)構(gòu)建seurat的對(duì)象。

converting-tofrom-singlecellexperiment

SingleCellExperiment是由Davide Risso蹬挺、Aaron Lun和Keegan Korthauer創(chuàng)建的用于存儲(chǔ)單細(xì)胞實(shí)驗(yàn)數(shù)據(jù)的類维贺,并被許多生物導(dǎo)體分析包使用。在這里巴帮,我們演示了將3k PBMC教程中生成的Seurat對(duì)象轉(zhuǎn)換為與Davis McCarthy的scater包一起使用的SingleCellExperiment對(duì)象幸缕。

# download from satija lab https://www.dropbox.com/s/kwd3kcxkmpzqg6w/pbmc3k_final.rds?dl=0
pbmc <- readRDS(file = "../data/pbmc3k_final.rds")
pbmc.sce <- as.SingleCellExperiment(pbmc)
p1 <- plotExpression(pbmc.sce, features = "MS4A1", x = "ident") + theme(axis.text.x = element_text(angle = 45, 
    hjust = 1))
p2 <- plotPCA(pbmc.sce, colour_by = "ident")
CombinePlots(plots = list(p1, p2))
?pheatmap
head(pbmc@meta.data)
plotHeatmap(pbmc.sce,features = VariableFeatures(object = pbmc) ,show_colnames=F,colour_columns_by='seurat_clusters')#,cluster_cols=F
pbmc.sce <- calculateQCMetrics(pbmc.sce) 
fontsize <- theme(axis.text=element_text(size=12), axis.title=element_text(size=16))
plotHighestExprs(pbmc.sce, n=20) + fontsize

Seurat還允許從SingleCellExperiment對(duì)象轉(zhuǎn)換為Seurat對(duì)象;我們通過(guò)從Martin Hemberg的團(tuán)隊(duì)維護(hù)的存儲(chǔ)庫(kù)下載的一些公共數(shù)據(jù)來(lái)演示這一點(diǎn)。

# download from hemberg lab
# https://scrnaseq-public-datasets.s3.amazonaws.com/scater-objects/manno_human.rds
manno <- readRDS(file = "D:\\Users\\Administrator\\Desktop\\Novo周運(yùn)來(lái)\\SingleCell\\scrna_tools/manno_human.rds")
manno <- runPCA(manno)
manno.seurat <- as.Seurat(manno, counts = "counts", data = "logcounts")
# gives the same results; but omits defaults provided in the last line
manno.seurat <- as.Seurat(manno)
Idents(manno.seurat) <- "cell_type1"
p1 <- DimPlot(manno.seurat, reduction = "PCA", group.by = "Source") + NoLegend()
p2 <- RidgePlot(manno.seurat, features = "ACTB", group.by = "Source")
CombinePlots(plots = list(p1, p2))

converting-tofrom-loom

loom是一個(gè)文件結(jié)構(gòu)強(qiáng)加于HDF5文件,由斯坦林納森的小組設(shè)計(jì)晰韵。它的設(shè)計(jì)是為了有效地描述大型單細(xì)胞基因組數(shù)據(jù)集发乔。loop格式的詳細(xì)信息,請(qǐng)參閱http://linnarssonlab.org/loompy/format/index.html

 pbmc.loom <- as.loom(pbmc, filename = "pbmc3k.loom", verbose = FALSE)
Transposing input data: loom file will show input columns (cells) as rows and input rows (features) as columns
This is to maintain compatibility with other loom tools
Adding: CellID
Adding: Gene
Adding: vst_mean
Adding: vst_variance
Adding: vst_variance_expected
Adding: vst_variance_standardized
Adding: vst_variable
Adding: Selected
Adding: orig_ident
Adding: nCount_RNA
Adding: nFeature_RNA
Adding: percent_mt
Adding: RNA_snn_res_0_5
Adding: seurat_clusters
Adding: S_Score
Adding: G2M_Score
Adding: Phase
Adding: ClusterID
Adding: ClusterName
> pbmc.loom
Class: loom
Filename: D:\Documents\pbmc3k.loom
Access type: H5F_ACC_RDWR
Attributes: version, chunks, LOOM_SPEC_VERSION, assay, last_modified
Listing:
       name    obj_type dataset.dims dataset.type_class
  col_attrs   H5I_GROUP         <NA>               <NA>
 col_graphs   H5I_GROUP         <NA>               <NA>
     layers   H5I_GROUP         <NA>               <NA>
     matrix H5I_DATASET 2638 x 13714          H5T_FLOAT
  row_attrs   H5I_GROUP         <NA>               <NA>
 row_graphs   H5I_GROUP         <NA>               <NA>
# Always remember to close loom files when done
pbmc.loom$close_all()

當(dāng)然了雪猪,Seurat也支持loom格式到seurat的轉(zhuǎn)化栏尚。我們?cè)贚innarson實(shí)驗(yàn)室制作的小鼠大腦圖譜Mouse Brain Atlas
的一個(gè)子集中進(jìn)行演示。(我還是用Seurat生成的pbmc3k.loom來(lái)做演示吧……)

> pbmc <- connect(filename = "pbmc3k.loom", mode = "r")
> pbmc
Class: loom
Filename: D:\Documents\pbmc3k.loom
Access type: H5F_ACC_RDONLY
Attributes: version, chunks, LOOM_SPEC_VERSION, assay, last_modified
Listing:
       name    obj_type dataset.dims dataset.type_class
  col_attrs   H5I_GROUP         <NA>               <NA>
 col_graphs   H5I_GROUP         <NA>               <NA>
     layers   H5I_GROUP         <NA>               <NA>
     matrix H5I_DATASET 2638 x 13714          H5T_FLOAT
  row_attrs   H5I_GROUP         <NA>               <NA>
 row_graphs   H5I_GROUP         <NA>               <NA>
pbmc <- as.Seurat(pbmc)
VlnPlot(pbmc, features ="ACTB" , ncol = 2, pt.size = 0.1)
# Always remember to close loom files when done
l6.immune$close_all()
converting-tofrom-anndata

AnnData提供了一個(gè)由Alex Wolf和Philipp Angerer創(chuàng)建的Python類只恨,它可以用來(lái)存儲(chǔ)單細(xì)胞數(shù)據(jù)译仗。這種數(shù)據(jù)格式也用于存儲(chǔ)在他們的Scanpy包中,我們現(xiàn)在支持互操作性官觅。Seurat有一個(gè)新的函數(shù)ReadH5AD纵菌,用于從AnnData使用的H5AD文件中讀取數(shù)據(jù)。

# download from satija lab https://www.dropbox.com/s/ngs3p8n2i8y33hj/pbmc3k.h5ad?dl=0
pbmc3k <- ReadH5AD(file = "../data/pbmc3k.h5ad")
Idents(pbmc3k) <- "louvain"
p1 <- DimPlot(pbmc3k, label = TRUE) + NoLegend()
p2 <- VlnPlot(pbmc3k, features = c("CST3", "NKG7", "PPBP"), combine = FALSE)
CombinePlots(plots = c(list(p1), p2), ncol = 2, legend = "none")

We currently do not support direct Seurat → AnnData conversion. We do have a work around by allowing users to write out to a loom file with as.loom, then reading the loom file in Python with Scanpy/AnnData



conversion_vignette

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末休涤,一起剝皮案震驚了整個(gè)濱河市咱圆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌功氨,老刑警劉巖序苏,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異捷凄,居然都是意外死亡忱详,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)跺涤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)匈睁,“玉大人,你說(shuō)我怎么就攤上這事桶错『剿簦” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵牛曹,是天一觀的道長(zhǎng)佛点。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么超营? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任鸳玩,我火速辦了婚禮,結(jié)果婚禮上演闭,老公的妹妹穿的比我還像新娘不跟。我一直安慰自己,他們只是感情好米碰,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布窝革。 她就那樣靜靜地躺著,像睡著了一般吕座。 火紅的嫁衣襯著肌膚如雪虐译。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天吴趴,我揣著相機(jī)與錄音漆诽,去河邊找鬼。 笑死锣枝,一個(gè)胖子當(dāng)著我的面吹牛厢拭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播撇叁,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼供鸠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了陨闹?” 一聲冷哼從身側(cè)響起楞捂,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎正林,沒(méi)想到半個(gè)月后泡一,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡觅廓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涵但。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杈绸。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖矮瘟,靈堂內(nèi)的尸體忽然破棺而出瞳脓,到底是詐尸還是另有隱情,我是刑警寧澤澈侠,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布劫侧,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏烧栋。R本人自食惡果不足惜写妥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望审姓。 院中可真熱鬧珍特,春花似錦、人聲如沸魔吐。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)酬姆。三九已至嗜桌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辞色,已是汗流浹背骨宠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留淫僻,地道東北人诱篷。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像雳灵,于是被迫代替她去往敵國(guó)和親棕所。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容