在用seurat包进行单细胞测序分析的时候,不知道为什么跑出来pca以后得到的p-value都是0。
这里是用JackStraw检验的时候出现的
seurat_phase <- JackStraw(seurat_phase,num.replicate = 100)
seurat_phase <- ScoreJackStraw(seurat_phase, dims = 1:20)
JackStrawPlot(seurat_phase, dims = 1:15)
Warning message:
Removed 21000 rows containing missing values (`geom_point()`).
画出来的结果是这样的
这是在找marker的时候的
> cluster2.markers <- FindMarkers(seurat_phase, ident.1 = 2, min.pct = 0.25)
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02m 15s
> head(cluster2.markers, n = 5)
p_val avg_log2FC pct.1 pct.2 p_val_adj
ABCA10 0 2.954014 0.832 0.258 0
ABCA6 0 1.884818 0.798 0.343 0
ABCA8 0 1.949229 0.754 0.346 0
ABCA9 0 2.313746 0.779 0.284 0
ABCA9-AS1 0 2.811838 0.681 0.176 0
有点不清楚是那个地方出了问题,或者是数据处理的方法不对导致的吗?还是这代表了数据有什么别的特性呢?请大家帮忙看一下这个问题是怎么回事,万分感谢!
Seurat标准流程中使用JackStraw方法进行差异基因检测时,p-value为0可能是因为JackStraw方法在计算p-value时使用的是假设检验中的负无穷大值(-Inf)。在计算p-value时,JackStraw方法首先在每个维度上随机重排基因表达数据,然后计算在重排后的数据中该维度上的差异基因数量。如果该维度在重排后的数据中差异基因数量大于原始数据中的数量,则p-value记为0,否则p-value记为1/重排次数。因此,在计算p-value时,如果重排后的数据中差异基因数量始终大于原始数据中的数量,则p-value将始终为0。这可能是因为在该数据集中,所有维度上的差异基因数量都很大,而且在任何重排方式下都大于原始数据中的数量。