單細胞基礎(chǔ)教程:跨條件整合分析

導(dǎo)讀

撰寫本文的主要目的是:整合 處理與對照后的 PBMC(Human peripheral blood mononuclear cell,人外周血單個核細胞) 數(shù)據(jù)集以了解細胞類型特異性反應(yīng)和整合的作用着饥。

本教程介紹了來自 Kang 等人犀农,2017 年 的兩組 PBMC 的比對情況。在這個實驗中宰掉,PBMCs 被分成處理組(刺激組)和對照組呵哨,處理組使用 干擾素β 處理。對干擾素的應(yīng)激導(dǎo)致細胞類型特異性基因表達發(fā)生變化轨奄,這使得對所有數(shù)據(jù)的聯(lián)合分析變得困難孟害。在這里,我們展示了我們的整合策略挪拟,如 Stuart 和 Butler 等人挨务,2018 年 所述,執(zhí)行整合分析以促進常見細胞類型的識別并進行比較分析玉组。雖然此示例只演示了兩個數(shù)據(jù)集(條件)的整合谎柄,但這個方法可以擴展到多個數(shù)據(jù)集。

1. 目的

以下教程旨在為您概述使用 Seurat 整合后對復(fù)雜細胞類型進行的各種比較分析惯雳。

在這里朝巫,我們有以下三個目標:

  • 識別兩個數(shù)據(jù)集中都存在的細胞類型
  • 獲得對照組和處理組中都保守的細胞類型標記(markers
  • 通過比較數(shù)據(jù)集來尋找對刺激處理產(chǎn)生特異性反應(yīng)的細胞類型

2. 創(chuàng)建對象

基因表達矩陣可以在文末的鏈接找到下載地址,或 點我石景。我們首先讀入兩個計數(shù)矩陣并創(chuàng)建 Seurat 對象劈猿。

# 加載包
library(Seurat)
library(cowplot)

# 讀取數(shù)據(jù)
ctrl.data <- read.table(file = "../data/immune_control_expression_matrix.txt.gz", sep = "\t")
stim.data <- read.table(file = "../data/immune_stimulated_expression_matrix.txt.gz", sep = "\t")

# 創(chuàng)建 對照組 對象
ctrl <- CreateSeuratObject(counts = ctrl.data, project = "IMMUNE_CTRL", min.cells = 5)
ctrl$stim <- "CTRL"
ctrl <- subset(ctrl, subset = nFeature_RNA > 500)
ctrl <- NormalizeData(ctrl, verbose = FALSE)
ctrl <- FindVariableFeatures(ctrl, selection.method = "vst", nfeatures = 2000)

# 創(chuàng)建 處理組 對象
stim <- CreateSeuratObject(counts = stim.data, project = "IMMUNE_STIM", min.cells = 5)
stim$stim <- "STIM"
stim <- subset(stim, subset = nFeature_RNA > 500)
stim <- NormalizeData(stim, verbose = FALSE)
stim <- FindVariableFeatures(stim, selection.method = "vst", nfeatures = 2000)

3. 整合

然后,我們使用 FindIntegrationAnchors 函數(shù)識別 anchors(錨點)潮孽,該函數(shù)將 Seurat 對象列表作為輸入揪荣,并使用這些錨點,利用 IntegrateData 函數(shù)將兩個數(shù)據(jù)集整合在一起往史。

# 識別 anchors 
immune.anchors <- FindIntegrationAnchors(object.list = list(ctrl, stim), dims = 1:20)


# 整合
immune.combined <- IntegrateData(anchorset = immune.anchors, dims = 1:20)

4. 整體分析

現(xiàn)在我們可以對所有細胞進行一個綜合分析变逃!

DefaultAssay(immune.combined) <- "integrated"

# 運行可視化和聚類的標準工作流程
immune.combined <- ScaleData(immune.combined, verbose = FALSE)
immune.combined <- RunPCA(immune.combined, npcs = 30, verbose = FALSE)

# t-SNE and 聚類
immune.combined <- RunUMAP(immune.combined, reduction = "pca", dims = 1:20)
immune.combined <- FindNeighbors(immune.combined, reduction = "pca", dims = 1:20)
immune.combined <- FindClusters(immune.combined, resolution = 0.5)

# 可視化
p1 <- DimPlot(immune.combined, reduction = "umap", group.by = "stim")
p2 <- DimPlot(immune.combined, reduction = "umap", label = TRUE)
plot_grid(p1, p2)
UMAP

為了并排可視化這兩個條件,我們可以使用 split.by 參數(shù)來顯示按簇著色的每個條件怠堪。

DimPlot(immune.combined, reduction = "umap", split.by = "stim")
UMAP

5. 保守marker鑒定

為了識別跨條件保守的細胞類型標記基因揽乱,Seurat 提供了 FindConservedMarkers 函數(shù)。此函數(shù)對每個數(shù)據(jù)集或組執(zhí)行差異基因表達 test粟矿,并使用 MetaDE R 包中的元分析(Meta-analysis)方法組合 p 值凰棉。例如,我們可以計算簇 7(NK 細胞)中無論條件如何陌粹,都是保守的標記基因撒犀。

DefaultAssay(immune.combined) <- "RNA"
nk.markers <- FindConservedMarkers(immune.combined, ident.1 = 7, grouping.var = "stim", verbose = FALSE)
head(nk.markers)
nk.markers

我們可以探索每個簇的這些標記基因,并使用它們掏秩,將我們的簇注釋為特定的細胞類型或舞。

FeaturePlot(immune.combined, features = c("CD3D", "SELL", "CREM", "CD8A", "GNLY", "CD79A", "FCGR3A", 
    "CCL2", "PPBP"), min.cutoff = "q9")
FeaturePlot
immune.combined <- RenameIdents(immune.combined, `0` = "CD14 Mono", `1` = "CD4 Naive T", `2` = "CD4 Memory T", 
    `3` = "CD16 Mono", `4` = "B", `5` = "CD8 T", `6` = "T activated", `7` = "NK", `8` = "DC", `9` = "B Activated", 
    `10` = "Mk", `11` = "pDC", `12` = "Eryth", `13` = "Mono/Mk Doublets")

DimPlot(immune.combined, label = TRUE)
DimPlot

帶有 split.by 參數(shù)的 DotPlot 函數(shù)可用于查看跨條件的保守細胞類型標記,顯示表達水平和表達任何給定基因的簇中細胞的百分比蒙幻。在這里映凳,我們?yōu)?13 個聚類中的每一個繪制了 2-3 個強標記基因。

Idents(immune.combined) <- factor(Idents(immune.combined), levels = c("Mono/Mk Doublets", "pDC", 
    "Eryth", "Mk", "DC", "CD14 Mono", "CD16 Mono", "B Activated", "B", "CD8 T", "NK", "T activated", 
    "CD4 Naive T", "CD4 Memory T"))

markers.to.plot <- c("CD3D", "CREM", "HSPH1", "SELL", "GIMAP5", "CACYBP", "GNLY", "NKG7", "CCL5", 
    "CD8A", "MS4A1", "CD79A", "MIR155HG", "NME1", "FCGR3A", "VMO1", "CCL2", "S100A9", "HLA-DQA1", 
    "GPR183", "PPBP", "GNG11", "HBA2", "HBB", "TSPAN13", "IL3RA", "IGJ")

DotPlot(immune.combined, features = rev(markers.to.plot), cols = c("blue", "red"), dot.scale = 8, 
    split.by = "stim") + RotatedAxis()
DotPlot

6. 跨條件識別差異表達基因

現(xiàn)在我們已經(jīng)對齊了受刺激組(處理組)細胞和對照組細胞邮破,我們可以開始進行比較分析并查看刺激引起的差異诈豌。觀察這些變化的一種方法是繪制受刺激細胞和對照細胞的平均表達,并在散點圖上尋找異常值的基因抒和。在這里矫渔,我們?nèi)∈艽碳ず蛯φ?naive T 細胞和 CD14 單核細胞群的平均表達,并生成散點圖摧莽,突出顯示對干擾素刺激有顯著反應(yīng)的基因庙洼。

t.cells <- subset(immune.combined, idents = "CD4 Naive T")
Idents(t.cells) <- "stim"
avg.t.cells <- log1p(AverageExpression(t.cells, verbose = FALSE)$RNA)
avg.t.cells$gene <- rownames(avg.t.cells)

cd14.mono <- subset(immune.combined, idents = "CD14 Mono")
Idents(cd14.mono) <- "stim"
avg.cd14.mono <- log1p(AverageExpression(cd14.mono, verbose = FALSE)$RNA)
avg.cd14.mono$gene <- rownames(avg.cd14.mono)

genes.to.label = c("ISG15", "LY6E", "IFI6", "ISG20", "MX1", "IFIT2", "IFIT1", "CXCL10", "CCL8")
p1 <- ggplot(avg.t.cells, aes(CTRL, STIM)) + geom_point() + ggtitle("CD4 Naive T Cells")
p1 <- LabelPoints(plot = p1, points = genes.to.label, repel = TRUE)
p2 <- ggplot(avg.cd14.mono, aes(CTRL, STIM)) + geom_point() + ggtitle("CD14 Monocytes")
p2 <- LabelPoints(plot = p2, points = genes.to.label, repel = TRUE)
plot_grid(p1, p2)
scatter plots

正如您所看到的,許多相同的基因在這兩種細胞類型中都上調(diào)镊辕,并且可能代表了一種保守的干擾素反應(yīng)途徑油够。

因為我們有信心在不同條件下識別出常見的細胞類型,所以我們可以查看相同類型細胞在不同條件下哪些基因會發(fā)生變化丑蛤。首先叠聋,我們在 meta.data 中創(chuàng)建一個列來保存細胞類型和處理信息,并將當(dāng)前標識切換到該列受裹。然后使用 FindMarkers 來查找受刺激 B 細胞和對照 B 細胞之間不同的基因碌补。請注意,此處顯示的許多 Top 基因與我們之前繪制的核心干擾素反應(yīng)基因相同棉饶。此外厦章,我們看到的 CXCL10 等特定于單核細胞和 B 細胞干擾素反應(yīng)的基因在此列表中也顯示出非常重要的意義。

immune.combined$celltype.stim <- paste(Idents(immune.combined), immune.combined$stim, sep = "_")
immune.combined$celltype <- Idents(immune.combined)
Idents(immune.combined) <- "celltype.stim"
b.interferon.response <- FindMarkers(immune.combined, ident.1 = "B_STIM", ident.2 = "B_CTRL", verbose = FALSE)
head(b.interferon.response, n = 15)
b.interferon.response

另一種可視化基因表達變化的方法是使用 FeaturePlotVlnPlot 函數(shù)的 split.by 選項照藻。這將顯示給定基因列表的特征圖袜啃,按分組變量(此處為刺激條件)拆分。CD3D 和 GNLY 等基因是典型的細胞類型標記(用于 T 細胞和 NK/CD8 T 細胞)幸缕,它們幾乎不受干擾素刺激的影響群发,并且在對照組和受刺激組中顯示出相似的基因表達模式晰韵。另一方面,IFI6 和 ISG15 是核心干擾素反應(yīng)基因熟妓,并在所有細胞類型中上調(diào)雪猪。最后,CD14 和 CXCL10 是顯示細胞類型特異性干擾素反應(yīng)的基因起愈。刺激 CD14 單核細胞后 CD14 表達降低只恨,這可能導(dǎo)致監(jiān)督分析框架中發(fā)生錯誤分類,強調(diào)了整合分析的價值抬虽。CXCL10 在干擾素刺激后在單核細胞和 B 細胞中顯示出明顯的上調(diào)官觅,但在其他細胞類型中則沒有。

FeaturePlot(immune.combined, features = c("CD3D", "GNLY", "IFI6"), split.by = "stim", max.cutoff = 3, 
    cols = c("grey", "red"))
VlnPlot
plots <- VlnPlot(immune.combined, features = c("LYZ", "ISG15", "CXCL10"), split.by = "stim", group.by = "celltype", 
    pt.size = 0, combine = FALSE)
CombinePlots(plots = plots, ncol = 1)

本文由mdnice多平臺發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阐污,一起剝皮案震驚了整個濱河市休涤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疤剑,老刑警劉巖滑绒,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異隘膘,居然都是意外死亡疑故,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門弯菊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纵势,“玉大人,你說我怎么就攤上這事管钳∏仗” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵才漆,是天一觀的道長牛曹。 經(jīng)常有香客問我,道長醇滥,這世上最難降的妖魔是什么黎比? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮鸳玩,結(jié)果婚禮上阅虫,老公的妹妹穿的比我還像新娘。我一直安慰自己不跟,他們只是感情好颓帝,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般购城。 火紅的嫁衣襯著肌膚如雪吕座。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天工猜,我揣著相機與錄音米诉,去河邊找鬼。 笑死篷帅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拴泌。 我是一名探鬼主播魏身,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚪腐!你這毒婦竟也來了箭昵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤回季,失蹤者是張志新(化名)和其女友劉穎家制,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泡一,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡颤殴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鼻忠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涵但。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖帖蔓,靈堂內(nèi)的尸體忽然破棺而出矮瘟,到底是詐尸還是另有隱情,我是刑警寧澤塑娇,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布澈侠,位于F島的核電站,受9級特大地震影響埋酬,放射性物質(zhì)發(fā)生泄漏哨啃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一奇瘦、第九天 我趴在偏房一處隱蔽的房頂上張望棘催。 院中可真熱鬧,春花似錦耳标、人聲如沸醇坝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呼猪。三九已至画畅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宋距,已是汗流浹背轴踱。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谚赎,地道東北人淫僻。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像壶唤,于是被迫代替她去往敵國和親雳灵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

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