Ruizheng 的学习笔记
感谢 生信技能树 小洁老师
继续DAY9 的tips
1. 用limma包进行差异分析,要确保 group_list 和 exp 输入没错。
library(limma)
design=model.matrix(~group_list)
fit=lmFit(exp,design)
fit=eBayes(fit)
deg=topTable(fit,coef=2,number = Inf)
2. 非特异性探针,应该在注释文件中去除,不需要管
3. 多个探针对应一个基因:按照基因去重复,取均值,最大值,中位数都可用,但不是绝对正确。
用 deg[!duplicated(deg$symbol),] 去重,注意向量按逻辑值取子集,逻辑向量需要和向量元素个数一致。
4. 用探针做差异分析后,用注释文件进行注释
5. 当两个数据框列名不一致时,inner_join(, by = c("symbol"="SYMBOL") 或者修改列名
6. R script 里面 if (F) {} 和 # ---- 可以折叠代码
7. setReadable() 可以让 "enrichResult" 对象 里面富集到的基因变得可读。
8. 画barplot dotplot 时,得到的 term 名称过长怎么办
9. barplot dotplot 我想用自己的映射怎么办?
dotplot展示富集分析结果
dotplot支持使用formula指定x轴变量
10. pheatmap画出热图 as.ggplot() 以后,legend 和 annotation legend 不能通过 patchwork "collect" 怎么办?
可以尝试将热图的 legend 与其他 ggplot2 生成的图片采用同一个图例; 自己手动改吧…
复杂数据及分析
1. 配对数据
eg. GSE5109 GSE103455
差异分析的时候加一个pairinfo
pairinfo = factor(c(1,2,1,3,2,3))
design = model.matrix(~group_list + pairinfo)
2. 多分组数据
eg. GSE474 GSE106191
- 选出一个分组作为对照,其他分组分别与对照进行差异分析
-
两两比较
三个以上分组的考虑 WGCNA
3. 多个series联合分析
考虑批次效应
- 选择来自同一芯片平台的series
- 需要处理批次效应的 Batch effect
函数
limma::removeBatchEffect()
sva::ComBat()