在差异分析的数据处理中,只有design这一行代码有区别
pairinfo = factor(c(1,2,1,3,2,3)) design = model.matrix(~group_list + pairinfo)
配对信息:1,2,3分别为三个病人;
分组信息:由group_list指定,post和pre为有序因子。
策略1:选出一个分组作为对照,其他分组分别与对照进行差异分析
策略2:两两对比:AB、AC、BC
关于作图:火山图只能分开画,其他图分开和合并都可以
(1)选择来自同同一芯片平台(GPL)的series
(2)需要处理批次效应(Batch effect)
数据集A + B,各自分为treat和control两组;
本来AB各自的treat和control各有差异,合并后竟然无差异
本来AB各自的treat和control无差异,合并后竟然有差异
例如,合并两个数据集时,第二个数据集的第三个样本有异常:
可以用limma::normalizeBetweenArrays()函数把异常样品的中位数拉到同一水平上,也可以直接把异常样本去掉。比较来说,去掉的结果更好些。
但是,直接用两个中位数不在同一水平上的数据集来做分析的结果是错误的,需要处理批次效应,将两个数据集的中位数拉到同一水平上:
处理批次效应的两个函数:limma::removeBatchEffect(),sva::ComBat()