【差异表达分析】差异表达分析标准不标准化这是一个问题(含其其它报错问题)

前言

在一开始学习基因差异表达分析时,老师就强调用raw count做差异分析,相关文献和资料我也保存了不少,我之前弄清楚log2/cpm与count fpkm等不是在一个水平上讨论的问题,但是具体用的时候还是要栽个跟头才能印象深刻。

我在复现这篇推文时老文新看,今天来看看两个数据集的整合分析
一般情况下我自以为已经掌握一般差异分析流程,就看看把作者代码跑一边就行了,在这篇推文中作者没有给出差异分析部分代码和数据,但是后面介绍并使用了一种我很感兴趣的RRA算法,所以自己动手分别用DESeq2和limma做了差异分析,结果一动手问题就出来了,两个包的差异分析结果都表明没有显著差异表达的基因!我一开始甚至认为是是数据集的问题,但昨天恰好在讨论群里也有一位uu有相同的问题,我跟他交换了代码才发现了log2这个端倪。

uu的流程

uu用的是是GSE26728芯片数据集,我用我的流程跑一一遍他的数据,起初发现跟他结果一致,没有什么差异表达的基因,但是我的结果数值都比他大一点。查看他自己的代码,发现他在exp表达矩阵range在20以内的情况下仍然进行了log2,所以导致数据比我小(其实不是,是因为直接log2和使用limma::voom算法的不同导致的微小差异,后面会提)。

但是我同时注意到,他在使用limma包进行差异分析时直接使用了exp表达矩阵进行(这里面他的数据框格式下的表达矩阵有一个小坑)

fit=lmFit(exp1,design)
# Error in lmFit(exp1, design) : 
#   Expression object should be numeric, instead it is a data.frame with 11 non-numeric columns
# 我那里这个是DGEList voom后 EList对象
fit=eBayes(fit)
deg=topTable(fit,coef=2,number = Inf)

(小坑,他在处理数据框时里面有许多描述信息,属于字符元素,而差异分析需要numeric数值型元素,如果你不把所有字符型元素去除就会发现为了统一所有的元素类型都变成了字符型
在这里插入图片描述
但是当我将他的log2处代码注释掉后再次进行发现差异分析结果变得“正常了”,而不是预期中与我一致
在这里插入图片描述
所以我开始怀疑我的流程中存在我不知的log2或者说标准化操作

我的流程

我查看我的流程发现我在这部分先将exp表达矩阵转换成了一个DEGList对象后使用voom转换成了一个EList对象
在这里插入图片描述

一开始我以为voom函数是线性化矩阵以便后面拟合,而当我再次查看voom函数的功能时发现voom函数同样对表达矩阵进行了log2标准化处理
在这里插入图片描述

真相大白

原来我和他都犯了同一个错误,那就是重复标准化,导致差异也被缩小,换句话讲就是,我和他都使用了标准化后的数据(cpm/log2后数据常用来作图),而非rawcount进行了一般情况下的差异表达分析流程!
所以我认为,针对这个错误,有两种解决办法,一是将我们一般性流程中的标准化部分去除,如uu那样直接使用表达矩阵,而不通过limma::voom
但这种方法存在局限性:只能适用于limma包,因为limma包voom log2步骤是分开的,有操作空间,而DESeq2 result一体化

在这里插入图片描述
limma这种分布进行的特点在复现这篇推文,差异分析不是这样做的……
时也可以发现,论文作者的失误正是使用limma时,想当然地认为不对表达矩阵取log2就得到FC,实际上

limma包需要接收log2后的表达矩阵(voom/log2)
算法核心是logA-logB= log(A-B) 作者实际操作是rawcount A-B
不能想当然认为不对表达矩阵取log2就得到FC 如果要直接从rawcount入手也要是FC = B/A
如果作者就是想直接拿rawcount走到差异分析这一步,可以使用DESeq2,result后自动得到的虽然也是log2FC,手动2^即可

在实际学习的过程中,
生信菜鸟团::转录组专题的老师使用DESeq2和limma包时都使用的时rawcount,因为这个专辑涉及到上游分析的学习,limma于是就需要voom
而表达量芯片的老师偏向使用limma包处理log2后的exp矩阵,可能因为芯片的数据大多数GEO上存的都是log2后的,如果是rawcount也还是需要手动log2/voom

其它需要注意的标准化

组间差异

在进行基因差异分析前需要考虑组间差异,如通过limma::normalizeBetweenArrays去除

进行基因差异分析前通常需要考虑组间差异,因为在组间差异显著的情况下,比较基因表达水平的差异才具有生物学意义。

在使用limma包进行基因差异分析时,可以使用其中的normalizeBetweenArrays函数对不同组之间的差异进行标准化处理。该函数可以用于批次效应的去除和样本间的标准化,使得样本之间的比较更加准确和可靠。但需要注意的是,标准化只是一个预处理步骤,对于基因差异分析的结果可能会有一定的影响,因此还需要根据实验的设计和数据的质量进行合理的统计分析。

TODO

待补充

未进行组间差异处理导致的·DESeq2报错

dds2 <- DESeq(dds)
estimating size factors
estimating dispersions
gene-wise dispersion estimates
mean-dispersion relationship
Error in estimateDispersionsFit(object, fitType = fitType, quiet = quiet) :
all gene-wise dispersion estimates are within 2 orders of magnitude
from the minimum value, and so the standard curve fitting techniques will not work.
One can instead use the gene-wise estimates as final estimates:
dds <- estimateDispersionsGeneEst(dds)
dispersions(dds) <- mcols(dds)$dispGeneEst
…then continue with testing using nbinomWaldTest or nbinomLRT

chatgpt:
这个错误提示表明在使用DESeq对dds对象进行差异分析时,估计基因的分散度时出现了问题。具体来说,这个错误通常是由于基因的分散度估计值非常相近而无法进行标准拟合所导致的。

解决这个问题的方法是使用estimateDispersionsGeneEst函数,该函数可以使用基因特定的分散度估计值来代替标准拟合。具体而言,需要按照错误提示中所示的步骤进行操作:

dds <- estimateDispersionsGeneEst(dds)
dispersions(dds) <- mcols(dds)$dispGeneEst

这将使用基因特定的分散度估计值进行差异分析,可以使用nbinomWaldTest或nbinomLRT函数进行差异分析测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22595.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PointNet++阅读笔记

&#xff08;PointNet是PointNet结构的改良&#xff0c;它增强了对点云模型细节的捕捉能力&#xff09; 摘要&#xff1a;PointNet并没有捕捉到点云的局部结构&#xff0c;而本文介绍了一种分层神经网络&#xff0c;用于捕捉点云的局部特征。 Introduction 背景&#xff1a;…

云平台网络——应用部署(一)

(可有可无的)引言 昨天完成了对学校集群的相关鉴权以后&#xff0c;大致理解了如何使用SSH登入教学集群&#xff0c;今天则是在此基础上进一步完成相关应用的部署&#xff0c;包括但不限于conda以及torch等和机器学习建模相关的软件安装&#xff0c;由于是第一次成功在云计算平…

用小学数学带你感受人工智能的魅力

AI因你而升温&#xff0c;记得加个星标哦&#xff01; 大家好&#xff0c;我是泰哥。在ChatGPT火爆出圈后&#xff0c;越来越多的人对人工智能、深度学习、神经网络等名词更加好奇&#xff0c;身边的朋友最近也频繁的问我&#xff0c;AI究竟为什么如此强大&#xff1f; 偷个懒&…

精选| 2023年1月R新包推荐(第72期)

译&#xff1a;黄小伟&#xff0c;目前就职于杭州有赞 知乎专栏&#xff1a;中国R语言社区 &#xff5c;30,000关注、300万阅读 2023年1月&#xff0c;165个R包收录于CRAN&#xff0c;环比增长42.4%&#xff0c;本月Top 40 R包分为14个类别&#xff0c;详细介绍如下&#xff1a…

我用Echarts图表分析巴西队历年战绩,预测卡塔尔世界杯能否夺冠

&#x1f431; 个人主页&#xff1a;不叫猫先生 &#x1f64b;‍♂️ 作者简介&#xff1a;前端领域新星创作者、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步&#xff0c;一起加油呀&#xff01; &#x1f4ab;系列专栏&#xff1a;vue3从入门…

陶哲轩甩出调教GPT-4聊天记录,点击领取大佬的研究助理!

Datawhale干货 方向&#xff1a;GPT-4高级调教&#xff0c;来源&#xff1a;量子位 鹅妹子嘤&#xff0c;天才数学家陶哲轩搞数学研究&#xff0c;已经离不开普通人手里的“数学菜鸡”GPT了&#xff01; 就在他最新解决的一个数学难题下面&#xff0c;陶哲轩明确指出自己“使用…

ESP8266还可以这样玩

作者&#xff1a;晓宇&#xff0c;排版&#xff1a;晓宇 微信公众号&#xff1a;芯片之家&#xff08;ID&#xff1a;chiphome-dy&#xff09; 01 巨型ESP8266 ESP8266几乎无人不知&#xff0c;无人不晓了吧&#xff0c;相当一部分朋友接触物联网都是从ESP8266开始的&#xff…

笑死!推特限流,微博赢麻了;使用ChatGPT撰写简历;SD电脑配置推荐;斯坦福67门AI课程学习路径 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 因 Twitter 限流&#xff0c;大量海外画师涌入微博哈哈哈哈 7月3日&#xff0c;马斯克突然发推宣布用户浏览数量限制&#xff0c;新账…

想要成为 NLP 领域的大牛?从 ChatGPT 的 5 大自然语言模型开始了解吧(LM、Transformer、GPT、RLHF、LLM)——小白也能看得懂

目录 前言ChatGPT基础科普——知其一点所以然1. LM2. Transformer3. GPT4. RLHF5. LLM 参考资料其它资料下载 前言 如果想在自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;领域内脱颖而出&#xff0c;那么你一定不能错过 ChatGPT 的 5 大自然…

浏览器工作原理和实践

1.介绍 见正文3 2.应用背景 参透了浏览器的工作原理&#xff0c;可解决80%的前端难题. 帮助高效快速安全开发web前端项目. 3.学习 课程目录 开篇词 (1讲) 开篇词 | 参透了浏览器的工作原理&#xff0c;你就能解决80%的前端难题 宏观视角下的浏览器 (6讲) 01 | Chrome架构…

SpringBoot自动配置的模版引擎

文章目录 目录 一、Thymeleaf 1.什么是Thymeleaf? 2.什么是模版引擎? 3.JAVA中的SPI(Service Provider interface)机制? 4.META-INF目录是干嘛用的? 总结 前言 一、Thymeleaf 1.什么是Thymeleaf? hymeleaf是试用于Web和独立环境的现代服务器端Java模版引擎 目的:…

chatgpt赋能Python-python_lirc

Python-LIRC&#xff1a;让Python与遥控器无缝连接 介绍 Python-LIRC是一个Python语言的模块&#xff0c;它提供了一种接口&#xff0c;用于与Linux Infrared Remote Control&#xff08;LIRC&#xff09;系统进行通信。有了Python-LIRC&#xff0c;你可以轻松地将红外线遥控…

重磅!牛客笔试客户端可防ChatGPT作弊

上线俩月&#xff0c;月活过亿。 爆火的ChatGPT能代写文&#xff0c;撕代码&#xff0c;善玩梗&#xff0c;秒答题&#xff0c;几乎“无所不能”&#xff0c;争议也随之而来。 调查显示&#xff0c;截至2023年1月&#xff0c;美国89%的大学生利用ChatGPT应付作业&#xff0c;53…

学生用ChatGPT拿下全班最高分,教授惊呆

【导读】ChatGPT爆火两个月&#xff0c;整个教育系统都被颠覆了。学生用得不亦乐乎&#xff0c;而老师们迫不得已&#xff0c;纷纷打响了ChatGPT反击战。 ChatGPT已经让大学老师们受到惊吓了。 摸出门道的学生们&#xff0c;开始使用ChatGPT生成论文&#xff0c;得到了A的分数…

自然语言处理(NLP)之跳字(元)模型<skip-gram>与连续词袋模型<continuous bag of words>

自然语言处理(Natural Language Processing, NLP)是AI里的一个非常重要的领域&#xff0c;比如现在很火爆的ChatGPT&#xff0c;首先就需要很好的理解输入内容的意思才能够做出合理的回复。 自然语言处理应用非常广泛&#xff0c;比如机器翻译、问题回答、文本语义对比、语音识…

DeepMind:用 GNN 学习通用推理算法

文 | 智商掉了一地 小孩子才做选择&#xff0c;我的模型全&#xff01;都&#xff01;要&#xff01; 近年来&#xff0c;基于深度神经网络的机器学习系统取得了巨大进步&#xff0c;尤其是在以感知为主的任务上。这一领域表现突出的模型通常要在分布中进行泛化&#xff0c;意味…

GPT-4发布:人工智能新高度,以图生文技术震撼,短时间内挤爆OpenAI模型付费系统

“GPT-4&#xff0c;起飞&#xff01;”今日凌晨1点&#xff0c;OpenAI正式推出史上最强大的GPT-4文本生成AI系统 GPT-4&#xff1a;人工智能的新里程碑 你可能已经听说过GPT-3&#xff0c;它是一种能够生成自然语言文本的强大模型&#xff0c;可以用来回答问题、写文章、编程…

从BERT到ChatGPT,9大研究机构全面综述:「预训练基础模型」

来自&#xff1a;新智元 编辑&#xff1a;LRS 【导读】2023年了&#xff0c;还有人从头开始训模型吗&#xff1f;追踪一下从Bert以来的那些预训练模型。 ChatGPT在few-shot和zero-shot场景下展现出的惊人性能&#xff0c;让研究人员们更坚定「预训练」是一条正确的路线。 预训练…

【AI项目实战】某语言模型-stable diffusion-vits-cqhttp 实现能对话能语音能绘画的Q群机器人

好久没写文章了&#xff0c;终于想起来我有个博客账号系列。。 项目已开源在github上。 文章已滤敏&#xff0c;一切涉及语言模型名字的内容都以某语言模型代替 提示&#xff1a;AI绘画部分建议6G显存以上。 cqhttp 用于接收群友消息&#xff0c;并回复消息。 某语言模型 基于…

微信PC端各个数据库文件结构与功能简述 - 根目录

异想之旅&#xff1a;本人原创博客完全手敲&#xff0c;绝对非搬运&#xff0c;全网不可能有重复&#xff1b;本人无团队&#xff0c;仅为技术爱好者进行分享&#xff0c;所有内容不牵扯广告。本人所有文章仅在CSDN、掘金和个人博客&#xff08;一定是异想之旅域名&#xff09;…