在本节中,我们将使用immunarch包中的基本函数对免疫组库数据进行常规分析。
常用函数如下:
repExplore
- 计算基本统计数据,例如克隆数或长度和计数的分布。要探索它们,您需要将统计信息如“count”传递给.method
参数.repClonality
- 计算TCR/BCR库的克隆性。repOverlap
- 计算不同TCR/BCR库的重叠性。repOverlapAnalysis
- 分析TCR/BCR库的重叠,包括不同的聚类程序和 PCA。geneUsage
- 计算V或J基因的分布。geneUsageAnalysis
- 分析V或J基因的分布,包括聚类和PCA。repDiversity
- 估计TCR/BCR库的多样性。trackClonotypes
- 分析跨时间点的TCR/BCR库动态。spectratype
- 计算克隆型的谱型。getKmers
和kmer_profile
- 计算 kmers 和序列配置文件的分布。在immunarch中,每个函数的分析结果都可以直接传递给vis
函数进行可视化,它是一个通用的可视化函数。同时,我们还可以通过.by
参数传递任一分组变量,或同时将.by
和.meta
参数传递给 vis
函数来进行分组展示。
.by
参数将元数据表中的一个或多个列名称作为字符向量传递,以便在绘图之前对数据进行分组。在这种情况下,您还应该提供.meta
元数据表的参数。exp_vol <- repExplore(immdata$data, .method = "volume")
# Sample Volume
# A2-i129 A2-i129 6443
# A2-i131 A2-i131 6375
# A2-i133 A2-i133 6300
# A2-i132 A2-i132 6721
# A4-i191 A4-i191 5058
# A4-i192 A4-i192 5763
p1 <- vis(exp_vol, .by = c("Status"), .meta = immdata$meta)
p2 <- vis(exp_vol, .by = c("Status", "Sex"), .meta = immdata$meta)
# p1 + p2
.by
字符向量作为与数据中样本数量完全匹配的字符向量传递,每个值应对应于一个样本的属性。它将用于根据提供的值对数据进行分组。请注意,在这种情况下,您应该将 NA 传递给.meta
.exp_vol <- repExplore(immdata$data, .method = "volume")
by_vec <- c("C", "C", "C", "C", "C", "C", "MS", "MS", "MS", "MS", "MS", "MS")
p <- vis(exp_vol, .by = by_vec)
p
当数据被分组后,immunarch包会默认执行组间均值比较的统计检验,除非设置参数.test = F
。如果只有两个组,则执行Wilcoxon 秩和检验(wilcox.test
带有参数的R 函数exact = F
)以测试两组之间的平均秩值是否存在差异。如果有两个以上的组,则执行Kruskal-Wallis 检验(R 函数kruskal.test
),这相当于秩合方差分析,它测试来自不同组的样本是否来自同一分布。一个显著的 Kruskal-Wallis 检验结果表明至少一个样本随机地支配另一个样本。多重比较调整后的 P 值绘制在组的顶部。P 值调整是使用Holm 方法(也称为 Holm-Bonferroni 校正)。您可以[?p.adjust](https://rdrr.io/r/stats/p.adjust.html)
在 R 控制台中执行该命令以查看更多信息。
该vis
函数生成的图以及任何基于 ggplot2 的图都可以传递给 —fixVis
内置交互式可视化工具,用于制作可发表的图:
# 1. Analyse
exp_len <- repExplore(immdata$data, .method = "len", .col = "aa")
# Sample Length Count
# 1 A2-i129 6 1
# 2 A2-i129 9 6
# 3 A2-i129 10 36
# 4 A2-i129 11 243
# 5 A2-i129 12 517
# 6 A2-i129 13 1081
# 2. Visualise
p1 <- vis(exp_len)
# 3. Fix and make publication-ready results
fixVis(p1)
对于基本的探索性分析,例如比较每个曲目的读取数/UMI 或分布,请使用该函数repExplore。
exp_len <- repExplore(immdata$data, .method = "len", .col = "aa")
head(exp_len)
# Sample Length Count
# 1 A2-i129 6 1
# 2 A2-i129 9 6
# 3 A2-i129 10 36
# 4 A2-i129 11 243
# 5 A2-i129 12 517
# 6 A2-i129 13 1081
exp_cnt <- repExplore(immdata$data, .method = "count")
head(exp_cnt)
# Sample Clone.num Clonotypes
# 1 A2-i129 1 5858
# 2 A2-i129 2 388
# 3 A2-i129 3 86
# 4 A2-i129 4 26
# 5 A2-i129 5 25
# 6 A2-i129 6 6
exp_vol <- repExplore(immdata$data, .method = "volume")
head(exp_vol)
# Sample Volume
# A2-i129 A2-i129 6443
# A2-i131 A2-i131 6375
# A2-i133 A2-i133 6300
# A2-i132 A2-i132 6721
# A4-i191 A4-i191 5058
# A4-i192 A4-i192 5763
p1 <- vis(exp_len)
p2 <- vis(exp_cnt)
p3 <- vis(exp_vol)
p1
p2 + p3
# You can group samples by their metainformation
p4 <- vis(exp_len, .by = "Status", .meta = immdata$meta)
p5 <- vis(exp_cnt, .by = "Sex", .meta = immdata$meta)
p6 <- vis(exp_vol, .by = c("Status", "Sex"), .meta = immdata$meta)
p4
p5 + p6
估计样本多样性的方法之一是评估克隆性。repClonality
函数可以计算最频繁或最不常见的克隆型的数量。有几种方法可以评估克隆性,让我们来看看它们。该clonal.prop
方法计算细胞克隆池占据的所有库的比例:
imm_pr <- repClonality ( immdata$data , .method = "clonal.prop" )
imm_pr
## Clones Percentage Clonal.count.prop
## A2-i129 18 10.0 0.0027556644
## A2-i131 28 10.0 0.0042728521
## A2-i133 9 10.3 0.0014077898
## A2-i132 113 10.0 0.0164987589
## A4-i191 4 11.5 0.0007773028
## A4-i192 8 10.4 0.0013738623
## MS1 2 10.1 0.0003700278
## MS2 66 10.0 0.0092372288
## MS3 2 10.6 0.0003095496
## MS4 176 10.0 0.0236336780
## MS5 3 13.2 0.0005303164
## MS6 150 10.0 0.0202456472
## attr(,"class")
## [1] "immunr_clonal_prop" "matrix"
该top
方法考虑了最丰富的细胞克隆型:
imm_top <- repClonality(immdata$data, .method = "top", .head = c(10, 100, 1000, 3000, 10000))
imm_top
## 10 100 1000 3000 10000
## A2-i129 0.08011765 0.17282353 0.3491765 0.5844706 1
## A2-i131 0.06670588 0.15647059 0.3467059 0.5820000 1
## A2-i133 0.10505882 0.18294118 0.3655294 0.6008235 1
## A2-i132 0.02388235 0.09423529 0.3118824 0.5471765 1
## A4-i191 0.17176471 0.32047059 0.5122353 0.7475294 1
## A4-i192 0.11541176 0.22141176 0.4325882 0.6678824 1
## MS1 0.19164706 0.30894118 0.4817647 0.7170588 1
## MS2 0.04458824 0.11470588 0.2770588 0.5123529 1
## MS3 0.16482353 0.23011765 0.3575294 0.5928235 1
## MS4 0.02329412 0.07517647 0.2415294 0.4768235 1
## MS5 0.20611765 0.29188235 0.4521176 0.6874118 1
## MS6 0.02835294 0.08235294 0.2460000 0.4812941 1
## attr(,"class")
## [1] "immunr_top_prop" "matrix"
该rare
方法处理丰度最低的克隆型: