两次差异分析结果的比较不要局限于韦恩图
初学者最喜欢怀疑自己的分析是否正确,比如差异分析的时候就容易陷入上下调基因数量的对比问题,文章可能是上下调一千附近,但是学员自己复现的时候就数量对不上。
其实这个问题并不在于上下调基因数量,应该是看质量,这样的对比才有意义。
最初级的就是韦恩图啦
大家在做差异分析结果比较的时候,喜欢看两次分析结果的基因交集,比如韦恩图。这样的简单粗暴的思考逻辑很容易理解,但是就会出现一下啼笑皆非的提问,比如有学生问,文献差异分析结果是1000个上调基因500个下调基因,但是自己做出来仅仅是50个和25个,其实仅仅是因为使用的筛选阈值不一样。如果画一个差异变化倍数(logFC)散点图,就可以很直观的给出两次分析结果差异了。
差异分析相信大家都不陌生了,基本上看我六年前的表达芯片的公共数据库挖掘系列推文即可;
- 解读GEO数据存放规律及下载,一文就够
- 解读SRA数据库规律一文就够
- 从GEO数据库下载得到表达矩阵 一文就够
- GSEA分析一文就够(单机版+R语言版)
- 根据分组信息做差异分析- 这个一文不够的
- 差异分析得到的结果注释一文就够
两个差异分析的结果的对比,韦恩图是比较符合直觉的展现方式。我们在《生信菜鸟团》有一个专辑反复提到过,大家可以自行去阅读:
两个差异分析的结果的对比
其次是变化倍数的散点图
比如我们可以在PBMC3K数据集里面,做两次单细胞差异分析:
CD14_deg = FindMarkers(sce,ident.1 = 'CD14+ Mono',
ident.2 = 'B')
head(CD14_deg[order(CD14_deg$p_val),])
FCGR3A_deg = FindMarkers(sce,ident.1 = 'FCGR3A+ Mono',
ident.2 = 'B')
head(FCGR3A_deg[order(FCGR3A_deg$p_val),])
然后拿两次差异分析各自统计学显著的基因的交集去绘图,代码如下所示:
ids=intersect(rownames(CD14_deg),
rownames(FCGR3A_deg))
df= data.frame(
FCGR3A_deg = FCGR3A_deg[ids,'avg_log2FC'],
CD14_deg = CD14_deg[ids,'avg_log2FC']
)
library(ggpubr)
ggscatter(df, x = "FCGR3A_deg", y = "CD14_deg",
color = "black", shape = 21, size = 3, # Points color, shape and size
add = "reg.line", # Add regressin line
add.params = list(color = "blue", fill = "lightgray"), # Customize reg. line
conf.int = TRUE, # Add confidence interval
cor.coef = TRUE, # Add correlation coefficient. see ?stat_cor
cor.coeff.args = list(method = "pearson", label.sep = "\n")
)
可以看到相关性,挺好的。详见:两次单细胞差异分析后的结果进行相关性散点图绘制
相关性确实是可以说明我们的两次差异分析是一致的,但是很多时候,我们并不是想重复前人的数据分析结果,而是确实先看看两次差异分析的结果的不一致的地方。
更高级的是模式分类
参考2015的文章:《ACTN4 and the pathways associated with cell motility and adhesion contribute to the process of lung cancer metastasis to the brain》
一个肺癌患者:A 47-year-old female patient ,取3个样品:
- The adjacent benign lung tissue (N16),
- the original lung cancer (T16),
- the metastatic brain tumor (T30)
3个样品就是3个分组, 所以只能是走无重复的转录组差异分析流程,这里作者选择了 DEGseq ,参数很普通,就是:a fold change > 2, P < 0.5, and false discovery rate (FDR) < 0.05
- more than900 differentially expressed genes between N16 and T16
- more than 800 differentially expressed genes between N16 and T30
但是作者并没有对这两次的差异分析结果列表做韦恩图,反而是做了一个“骚操作”:
classify the differentially expressed genes in eight clusters based on the reads per kb per million reads (RPKM) change tendency of genes in these three types of tissues (N16, T16, and T30),
最后作者关注的是:Cluster 1: expression in N16 > expression in T16 = expression in T30
这个时候的算法来源比较老了,是:Cluster analysis of gene expression dynamics. Proc Natl Acad Sci U S A. 2002;
算是一个启发吧。
写在文末
我在《生信技能树》,《生信菜鸟团》,《单细胞天地》的大量推文教程里面共享的代码都是复制粘贴即可使用的, 有任何疑问欢迎留言讨论,也可以发邮件给我,详细描述你遇到的困难的前因后果给我,我的邮箱地址是 jmzeng1314@163.com
如果你确实觉得我的教程对你的科研课题有帮助,让你茅塞顿开,或者说你的课题大量使用我的技能,烦请日后在发表自己的成果的时候,加上一个简短的致谢,如下所示:
We thank Dr.Jianming Zeng(University of Macau), and all the members of his bioinformatics team, biotrainee, for generously sharing their experience and codes.
十年后我环游世界各地的高校以及科研院所(当然包括中国大陆)的时候,如果有这样的情谊,我会优先见你。
相关文章
- awstats分析nginx日志「建议收藏」
- 动态库与静态库优缺点比较分析_c静态库和动态库的区别
- 2022年比较常用的8款WiFi分析工具有哪些?
- STM32系统时钟树分析
- SpringBoot自动装配原理分析,手写starter组件
- ChatGPT图像识别能力解锁和深度分析
- 比较比较Oracle数据库的差值分析(oracle差值)
- 比较比较MySQL与MariaDB:简洁分析(mysql和mariadb)
- 函数Linux下atoi函数分析(linuxatoi)
- Oracle比较:分析结果与思考(oracle比较结果)
- 数据库的比较比较分析:MS SQL 与 MySQL 数据库之间的异同(mssql跟mysql)
- Linux的主要版本:分析、比较和选择(linux有那些版本)
- Linux文件比较分析技术(文件比较linux)
- Oracle工具的比较及优劣势分析(oracle 工具 比较)
- MOs和Oracle 两个数据库管理巨头的比较与分析(mosoracle)
- MSSQL与SQLSE:比较与优势分析(mssql跟sqlse)
- Oracle 11g安装过程深度分析(01403oracle)
- Riak与Redis强大的分布式数据存储对比分析(riak redis比较)
- Oracle中表比较 对比准备与结果分析(oracle一张表比较)
- Oracle T7的比较分析(oracle t7对比)
- 如何将一个String和多个String值进行比较思路分析
- php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
- ASP.NETMVC中的视图生成实例分析