背景信息
DNAme array指的是DNA甲基化芯片
甲基化芯片目前主要流行使用的是450K和850K,都是采用了两种探针Infinium Ⅰ 和Infinium Ⅱ对位点进行测定,Infinium I采用了两种bead(甲基化M和非甲基化U),而II只有一种bead(即甲基化和非甲基化在一起),这也导致了它们在后续荧光探测的不同,450K采用了两种荧光探测信号(红光和绿光)。
850K/EPIC芯片中包含的一系列位点信息:
(1)包含90%以上的HumanMethylation450 BeadChip位点
(2)CpG岛以外的CpG位点
(3)人类干细胞中的非CpG甲基化位点(CHH位点)
(4)肿瘤(多种类型的癌症)VS正常样本中的不同甲基化位点,可以检测多种样本类型
(5)FANTOM5增强子
(6)ENCODE开放染色质和增强子
(7)脱氧核糖核酸酶超敏位点
(8)miRNA启动子区域
BioConductor教程
A cross-package Bioconductor workflow for analysing methylation array data:
https://master.bioconductor.org/packages/release/workflows/vignettes/methylationArrayAnalysis/inst/doc/methylationArrayAnalysis.html
GitHub教程
Methylation_analysis_scripts:https://github.com/IARCbioinfo/Methylation_analysis_scripts
博客—简书教程
甲基化芯片的一般分析流程
850K甲基化芯片数据的分析
甲基化样本和CpG位点QC的总流程(450k和850k)
minfi包:从DNA methylation的IDAT文件到CpG site的Beta values(英文教程搬运):https://www.jianshu.com/p/1b78db680e92
甲基化探针注释
3种方法注释你的甲基化探针
芯片主要分为EPIC和450k两种,EIPC也就是850k,两种探针的都是以cg开头的数字编号,所谓注释也就是提取这些探针的所对应的信息,例如,探针序列的CpG位置信息,对应的基因信息,染色体上的位置信息,等等。
Tools
R包: ChAMP
ChAMP包分析DNAme array 示例代码:
#---------------------------------------------------------------#
# 目的:ChAMP包分析illuminaDNA甲基化芯片数据
# author: lianzhiwei
# Time: 2020.12.10
# 参考教程:https://www.jianshu.com/p/6411e8acfab3
# https://cloud.tencent.com/developer/article/1055830
# 小结:如果用ChAMP包对450K或850K甲基化数据进行分析时,一是最好有个配置高一点的电脑;二是初始数据导入时,注意csv文件的格式,且要和IDAT文件放在一个文件下;其余的流程很少会遇到bug, 但最关键的是理解每一步的意义,能够根据分析的结果挖掘出想要的东西。
#---------------------------------------------------------------#
# 下载R包:
library(BiocManager)
BiocManager::install("ChAMP",ask = F,update = F)
# library(BiocManager)
# BiocManager::install("minfi",ask = F,update = F)
# BiocManager::install("ChAMP",ask = F,update = F)
# BiocManager::install("methylationArrayAnalysis",ask = F,update = F)
# BiocManager::install("wateRmelon",ask = F,update = F)
# 导入ChAMP包并测试:
library(ChAMP)
#450K的数据导入:
testDir=system.file("extdata",package="ChAMPdata")
myLoad <- champ.load(testDir,arraytype="450K")
data(EPICSimData)
# 数据读入
setwd("D:/lianzhiwei/lzw/生化组工作/甲基化/DNAmeth芯片/01.ZYL_850K_KG1a/")
myLoad <- champ.load("D:/lianzhiwei/lzw/生化组工作/甲基化/DNAmeth芯片/01.ZYL_850K_KG1a/data/idat", arraytype = "EPIC")
# 在读入数据之后,最好保存,后续重复读入浪费大量时间
save(myLoad,file="myLoad.rda")
# 质控和标准化
# 质控前可以先看看CpG的分布
CpG.GUI(arraytype="EPIC")
# 质控:
# 方法一:champ.QC()
# 方法二:
QC.GUI(arraytype="EPIC")
# 标准化:
myNorm <- champ.norm(arraytype="EPIC")
QC.GUI(myNorm,arraytype="EPIC")
save(myNorm,file="myNorm.rda")
# SVD plot 和批次效应:SVD(singular value decomposition) 这里用于评估数据集中变量的主要成分
champ.SVD()
# 差异甲基化分析(DMP & DMR & DMB)
myDMP <- champ.DMP(arraytype="EPIC")
save(myDMP,file="myDMP.rda")
DMP.GUI()
myDMR <- champ.DMR(arraytype="EPIC")
# myDMR <- champ.DMR(arraytype = "EPIC",method="DMRcate",cores=1)
save(myDMR,file="myDMR.rda")
DMR.GUI(arraytype="EPIC")
#myBlock <- champ.Block(arraytype = "EPIC")
#Block.GUI(arraytype="EPIC",compare.group=c("PrEC_cells","LNCaP_cells"))
# 基因富集和网络分析(GSEA & EpiMod)
myGSEA <- champ.GSEA(arraytype = "EPIC")
save(myGSEA,file="myGSEA.rda")
myEpiMod <- champ.EpiMod(arraytype="EPIC")
save(myEpiMod,file="myEpiMod.rda")
# 拷贝数变异分析(CNA)
myCNA <- champ.CNA(control = F,arraytype = "EPIC")
save(myCNA,file=myCNA)
一个类似ChAMP包的甲基化芯片分析工具:Methylkey,其工作流程为:
- Preprocessing illumina array with minfi
- Plot QC report
- Differential methylation analysis
- Plot Analysis report
- Create Annotations