批次效應(yīng)
批次效應(yīng)是測(cè)量結(jié)果中的一部分,它們因?yàn)閷?shí)驗(yàn)條件的不同而具有不同的表現(xiàn)形式,并且與我們研究的變量沒(méi)有關(guān)系。不同平臺(tái)的數(shù)據(jù),同一平臺(tái)的不同時(shí)期的數(shù)據(jù),同一個(gè)樣品不同試劑的數(shù)據(jù),以及同一個(gè)樣品不同時(shí)間的數(shù)據(jù)等等都會(huì)產(chǎn)生一種 batch effect。校正批次效應(yīng)的目的是減少batch之間的差異,從而更好的獲取不同生物學(xué)狀態(tài)之間的差異。
載入包、GEO數(shù)據(jù)
數(shù)據(jù)為GEO芯片與RNAseq數(shù)據(jù)。
BiocManager::install("sva")
BiocManager::install("bladderbatch")
library(sva)
library(bladderbatch)
load("GeoData.rda")
#原始數(shù)據(jù)
FPKM[1:5,1:5]
GSE102746_UC_1 GSE102746_UC_2 GSE102746_UC_3 GSE102746_UC_4 GSE102746_UC_5
ENSG00000008300 0.795651 12.74320 12.8748 0.296484 1.70187
ENSG00000044574 83.731600 167.95100 29.3973 85.368700 49.98990
ENSG00000067082 78.742500 130.74000 64.4235 68.536000 80.07060
ENSG00000071575 9.407460 8.30127 30.0466 9.541390 7.68865
ENSG00000089159 29.575000 59.32220 17.5021 27.272200 22.99260
#批次信息
sample_infor[1:5,]
sample_name GSE_name Batch_GSE data_type disease
GSE102746_UC_1 GSE102746_UC_1 GSE102746 1 test_data UC
GSE102746_UC_2 GSE102746_UC_2 GSE102746 1 test_data UC
GSE102746_UC_3 GSE102746_UC_3 GSE102746 1 test_data UC
GSE102746_UC_4 GSE102746_UC_4 GSE102746 1 test_data UC
GSE102746_UC_5 GSE102746_UC_5 GSE102746 1 test_data UC
PCA可視化不同GEO數(shù)據(jù)
library("FactoMineR")
library("factoextra")
pca.plot = function(dat,col){
df.pca <- PCA(t(dat), graph = FALSE)
fviz_pca_ind(df.pca,
geom.ind = "point",
col.ind = col ,
addEllipses = TRUE,
legend.title = "Groups"
)
}
pca.plot(FPKM,factor(sample_infor$GSE_name))

image.png
批次校正
#設(shè)置model(可選)
mod = model.matrix(~as.factor(disease), data=sample_infor)
#校正其實(shí)就一步
combat_FPKM <- ComBat(dat = as.matrix(log2(FPKM+1)), batch = sample_infor$Batch_GSE,mod = mod,
par.prior = F)
pca.plot(combat_FPKM,factor(sample_infor$GSE_name))
經(jīng)校正后不同批次處于同一水平上,校正前后具有明顯差異

image.png