RNA-Seq去批次

目前常用的去批次的软件有combat、combat_seq、removeBatchEffect。

芯片数据与处理过的非count数据可以使用SVA包的combat函数和limma包的removeBatchEffect函数。count数据(测序数据)使用SVA包的combat_seq函数

combat函数是基于贝叶斯框架下的调整数据批次效应的函数,主要适用于已经被过滤和标准化后的数据(芯片数据/非count数据)

ComBat-seq使用负二项回归模型来去除批次效应,通过将原始数据映射到预期分布来提供调整后的数据。

rm(list=ls())
setwd("/工作安排/去批次处理数据/")

## 1. 载入有批次效应的数据
info <- read.csv("info.csv",row.names = 1)
count <- read.csv("count-merge.csv",row.names = 1)

info[,2] <- as.factor(info$type)##type表示的是生物学上的不同处理
info[,3] <- as.factor(info$batch)##batch表示不同的批次信息
row.names(info) <- info$sample
exp=na.omit(count)   #去除缺失值

## 2. 不做校正的PCA分析
#install.packages("FactoMineR")
#install.packages("factoextra")
library(FactoMineR)
library(factoextra)
pre.pca <- PCA(t(exp),graph = FALSE)
fviz_pca_ind(pre.pca,
             geom= "point",
             col.ind = info$batch,
             addEllipses = TRUE,
             legend.title="Group"  )

## 3. Sva包combat消除批次效应
#建立批次效应的模型,info$type表示的是数据中除了有不同的批次,还有生物学上的差异。
#在校正的时候要保留生物学上的差异,不能矫正过枉。
model <- model.matrix(~as.factor(info$type))
##消除批次效应
#if (!require("BiocManager", quietly = TRUE))
 # install.packages("BiocManager")
#BiocManager::install("sva")    ##sva依赖于4.4版本R包

library(sva)
combat_Expr <- ComBat(dat = exp,batch = info$batch,mod = model)
##combat_Expr就是校正后的数据,有负值,后续使用limma分析
write.csv(combat_Expr, file = './count-merge-combat.csv')

## 校正后的PCA分析
library(FactoMineR)
combat.pca <- PCA(t(combat_Expr),graph = FALSE)
fviz_pca_ind(combat.pca,
             geom= "point",
             col.ind = info$batch,
             addEllipses = TRUE,
             legend.title="Group"  )

# 4.Sva包combat_Seq消除批次效应combat_seq。专门针对 RNA-Seq 计数(即count矩阵)数据
expr_count_combat <- ComBat_seq(counts = as.matrix(exp), 
                                batch = info$batch,
                                group = info$type)
write.csv(expr_count_combat, file = './count-merge-combatSeq.csv')

## 校正后的PCA分析
library(FactoMineR)
aft.pca <- PCA(t(expr_count_combat),graph = FALSE)
fviz_pca_ind(aft.pca,
             geom= "point",
             col.ind = info$batch,
             addEllipses = TRUE,
             legend.title="Group"  )

## 5. removeBatchEffect去批次
library(limma)
mod <- model.matrix(~factor(coldata$type))
expr_limma <- removeBatchEffect(exp, batch = info$batch, design=mod)

## 校正后的PCA分析
aft.pca <- PCA(t(expr_limma),graph = FALSE)
fviz_pca_ind(aft.pca,
             geom= "point",
             col.ind = info$batch,
             addEllipses = TRUE,
             legend.title="Group" )

批次效应不能完全消除,只是尽可能的减少了批次带来的干扰!去批次之后若出现负值,后续使用limma进行差异分析。

本次count数据使用combat-Seq去批次效果不明显,可能原因:数据之间本身批次小;batch1样本大,本身差异大。

同时使用其他工具进行去批次,发现效果较好,有人使用combat和removeBatchEffect对count数据进行去批次,可行性有待商榷。

欢迎大家讨论与指正不足。

参考

批次效应去除之combat和removebatcheffect_combat去批次-CSDN博客

转录组数据去批次方法整理(combat,combat-seq,removeBatchEffect)_去除批次效应-CSDN博客

fviz_pca_ind,参数解释 - CSDN文库

Rstudio丨白嫖转录组数据后,如何消除批次效应?(Sva包来解决) - 知乎

### RNA-seq 数据分析流程中的生物信息学工具和工作流 RNA测序(RNA-seq)是一种强大的技术,用于全面检测细胞内的转录组。为了有效解析这些复杂的数据集,一系列精心设计的工作流和专用软件工具被广泛应用。 #### 工具与平台概述 GenePattern 提供了一套集成解决方案来支持RNA-seq分析[^1]。该平台不仅简化了从原始序列读取到最终生物学解释的过程,还允许研究人员通过图形界面轻松访问多种先进的算法和技术方法。 对于具体的基因表达水平测量,在差异表达分析前通常会采用诸如 DESeq2 这样的包来进行数据导入及预处理操作[^4]。这类R语言环境下的统计测试框架能够高效处理来自不同实验条件下的样本间变异,并提供稳健的结果估计。 #### 主要步骤详解 - **质量控制**:确保所使用的测序文件达到一定标准,去除低质量碱基或接头污染部分。 - **比对映射**:将短片段序列重新定位回参考基因组上,生成可用于后续定量计算的位置坐标表。 - **计数矩阵构建**:基于上述比对结果统计各特征区域内的唯一匹配数目形成表格形式输入给下游应用层面上进一步加工利用。 - **标准化校正**:考虑到批次效应等因素影响,需采取适当措施消除潜在偏差以便更准确反映真实情况。 - **差异表达评估**:运用特定模型比较两组或多组之间的相对丰度变化趋势并鉴定显著上调下调事件。 - **功能富集检验**:借助 BioCarta 等在线资源库探索目标列表内成员参与哪些信号传导路径以及分子机制层面的意义所在[^2]. ```r library(DESeq2) dds <- DESeqDataSetFromMatrix(countData = counts, colData = sampleInfo, design= ~ condition) dds <- DESeq(dds) res <- results(dds) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值