Limma | 三个组的差异分析怎么分析做呢!?~

1写在前面

高考结束了,不知道各位考生考的怎么样,这种时候总是几家欢喜几家忧,但这也是实现阶级流动的最佳机会。🤔

回想自己高考过去10几年了,不能说学了医后悔吧,只能说后悔至极,苦不堪言啊,收入还少的可怜。🫠

真的劝各位学子,尽可能避免这类专业,如果有机会的话去看看外面的世界吧,还是和我们以为的差太多了。😘

最近在做多组的差异分析,分享一下我的code吧,因为是基于limma包,所以还是比较简单的,请放心食用。😋

2用到的包

rm(list = ls())
library(tidyverse)
library(limma)
library(GEOquery)

3示例数据

这里我们用之前从GEO数据库上down的一个dataset吧,在3个样本中对T细胞和B细胞分别进行了转录组分析。😘

GSE194314 <- getGEO('GSE194314', destdir=".",getGPL = F)

exprSet <- exprs(GSE194314[[1]])
### 如何使用 R 的 `limma` 包对血清蛋白质学数据进行差异表达分析 #### 准备工作 为了确保能够顺利执行差异表达分析,需要先安装并加载必要的R包: ```r if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("limma") library(limma) ``` #### 数据预处理 假设已经拥有了经过标准化处理后的血清蛋白定量矩阵以及样本信息表。这里提供了一个简单的模拟例子用于说明流程。 创建一个示例的数据框表示不同条件下测量得到的蛋白质丰度值: ```r set.seed(1234) # 创建假定条件A和B下各三个重复样品共六个样本的蛋白质表达量数据集 exprs <- matrix(rnorm(60, mean=8, sd=2), nrow=10, dimnames=list(paste0('Protein', 1:10), paste(rep(c('Cond_A','Cond_B'), each=3), 'Rep_', rep(1:3)))) colData <- data.frame(condition=factor(rep(c('Cond_A','Cond_B'),each=3))) rownames(colData) <- colnames(exprs) head(exprs) print(colData) ``` 上述代码片段生成了一含有两个实验条件(`Cond_A`, `Cond_B`),每种情况下有次生物学重复的人工合成蛋白质表达谱型数据[^2]。 #### 构建设计矩阵与对比设置 接下来定义线性模型的设计矩阵,并指定感兴趣的比较关系: ```r design <- model.matrix(~ condition, data=colData) fit <- lmFit(exprs, design) contrast_matrix <- makeContrasts( Cond_B_vs_Cond_A = Cond_B - Cond_A, levels = design ) fit2 <- contrasts.fit(fit, contrast_matrix) ebayes_fit <- eBayes(fit2) topTable(ebayes_fit, adjust="fdr", number=nrow(exprs)) # 调整多重检验校正方法为FDR控制下的q-value ``` 这段脚本实现了通过拟合线性回归模型来评估两间是否存在统计意义上的区别;特别地,在此过程中应用了经验贝叶斯调整以提高小规模样本情况下的检测效能。 #### 结果解释 最终输出的结果表格包含了多个列项,其中最重要的是log fold change (logFC),t-statistic (t),P Value 和 Adjusted P value (adj.P.Val). 对于每一个蛋白质而言,如果其对应的调整后p值小于预先设定阈值(比如0.05),则认为该蛋白质在这两种状态之间存在显著性的变化趋势。 此外还可以绘制火山图帮助直观理解哪些蛋白质发生了明显上调或下调: ```r volcanoplot(ebayes_fit, highlight=length(which(decideTests(ebayes_fit)!=0)), names=rownames(exprs)) ``` 这一步骤有助于快速筛选出那些既具有较大倍数改变又具备高度置信水平的目标分子作为后续研究的重点对象。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值