【GEO Database - 2】sva-ComBat函数去除批次效应

本文介绍了如何通过 Combat 方法处理并消除高通量数据中的批次效应,以确保不同批次样本间的可比性。在详细阐述批次效应概念和去除原因之后,展示了具体的操作步骤,包括数据读入、合并、批次信息处理以及使用 R 语言中的 sva 包进行 Combat 处理。最后,通过 HeatMap 和 PCA 分析展示了批次校正前后的显著差异,证明了 Combat 方法的有效性。
摘要由CSDN通过智能技术生成

一、什么是批次效应(batch effect)

芯片批次效应是在处理过程中由于技术原因(非生物因素)而添加到样本中的变异。
1、包括使用的扩增试剂的批次,测定完成的时间,甚至大气臭氧水平。如样本制备中的系统变化,扫描仪的差异。
2、还有就是用道不同平台(Illumina/affymetrix)的芯片数据做分析的时候。

二、为什么要去除批次效应?

其他潜在的批次效应在长期研究和meta分析中往往是不可避免的。
标准化虽然可以调整各个样本的测量的全局属性,从而可以更加适当地进行比较。但是,标准化不会消除批次效应。在某些情况下,这些标准化程序甚至可能在高通量测量中加剧技术人为因素。
所以,在处理不同批次的样本时我们需要去除批次效应。

三、处理过程

1、环境搭建

setwd("C:/Users/Administrator/Desktop/lab4-combat-PCA-st/data")
if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")

BiocManager::install("sva")
library("sva")

2、读入已标准化过的数据

标准化处理详见用Bionconductor的affy包处理.cel文件

GSE32676 <- read.table("GSE32676_rma_symbol.txt",header=T,row.names=1,sep="\t")
GSE41368 <- read.table("GSE41368_rma_symbol.txt",header=T,row.names=1,sep="\t")
GSE43795 <- read.table("GSE43795_rma_symbol.txt",header=T,row.names=1,sep="\t")

3、对三套数据取交集进行合并

##intersect函数取交集
mrna_names <- intersect(rownames(GSE32676),rownames(GSE41368))
mrna_intersect <- intersect(mrna_names,rownames(GSE43795))
##cbind进行合并
expr <- cbind(GSE32676[mrna_intersect,],GSE41368[mrna_intersect,],GSE43795[mrna_intersect,])
write.table(expr,"../result/mrna_nocombat.txt")
##32,12,11分别是提取出的每个样本的数量,样本1命名为batch1,样本2命名为batch2,样本3命名为batch3
batch <- paste0("batch",rep(c(1,2,3),c(32,12,11)))
##25,7代表样本1中有25个实验组,7个对照组,以此类推
tissue <- rep(c("case","control","case","control","case","control"),c(25,7,6,6,6,5))
table(batch,tissue)
mod <- model.matrix(~tissue)

4、用Combat()进行处理

ComBat是基于经典贝叶斯的分析方法,运用已知的批次信息对高通量数据进行批次校正。
函数输入数据为经过标准化的数据矩阵,返回结果为经过批次校正后的一个数据矩阵

expr_batch<-ComBat(dat=expr,batch=batch,mod=mod)
write.table(expr_batch,"../result/mrna_expr_batch.txt")
write.table(expr_batch[,1:32],"../result/GSE32676_after_batch.txt")
write.table(expr_batch[,33:44],"../result/GSE41368_after_batch.txt")
write.table(expr_batch[,45:55],"../result/GSE43795_after_batch.txt")

四、批次处理前后对比

1、Heat Map

install.packages("gplots")
library(gplots)
heatmap.2(as.matrix(expr),cexrow=0.8,cexcol=1.0)
heatmap.2(as.matrix(expr_batch),cexrow=0.8,cexcol=1.0)

noCombat
Combat
可以观察到之前是按照批次聚类,现在批次差异消除了

2、PCA

pca.plot(expr)
pca.plot(expr_batch) 

uncombat
combat

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值