背景信息

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启动子区域
image.png

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 示例代码:

  1. #---------------------------------------------------------------#
  2. # 目的:ChAMP包分析illuminaDNA甲基化芯片数据
  3. # author: lianzhiwei
  4. # Time: 2020.12.10
  5. # 参考教程:https://www.jianshu.com/p/6411e8acfab3
  6. # https://cloud.tencent.com/developer/article/1055830
  7. # 小结:如果用ChAMP包对450K或850K甲基化数据进行分析时,一是最好有个配置高一点的电脑;二是初始数据导入时,注意csv文件的格式,且要和IDAT文件放在一个文件下;其余的流程很少会遇到bug, 但最关键的是理解每一步的意义,能够根据分析的结果挖掘出想要的东西。
  8. #---------------------------------------------------------------#
  9. # 下载R包:
  10. library(BiocManager)
  11. BiocManager::install("ChAMP",ask = F,update = F)
  12. # library(BiocManager)
  13. # BiocManager::install("minfi",ask = F,update = F)
  14. # BiocManager::install("ChAMP",ask = F,update = F)
  15. # BiocManager::install("methylationArrayAnalysis",ask = F,update = F)
  16. # BiocManager::install("wateRmelon",ask = F,update = F)
  17. # 导入ChAMP包并测试:
  18. library(ChAMP)
  19. #450K的数据导入:
  20. testDir=system.file("extdata",package="ChAMPdata")
  21. myLoad <- champ.load(testDir,arraytype="450K")
  22. data(EPICSimData)
  23. # 数据读入
  24. setwd("D:/lianzhiwei/lzw/生化组工作/甲基化/DNAmeth芯片/01.ZYL_850K_KG1a/")
  25. myLoad <- champ.load("D:/lianzhiwei/lzw/生化组工作/甲基化/DNAmeth芯片/01.ZYL_850K_KG1a/data/idat", arraytype = "EPIC")
  26. # 在读入数据之后,最好保存,后续重复读入浪费大量时间
  27. save(myLoad,file="myLoad.rda")
  28. # 质控和标准化
  29. # 质控前可以先看看CpG的分布
  30. CpG.GUI(arraytype="EPIC")
  31. # 质控:
  32. # 方法一:champ.QC()
  33. # 方法二:
  34. QC.GUI(arraytype="EPIC")
  35. # 标准化:
  36. myNorm <- champ.norm(arraytype="EPIC")
  37. QC.GUI(myNorm,arraytype="EPIC")
  38. save(myNorm,file="myNorm.rda")
  39. # SVD plot 和批次效应:SVD(singular value decomposition) 这里用于评估数据集中变量的主要成分
  40. champ.SVD()
  41. # 差异甲基化分析(DMP & DMR & DMB)
  42. myDMP <- champ.DMP(arraytype="EPIC")
  43. save(myDMP,file="myDMP.rda")
  44. DMP.GUI()
  45. myDMR <- champ.DMR(arraytype="EPIC")
  46. # myDMR <- champ.DMR(arraytype = "EPIC",method="DMRcate",cores=1)
  47. save(myDMR,file="myDMR.rda")
  48. DMR.GUI(arraytype="EPIC")
  49. #myBlock <- champ.Block(arraytype = "EPIC")
  50. #Block.GUI(arraytype="EPIC",compare.group=c("PrEC_cells","LNCaP_cells"))
  51. # 基因富集和网络分析(GSEA & EpiMod)
  52. myGSEA <- champ.GSEA(arraytype = "EPIC")
  53. save(myGSEA,file="myGSEA.rda")
  54. myEpiMod <- champ.EpiMod(arraytype="EPIC")
  55. save(myEpiMod,file="myEpiMod.rda")
  56. # 拷贝数变异分析(CNA)
  57. myCNA <- champ.CNA(control = F,arraytype = "EPIC")
  58. save(myCNA,file=myCNA)

一个类似ChAMP包的甲基化芯片分析工具:Methylkey,其工作流程为:

  • Preprocessing illumina array with minfi
  • Plot QC report
  • Differential methylation analysis
  • Plot Analysis report
  • Create Annotations