去除批次效应

作者: 中医封大夫 | 来源:发表于2020-05-17 13:04 被阅读0次

我需要把多个数据集的数据合到一起怎么办?直接inner_join()或者cbind()就可以拿来用吗?
当然不行!
进行进一步分析之前,你还得去除一下批次效应!
不同数据集在不同批次测序的结果可能会有很大差异。
去除批次效应的方法主要包括以下三种:

1,Deseq2包自带去除批次效益的函数,只需要在计算差异基因时加上即可。(注意:分组信息和批次效应信息不能完全一样,否则不能做批次效应消除。)

condition <- c(rep("Normal",3),rep("Tumor",3))
batch <- c(1,1,2,2,3,3)
sampleTable <- data.frame(condition=condition,batch=batch)
#样本表达数据框列名需要与sampleTable一致。
row.names(sampleTable) <- colnames(expr) 
dds <- DESeqDataSetFromMatrix(countData = expr, colData = sampleTable, design = ~batch+condition)
dds <- DESeq(dds)

注意:Deseq2计算差异分析只接受count数据。

2,limma包的removeBatchEffect()函数

batch <- c(rep("1",10),rep("2",5))
expr <- removeBatchEffect(expr, batch)

So easy !

3,sva包的Combat()函数

batch <- c(rep("1",10),rep("2",5))
mod = model.matrix(~as.factor(group))  #group为分组信息。此步操作为建模。
exp2 = ComBat(dat=exp, batch=batch, mod=mod, par.prior=TRUE, ref.batch="1")

上述去除批次效应的方法选哪种都可以,但是生信大牛刘小乐教授实验室推荐用Combat()函数去除批次效应比较多一些。

相关文章

网友评论

    本文标题:去除批次效应

    本文链接:https://www.haomeiwen.com/subject/aqzjohtx.html