昨天在:公共数据集已经成为了生命科学研究的高速公路提到了一个肝癌的表达量芯片数据集,GSE14520,被关联到了十几篇文章。也就是说现在的小伙伴们如果想做肝癌的癌基因或者抑癌基因的表达量失调,或多或少都可以翻一下过往的公共数据集来加强自己的结论。
但是很多时候,转录组测序数据和表达量芯片技术的结果会出现冲突,比如在:公共数据集已经成为了生命科学研究的高速公路提到了Elafin如果是转录组测序可以看到恶性肿瘤样品的表达量升高,但是表达量芯片的(GSE14520,GSE25097,GSE63898)都看不到差异。这也就是为什么作者仍然是耗费大量的科研经费去收集好的病人样品去做IHC看Elafin的表达量 ,结果证明了Elafin是典型的癌基因,在肿瘤里面恶性高表达而且关联到了坏的预后。
当然了,数据分析结果的冲突性不仅仅是体现在技术手段的差异,同样是表达量转录组测序和芯片就会有冲突,在前面的笔记里面:有一些错误在图片上面显示不出来,我们提到的文章里面的韦恩图就是冲突的最佳体现!还体现在多组学层面的差异,比如转录水平的变化不一定有蛋白质水平的差异,也不一定有甲基化层面的差异。这样的话, 差异与否或者说差异是否达到统计学显著性,其实往往是研究者很主观的评价,而不是客观的描述:
比如我们还是看看这个肝癌的表达量芯片数据集,GSE14520,被关联到了十几篇文章的一个:Alternative splicing of the cell fate determinant Numb in hepatocellular carcinoma. Hepatology 2015 Oct;62(4):1122-31. PMID: 26058814
这个研究最终是为了说明 Numb expression in HCC patients. 就使用了公共数据集 GSE14520:得到的结论是:Total Numb mRNA levels are higher in HCC tumors (T) than in non-tumor liver tissues (NT). 如下所示:

肝癌的Total Numb mRNA levels 升高
但是如果我们去这些数据集的差异分析结果里面去检索我们的目标基因"NUMB",就会发现它就算是有差异,也很难达到统计学显著 :
grep NUMB ../*/*/DEG.csv|cut -d"," -f 1-3,5
../2010-GSE14520-肝癌-大队列/GSE14520-gset1/DEG.csv:"NUMB",-0.10020808080808,6.08089662921348,0.0362862776634381
../2012-GSE25097-肝癌-大队列-芯片技术缺陷/GSE25097/DEG.csv:"NUMBL",-0.00290374473204854,0.110165935174553,0.170061559120094
../2012-GSE25097-肝癌-大队列-芯片技术缺陷/GSE25097/DEG.csv:"NUMB",-0.0280264297950332,1.73117908779432,0.386698125686665
../2015-GSE63898-肝癌-大队列-芯片技术缺陷/GSE63898/DEG.csv:"NUMB",-0.102985118929542,8.38000465262664,0.0181690032298584
../2015-GSE63898-肝癌-大队列-芯片技术缺陷/GSE63898/DEG.csv:"NUMBL",-0.104274634152313,5.12329211000951,0.116819835201554
> DEG_DESeq2['NUMB',]
baseMean log2FoldChange pvalue
NUMB 2163.918 -0.3507979 4.440375e-07
上面的这些表达量芯片的(GSE14520,GSE25097,GSE63898),以及tcga数据库的肝癌转录组数据集,都是样品数量比较大的,几百个癌症样品,所以很容易达到统计学显著性。如果不卡变化倍数这个指标,那么未免也太宽松了。
比如上面的公共数据集 GSE14520就有一个表达量芯片平台上GPL3921,很容易搜索到确实是有两个探针的:
b=data.table::fread('../GPL3921-25447.txt.gz',
data.table = F,header = T)
colnames(b)
ids=b[,c('ID','Gene Symbol')]
head(ids)
# 207545_s_at
# 209073_s_at
但是实际上我们根本就没办法复现出来文章那样的统计学显著性:
load('GSE14520_eSet.Rdata')
a=gset[[1]]
dat=exprs(a) #a现在是一个对象,取a这个对象通过看说明书知道要用exprs这个函数
dim(dat)#看一下dat这个矩阵的维度
dat[1:4,1:4] #查看dat这个矩阵的1至4行和1至4列,逗号前为行,逗号后为列
boxplot(dat['207545_s_at',] ~ group_list)
boxplot(dat['209073_s_at',] ~ group_list)
在基因表达量差异分析中,变化倍数(Fold Change, FC)和P值是两个常用的度量指标,它们分别提供了不同方面的信息,结合起来使用可以更全面地评估基因表达的差异是否具有统计学意义和生物学意义。
为什么需要结合使用FC和P值:
因此,结合使用FC和P值可以提高差异表达分析的准确性和可靠性,帮助研究者更全面地理解基因表达的变化。
如果一个基因仅仅是符合p值阈值,变化倍数阈值达不到,就不重要了吗
一个基因如果仅符合P值阈值但变化倍数(Fold Change, FC)未达到设定的阈值,并不一定意味着它不重要。在评估基因表达差异的重要性时,需要考虑多个因素:
因此,即使一个基因的变化倍数未达到阈值,它仍然可能在生物学上具有重要意义。在决定基因的重要性时,应该综合考虑P值、变化倍数以及其他生物学和实验因素。
样品数量较多时,确实更容易获得统计学显著的P值,这主要归因于以下几个原因:
然而,也需要考虑以下几点:
因此,在样品数量较多的情况下,虽然更容易获得统计学显著的P值,但研究者需要综合考虑效应大小、数据质量、实验设计和生物学意义等因素,以确保结果的科学价值。同时,适当的统计方法和多重比较校正是必不可少的。