首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >自己简单计算的变化倍数能跟引用近10万的算法对比?

自己简单计算的变化倍数能跟引用近10万的算法对比?

作者头像
生信菜鸟团
发布2024-12-20 19:05:40
发布2024-12-20 19:05:40
12000
代码可运行
举报
文章被收录于专栏:生信菜鸟团生信菜鸟团
运行总次数:0
代码可运行

一个小伙伴表示他在处理两分组的转录组测序后的count矩阵的时候,发现手动计算的变化倍数跟金标准算法(DESeq2,edgeR,limma-voom)计算的不一样!

这个超级正常的,我们首先让人工智能大模型解释一下手动计算两分组的count矩阵中基因表达量的变化倍数(fold change)的过程:

变化倍数(fold change)

我自己写过一个代码:

代码语言:javascript
代码运行次数:0
运行
复制
load(file = './symbol_matrix.Rdata')
table(group_list)
group_list
symbol_matrix[1:4,1:4] ## 基因名字的样品,矩阵
dat = log2(edgeR::cpm(symbol_matrix)+1)
dat[1:4,1:4]
# 转换为长格式
library(reshape2)
melted_data <- melt(dat, 
                    varnames = c("Gene", "Sample"), 
                    value.name = "ExpressionLevel")
library(ggplot2)
ggplot(melted_data, aes(x = ExpressionLevel, fill = Sample)) +
  geom_density(alpha = 0.5) +
  labs(title = "Density Plot with Genes of Interest", 
       x = "Expression Level", y = "Density") +
  theme_minimal()

mylogFC=rowMeans(dat[,4:6])-rowMeans(dat[,1:3])

然后我们很容易去拿到金标准算法(DESeq2,edgeR,limma-voom)的差异分析结果进行对比:

代码语言:javascript
代码运行次数:0
运行
复制
load( file =  'deg-raw/DEG_deseq2.Rdata' )
head(DEG_deseq2)
df=data.frame(
  deseq2=DEG_deseq2$log2FoldChange,
  my=mylogFC[match(rownames(DEG_deseq2),names(mylogFC))]
)
head(df)
plot(df)
boxplot(dat['MKNK1',] ~group_list)
DEG_deseq2['MKNK1',]
df['MKNK1',]
plot(abs(DEG_deseq2$log2FoldChange),log(DEG_deseq2$baseMean+1))

就可以看到,两者其实很容易冲突,因为金标准算法(DESeq2,edgeR,limma-voom)考虑到的事情更多,毕竟是引用近10万的算法啊!

引用近10万的算法

如果加上另外的两个包,轻轻松松破十万啊 :

  • 作者:MD Robinson · 2010 · 被引用次数:39135
  • 作者:ME Ritchie · 2015 · 被引用次数:31689

如果大家简简单单的随随便便的就能计算变化倍数, 那要这些引用近10万的算法干啥子?

其实大部分基因并不会冲突

人类的gtf文件里面记录的五六万基因里面,只有不到两万是蛋白质编码基因,去除5000低表达量的,剩下的一万多基因其实使用金标准算法(DESeq2,edgeR,limma-voom)拿到的变化倍数跟自己简单单的随随便便的就能计算变化倍数,并不会冲突很多。

但是有一些时候确实是会出现大面积冲突,因为可能会某个组里面的某一些样品有离群点基因。正常情况下每个转录组测序的样品会两千万个reads,平均到两万个基因应该是每个基因1000左右的reads,但是等于核糖体和线粒体它们每个基因可以有几百万个reads,非常的浪费你的测序。这个时候,如果有一个样品的两千万个reads里面的一千万都是核糖体和线粒体,它就影响了你手动计算变化倍数,但是并不会影响金标准算法(DESeq2,edgeR,limma-voom)。因为金标准算法(DESeq2,edgeR,limma-voom)会考虑到这样的离群点基因。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 其实大部分基因并不会冲突
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档