單細胞交響樂27-實戰(zhàn)十 CEL-seq-小鼠造血干細胞

劉小澤寫于2020.7.21
為何取名叫“交響樂”力惯?因為單細胞分析就像一個大樂團,需要各個流程的協(xié)同配合
單細胞交響樂1-常用的數(shù)據(jù)結構SingleCellExperiment
單細胞交響樂2-scRNAseq從實驗到下游簡介
單細胞交響樂3-細胞質(zhì)控
單細胞交響樂4-歸一化
單細胞交響樂5-挑選高變化基因
單細胞交響樂6-降維
單細胞交響樂7-聚類分群
單細胞交響樂8-marker基因檢測
單細胞交響樂9-細胞類型注釋
單細胞交響樂9-細胞類型注釋
單細胞交響樂10-數(shù)據(jù)集整合后的批次矯正
單細胞交響樂11-多樣本間差異分析
單細胞交響樂12-檢測Doublet
單細胞交響樂13-細胞周期推斷
單細胞交響樂14-細胞軌跡推斷
單細胞交響樂15-scRNA與蛋白豐度信息結合
單細胞交響樂16-處理大型數(shù)據(jù)
單細胞交響樂17-不同單細胞R包的數(shù)據(jù)格式相互轉換
單細胞交響樂18-實戰(zhàn)一 Smart-seq2
單細胞交響樂19-實戰(zhàn)二 STRT-Seq
單細胞交響樂20-實戰(zhàn)三 10X 未過濾的PBMC數(shù)據(jù)
單細胞交響樂21-實戰(zhàn)三 批量處理并整合多個10X PBMC數(shù)據(jù)
單細胞交響樂22-實戰(zhàn)五 CEL-seq2
單細胞交響樂23-實戰(zhàn)六 CEL-seq
單細胞交響樂24-實戰(zhàn)七 SMARTer 胰腺細胞
單細胞交響樂25-實戰(zhàn)八 Smart-seq2 胰腺細胞
單細胞交響樂26-實戰(zhàn)九 胰腺細胞數(shù)據(jù)整合

1 前言

前面的種種都是作為知識儲備奴璃,但是不實戰(zhàn)還是記不住前面的知識
這是第十個實戰(zhàn)練習

數(shù)據(jù)來自Grun et al. 2016的小鼠造血干細胞 haematopoietic stem cell (HSC) ,使用的技術是CEL-seq

數(shù)據(jù)準備

library(scRNAseq)
sce.grun.hsc <- GrunHSCData(ensembl=TRUE)
sce.grun.hsc
# class: SingleCellExperiment 
# dim: 21817 1915 
# metadata(0):
#   assays(1): counts
# rownames(21817): ENSMUSG00000109644
# ENSMUSG00000007777 ... ENSMUSG00000055670
# ENSMUSG00000039068
# rowData names(3): symbol chr originalName
# colnames(1915): JC4_349_HSC_FE_S13_
# JC4_350_HSC_FE_S13_ ...
# JC48P6_1203_HSC_FE_S8_
# JC48P6_1204_HSC_FE_S8_
# colData names(2): sample protocol
# reducedDimNames(0):
#   altExpNames(0):

table(sce.grun.hsc$sample)
# 
# JC20   JC21   JC26   JC27   JC28   JC30   JC32 
# 87     96     85     91     80     96     93 
# JC35   JC36   JC37   JC39    JC4   JC40   JC41 
# 96     80     87     93     84     96     94 
# JC43   JC44   JC45   JC46 JC48P4 JC48P6 JC48P7 
# 92     94     90     96     95     96     94 
ID轉換
library(AnnotationHub)
ens.mm.v97 <- AnnotationHub()[["AH73905"]]
anno <- select(ens.mm.v97, keys=rownames(sce.grun.hsc), 
               keytype="GENEID", columns=c("SYMBOL", "SEQNAME"))

# 這里全部對應
> sum(is.na(anno$SYMBOL))
[1] 0
> sum(is.na(anno$SEQNAME))
[1] 0

# 接下來只需要匹配順序即可
rowData(sce.grun.hsc) <- anno[match(rownames(sce.grun.hsc), anno$GENEID),]

sce.grun.hsc
## class: SingleCellExperiment 
## dim: 21817 1915 
## metadata(0):
## assays(1): counts
## rownames(21817): ENSMUSG00000109644 ENSMUSG00000007777 ...
##   ENSMUSG00000055670 ENSMUSG00000039068
## rowData names(3): GENEID SYMBOL SEQNAME
## colnames(1915): JC4_349_HSC_FE_S13_ JC4_350_HSC_FE_S13_ ...
##   JC48P6_1203_HSC_FE_S8_ JC48P6_1204_HSC_FE_S8_
## colData names(2): sample protocol
## reducedDimNames(0):
## altExpNames(0):

2 質(zhì)控

依然是備份一下城豁,把unfiltered數(shù)據(jù)主要用在質(zhì)控的探索上
unfiltered <- sce.grun.hsc

發(fā)現(xiàn)這個數(shù)據(jù)既沒有MT也沒有ERCC

grep('MT',rowData(sce.grun.hsc)$SEQNAME)
# integer(0)

能用的數(shù)據(jù)只有其中的protocol了苟穆,它表示細胞提取方法

table(sce.grun.hsc$protocol)
# 
# micro-dissected cells 
# 1546 
# sorted hematopoietic stem cells 
# 369 

# 再看一下各個樣本與提取方法的對應關系
table(sce.grun.hsc$protocol,sce.grun.hsc$sample)

根據(jù)背景知識,大部分顯微操作(micro-dissected)得到的細胞很多質(zhì)量都較低唱星,和我們的質(zhì)控假設相違背雳旅,于是這里就不把它們納入過濾條件

library(scater)
stats <- perCellQCMetrics(sce.grun.hsc)
# 只用sorted hematopoietic stem cells 計算過濾條件
qc <- quickPerCellQC(stats, batch=sce.grun.hsc$protocol,
    subset=grepl("sorted", sce.grun.hsc$protocol))

colSums(as.matrix(qc))
##   low_lib_size low_n_features        discard 
##            465            482            488

sce.grun.hsc <- sce.grun.hsc[,!qc$discard]
做個圖看看
colData(unfiltered) <- cbind(colData(unfiltered), stats)
unfiltered$discard <- qc$discard

gridExtra::grid.arrange(
    plotColData(unfiltered, y="sum", x="sample", colour_by="discard", 
        other_fields="protocol") + scale_y_log10() + ggtitle("Total count") +
        facet_wrap(~protocol),
    plotColData(unfiltered, y="detected", x="sample", colour_by="discard",
        other_fields="protocol") + scale_y_log10() + 
        ggtitle("Detected features") + facet_wrap(~protocol),
    ncol=1
)

可以看到,大多數(shù)的顯微操作技術得到的細胞文庫都比較小间聊,相比于細胞分選方法攒盈,它在提取過程中對細胞損傷較大

3 歸一化

使用去卷積方法

library(scran)
set.seed(101000110)
clusters <- quickCluster(sce.grun.hsc)
sce.grun.hsc <- computeSumFactors(sce.grun.hsc, clusters=clusters)
sce.grun.hsc <- logNormCounts(sce.grun.hsc)

4 找高變異基因

這里沒有指定任何的批次,因為想保留這兩種技術產(chǎn)生的任何差異

set.seed(00010101)
dec.grun.hsc <- modelGeneVarByPoisson(sce.grun.hsc) 
top.grun.hsc <- getTopHVGs(dec.grun.hsc, prop=0.1)

做個圖

plot(dec.grun.hsc$mean, dec.grun.hsc$total, pch=16, cex=0.5,
    xlab="Mean of log-expression", ylab="Variance of log-expression")
curfit <- metadata(dec.grun.hsc)
curve(curfit$trend(x), col='dodgerblue', add=TRUE, lwd=2)

看到這個線有點“太平緩”哎榴,和之前見過的都不一樣型豁,感覺“中間少了一個峰”。這是因為細胞中的基因表達量都比較低,差別也不大【大家一起貧窮,于是貧富差距很小】方椎,所以在縱坐標(衡量變化的方差)上體現(xiàn)不出來差距鳞仙,也就導致了擬合的曲線不會有“峰”

可能會想,那為什么不是大家表達量都很高呢(大家都很富有冤狡,貧富差距不是也很小嗎)?因為橫坐標可以看到鹿霸,從0-3.5泵喘,這個范圍對于表達量來說確實很小泪电,之前做的圖有的都大于10、15

5 降維聚類

降維就采取最基礎的方式:
set.seed(101010011)
sce.grun.hsc <- denoisePCA(sce.grun.hsc, technical=dec.grun.hsc, subset.row=top.grun.hsc)
sce.grun.hsc <- runTSNE(sce.grun.hsc, dimred="PCA")

# 檢查PC的數(shù)量
ncol(reducedDim(sce.grun.hsc, "PCA"))
## [1] 9
聚類
snn.gr <- buildSNNGraph(sce.grun.hsc, use.dimred="PCA")
colLabels(sce.grun.hsc) <- factor(igraph::cluster_walktrap(snn.gr)$membership)

table(colLabels(sce.grun.hsc))
## 
##   1   2   3   4   5   6   7   8   9  10  11  12 
## 259 148 221 103 177 108  48 122  98  63  62  18
作圖
short <- ifelse(grepl("micro", sce.grun.hsc$protocol), "micro", "sorted")
gridExtra:::grid.arrange(
    plotTSNE(sce.grun.hsc, colour_by="label"),
    plotTSNE(sce.grun.hsc, colour_by=I(short)),
    ncol=2
)

由于沒有去除兩個技術批次的差異纪铺,所以這里分的很開

6 找marker基因

markers <- findMarkers(sce.grun.hsc, test.type="wilcox", direction="up",
    row.data=rowData(sce.grun.hsc)[,"SYMBOL",drop=FALSE])

檢查一下cluster6的marker基因

chosen <- markers[['6']]
best <- chosen[chosen$Top <= 10,]
length(best)
# [1] 16

# 將cluster6與其他clusters對比的AUC結果提取出來
aucs <- getMarkerEffects(best, prefix="AUC")
rownames(aucs) <- best$SYMBOL

library(pheatmap)
pheatmap(aucs, color=viridis::plasma(100))

看到溶菌酶相關基因(LYZ家族)相速、Camp、 Lcn2鲜锚、 Ltf 都上調(diào)突诬,表明cluster6可能是神經(jīng)元起源細胞


歡迎關注我們的公眾號~_~  
我們是兩個農(nóng)轉生信的小碩,打造生信星球芜繁,想讓它成為一個不拽術語旺隙、通俗易懂的生信知識平臺。需要幫助或提出意見請后臺留言或發(fā)送郵件到jieandze1314@gmail.com

Welcome to our bioinfoplanet!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骏令,一起剝皮案震驚了整個濱河市蔬捷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌榔袋,老刑警劉巖周拐,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異凰兑,居然都是意外死亡妥粟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門聪黎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來罕容,“玉大人,你說我怎么就攤上這事稿饰〗趺耄” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵喉镰,是天一觀的道長旅择。 經(jīng)常有香客問我,道長侣姆,這世上最難降的妖魔是什么生真? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮捺宗,結果婚禮上柱蟀,老公的妹妹穿的比我還像新娘。我一直安慰自己蚜厉,他們只是感情好长已,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般术瓮。 火紅的嫁衣襯著肌膚如雪康聂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天胞四,我揣著相機與錄音恬汁,去河邊找鬼。 笑死辜伟,一個胖子當著我的面吹牛氓侧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播导狡,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼甘苍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了烘豌?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤看彼,失蹤者是張志新(化名)和其女友劉穎廊佩,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體靖榕,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡标锄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了茁计。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片料皇。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖星压,靈堂內(nèi)的尸體忽然破棺而出践剂,到底是詐尸還是另有隱情,我是刑警寧澤娜膘,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布逊脯,位于F島的核電站,受9級特大地震影響竣贪,放射性物質(zhì)發(fā)生泄漏军洼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一演怎、第九天 我趴在偏房一處隱蔽的房頂上張望匕争。 院中可真熱鬧,春花似錦爷耀、人聲如沸甘桑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扇住。三九已至春缕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間艘蹋,已是汗流浹背锄贼。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留女阀,地道東北人宅荤。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像浸策,于是被迫代替她去往敵國和親冯键。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345