重生之我在剑桥大学学习单细胞RNA-seq分析——7. 使用Seurat进行单细胞RNA测序分析(3)

7.3 SCTransform标准化和聚类
由于我们已经通过额外的QC去除了双胞和空细胞,现在可以应用SCTransform标准化,这有利于通过提高信噪比来寻找稀有细胞群。SCTransform命令取代了NormalizeDataScaleDataFindVariableFeatures。我们还将使用vars.to.regress变量来校正线粒体基因和细胞周期得分;我们之前的探索表明,细胞周期得分和线粒体百分比在cluster之间都没有发生很大变化,因此我们不会去除生物信号,而只会去除一些不必要的变化。

> srat <- SCTransform(srat, method = "glmGamPoi", ncells = 8824, 
                      vars.to.regress = c("percent.mt","S.Score","G2M.Score"), verbose = F)
> srat
An object of class Seurat 
56857 features across 8824 samples within 2 assays 
Active assay: SCT (20256 features, 3000 variable features)
 1 other assay present: RNA
 2 dimensional reductions calculated: pca, umap

之后,进行标准PCA、UMAP和聚类。注意SCT现在是处在活动状态的assay。通常在使用SCTransform时使用更多PC;确切数量可以根据数据集进行调整。

> srat <- RunPCA(srat, verbose = F)
> srat <- RunUMAP(srat, dims = 1:30, verbose = F)
> srat <- FindNeighbors(srat, dims = 1:30, verbose = F)
> srat <- FindClusters(srat, verbose = F)
> table(srat[[]]$seurat_clusters)

   0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15 
1766 1554 1214 1066  927  379  328  316  301  268  249  131  107  103   98   17
> DimPlot(srat, label = T)

正确定义cluster非常重要。我们来检查一下之前提到的较小细胞群的marker——即血小板和DC。

> FeaturePlot(srat,"PPBP") & 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral")))
> FeaturePlot(srat,"LILRA4") & 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral")))

我们可以看到,在cluster 6和cluster 14之间有一簇血小板,但尚未被识别(注:这里感觉图文不对版,关注思路就好)。将FindClusters中的聚类分辨率增加到2将有助于分离血小板簇,但也会生成过多的簇。
如果有需要,我们可以手动分离一些簇。还有一些聚类方法专门用于识别稀有细胞群。让我们尝试在KNN图中使用更少的邻居,结合leiden算法(现在是scanpy中的默认算法)并稍微增加分辨率:

> srat <- FindNeighbors(srat, dims = 1:30, k.param = 15, verbose = F)
> srat <- FindClusters(srat, verbose = F, algorithm = 4, resolution = 0.9)
> table(srat[[]]$seurat_clusters)

   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16 
1738 1342 1211 1056  934  380  332  318  315  265  251  211  133  105  104   99 
  17   18 
  17   13
> DimPlot(srat, label = T)

已知cluster 16对应血小板,cluster 15对应DC(看不出来)。然后我们粗略地看一下大细胞群是什么。

> FeaturePlot(srat,"MS4A1") + 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral"))) + 
    ggtitle("MS4A1: B cells")
> FeaturePlot(srat,"LYZ") + 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral"))) + 
    ggtitle("LYZ: monocytes")
> FeaturePlot(srat,"NKG7") + 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral"))) + 
    ggtitle("NKG7: natural killers")
> FeaturePlot(srat,"CD8B") + 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral"))) + 
    ggtitle("CD8B: CD8 T cells")
> FeaturePlot(srat,"IL7R") + 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral"))) + 
    ggtitle("IL7R: CD4 T cells")

可以看到一些亚群的分离效果更好。这些将在下文进一步讨论。
7.4 差异表达和marker选择
差异表达分析使我们能够定义每个cluster特有的marker基因。它受cluster定义方式的影响,因此在筛选marker之前找到正确的聚类分辨率非常重要。如果某些cluster缺少显著的marker,则调整聚类。建议在RNA assay上进行差异表达分析,而不是SCTransform
首先,让我们将处于活动状态的assay重新设置为“RNA”,并重新进行标准化和中心化(因为我们删除了很大一部分未通过QC的细胞):

> DefaultAssay(srat) <- "RNA"
> srat <- NormalizeData(srat)
> srat <- FindVariableFeatures(srat, selection.method = "vst", nfeatures = 2000)
> all.genes <- rownames(srat)
> srat <- ScaleData(srat, features = all.genes)
Centering and scaling data matrix

以下函数允许通过将每个cluster与所有剩余细胞进行比较来找到每个cluster的marker,同时仅输出阳性结果。许多检验可用于定义marker,默认使用Wilcoxon秩和检验。这需要大概几分钟的时间。为了提高速度,可以增加默认的最小百分比和log2FC阈值;调整这些参数以适应你的数据。

> all.markers <- FindAllMarkers(srat, only.pos = T, min.pct = 0.5, logfc.threshold = 0.5)

快速浏览一下这些marker。

> dim(all.markers)
[1] 4898    7
> table(all.markers$cluster)

  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18 
544 131 130  74 530 145 447 183  62 261 154  84 249 152 524 117 224 887 
> top3_markers <- as.data.frame(all.markers %>% 
                                group_by(cluster) %>% 
                                top_n(n = 3, wt = avg_log2FC))
> top3_markers
           p_val avg_log2FC pct.1 pct.2     p_val_adj cluster      gene
1   0.000000e+00  4.5268744 0.997 0.177  0.000000e+00       1    S100A8
2   0.000000e+00  4.2834962 0.997 0.200  0.000000e+00       1    S100A9
3   0.000000e+00  3.2865113 0.972 0.115  0.000000e+00       1   S100A12
4   0.000000e+00  1.2341390 0.911 0.372  0.000000e+00       2      TCF7
5  1.164915e-302  1.1729103 0.888 0.383 4.263707e-298       2    BCL11B
6  1.180905e-198  1.3114609 0.699 0.304 4.322230e-194       2     TRBC1
7   0.000000e+00  2.5047609 0.982 0.069  0.000000e+00       3      CD8B
8   0.000000e+00  1.7737856 0.677 0.023  0.000000e+00       3 LINC02446
9   0.000000e+00  1.6422981 0.876 0.078  0.000000e+00       3      CD8A
10  0.000000e+00  1.6336200 0.986 0.475  0.000000e+00       4      IL32
11  0.000000e+00  1.6077712 0.991 0.653  0.000000e+00       4       LTB
12 3.238201e-273  1.4391753 0.934 0.406 1.185214e-268       4      IL7R
13  0.000000e+00  2.1857867 0.900 0.193  0.000000e+00       5  APOBEC3A
14  0.000000e+00  2.1288663 0.978 0.290  0.000000e+00       5    MARCKS
15  0.000000e+00  2.1100918 0.984 0.324  0.000000e+00       5    IFITM3
16  0.000000e+00  3.3394836 0.997 0.051  0.000000e+00       6     MS4A1
17  0.000000e+00  3.2002061 0.682 0.072  0.000000e+00       6      IGKC
18  0.000000e+00  3.1635207 1.000 0.088  0.000000e+00       6     CD79A
19  0.000000e+00  3.7269130 1.000 0.139  0.000000e+00       7    FCGR3A
20  0.000000e+00  3.5624660 0.913 0.027  0.000000e+00       7    CDKN1C
21 3.857245e-241  2.8285081 1.000 0.370 1.411790e-236       7    IFITM3
22  0.000000e+00  3.8483906 0.937 0.033  0.000000e+00       8      GZMH
23  0.000000e+00  3.7596608 0.997 0.117  0.000000e+00       8      CCL5
24  0.000000e+00  3.7303640 1.000 0.170  0.000000e+00       8      NKG7
25  0.000000e+00  3.2997953 0.841 0.034  0.000000e+00       9      GZMK
26  0.000000e+00  2.6895744 0.921 0.120  0.000000e+00       9      CCL5
27 7.722065e-230  1.7610753 0.800 0.126 2.826353e-225       9      GZMA
28  0.000000e+00  5.2176026 1.000 0.073  0.000000e+00      10      GNLY
29  0.000000e+00  4.2078064 1.000 0.176  0.000000e+00      10      NKG7
30  0.000000e+00  3.8337378 0.992 0.103  0.000000e+00      10      PRF1
31  0.000000e+00  4.0114869 1.000 0.069  0.000000e+00      11      IGHM
32  0.000000e+00  3.7919296 1.000 0.072  0.000000e+00      11      IGKC
33  0.000000e+00  3.5643880 0.964 0.021  0.000000e+00      11     TCL1A
34  6.325413e-39  0.8709246 0.777 0.360  2.315164e-34      12      CCR7
35  7.346774e-38  0.8722015 0.957 0.534  2.688993e-33      12      CD3E
36  2.507370e-26  0.8702442 0.853 0.537  9.177223e-22      12     TRBC2
37  0.000000e+00  2.7732163 0.842 0.008  0.000000e+00      13    FCER1A
38 2.353340e-111  2.9986254 0.992 0.298 8.613459e-107      13  HLA-DQA1
39  3.412537e-88  2.7180890 1.000 0.495  1.249023e-83      13  HLA-DPB1
40  0.000000e+00  4.4809498 0.905 0.025  0.000000e+00      14     IGLC2
41  0.000000e+00  3.9502507 0.686 0.018  0.000000e+00      14     IGLC3
42 1.608644e-238  3.8078629 1.000 0.085 5.887798e-234      14      IGHM
43  0.000000e+00  3.5738916 0.837 0.040  0.000000e+00      15    JCHAIN
44 1.000645e-238  4.1104811 0.817 0.055 3.662459e-234      15      GZMB
45 1.605595e-139  3.5527436 0.846 0.117 5.876638e-135      15     ITM2C
46  0.000000e+00  2.8907374 0.980 0.052  0.000000e+00      16      GZMK
47 3.476722e-192  3.6726402 1.000 0.114 1.272515e-187      16     KLRB1
48 2.240730e-121  2.2655451 0.848 0.124 8.201297e-117      16      NCR3
49 1.173559e-117  8.0515428 1.000 0.030 4.295342e-113      17     IGLC1
50  3.450223e-91  9.4362396 0.941 0.036  1.262816e-86      17     IGHA1
51  1.364084e-24  7.8462060 0.765 0.097  4.992685e-20      17      IGKC
52  0.000000e+00  2.9967998 1.000 0.004  0.000000e+00      18      TYMS
53  8.837517e-20  3.8742685 1.000 0.188  3.234619e-15      18     STMN1
54  1.157218e-09  3.3464621 1.000 0.740  4.235532e-05      18    TUBA1B

有些marker的信息量不如其他marker。为了进行详细分析,最好对亚群之间的差异表达进行分析。

往期内容:
重生之我在剑桥大学学习单细胞RNA-seq分析——7. 使用Seurat进行单细胞RNA测序分析(1)
重生之我在剑桥大学学习单细胞RNA-seq分析——7. 使用Seurat进行单细胞RNA测序分析(2)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容