在Seurat中,FindAllMarkers
函数是用来寻找不同群体(通常是细胞群体)之间显著差异表达的基因。这个函数对于解析细胞类型和理解细胞状态变化非常有用。FindAllMarkers
函数可以使用多种统计方法来测试表达差异,这些方法通过test.use
参数来指定。以下是一些常用的test.use
选项及其说明:
Wilcoxon Rank Sum test (
wilcox
): 默认的测试方法。这是一种非参数测试,用于比较两个独立样本的差异。Wilcoxon测试不要求数据符合正态分布,适用于连续或有序的数据。在寻找差异表达基因时,它比较的是两个细胞群体中每个基因的表达水平。Likelihood-Ratio Test for Single Cell Gene Expression (
LR
): 这种方法基于似然比测试,适用于计数数据。它通过比较两个模型(一个假设基因表达与细胞类型有关,另一个不假设)的拟合度来评估基因表达是否与细胞类型相关。t-test (
t
): 另一种比较两个群体之间差异的方法,假设数据服从正态分布。t-test适用于比较样本量较小的两组数据。在单细胞数据分析中,尽管数据可能不完全满足正态分布的假设,但t-test仍然被广泛使用。MAST (
MAST
): 专为单细胞RNA序列数据设计的框架,考虑了零膨胀(许多基因在许多细胞中不被表达的特点)和连续性(基因表达的变异性)的特点。MAST方法结合了线性混合模型来评估基因表达与细胞状态之间的关联。DESeq2 (
DESeq2
): 通常用于RNA序列数据的差异表达分析,通过使用负二项分布模型来处理计数数据,适合处理有大小差异的样本。在Seurat中,虽然DESeq2主要设计用于批量RNA-Seq数据,但也可以用于单细胞数据的差异表达分析。negbinom (
negbinom
): 负二项回归测试,适用于计数数据,特别是当数据显示出超离散性(变异数大于均值)时。这种方法通过对每个基因的表达量进行建模,来考察不同条件下的表达差异。
使用说明:
使用FindAllMarkers
函数时,可以通过设置test.use
参数来选择上述任一方法。选择哪种方法取决于数据的特性和研究问题。一般而言,非参数方法(如Wilcoxon测试)更加通用,而模型基础的方法(如DESeq2或MAST)可能在特定情况下提供更准确的结果。
示例:
markers <- FindAllMarkers(object = seurat_object, test.use = 'wilcox')
markers_LR <- FindAllMarkers(object = seurat_object, test.use = 'LR')
选择方法的依据:
- 如果数据分布未知或者偏离正态分布,优先考虑使用非参数测试(如
wilcox
)。 - 如果数据为计数数据,并且希望考虑零膨胀或其他计数数据特有的分布特征,可以选择
MAST
或DESeq2
。 - 对于想要利用似然比来评估基因表达差异性的场景,可以选择
LR
。 - 当数据表现出超离散性时,
negbinom
测试可能是一个好的选择。
在实际应用中,不同的测试方法可能会得到略有不同的结果。研究者可以根据具体的研究背景和数据特性,选择最合适的方法,并可能需要对比多种方法的结果来做出最终决定。