R包--ChAMP--甲基化芯片处理(450K、850K)

参考:

  1. Yuan Tian&Tiffany J Morris& Amy P Webster&Zhen Yang&Stephan Beck&Andrew Feber& Andrew E Teschendorff. The Chip Analysis Methylation Pipeline. 2021-10-26
  2. 生信技能树。 850K甲基化芯片数据分析

 一、450K、850K甲基化芯片覆盖位点

Infinium HumanMethylation450 BeadChip (450K甲基化芯片)覆盖位点

  1. (>450,000 methylation sites)96%的CpG岛;
  2. CpG岛以外的CpG位点;
  3. 人类干细胞非CpG甲基化位点;
  4. 正常组织与肿瘤(多种癌症)组织差异甲基化位点;
  5. FANTOM 4 启动子;
  6. DNase hypersensitive sites;
  7. Human Methylation27 BeadChip中90%的位点

Infinium HumanMethylation850 BeadChip850K芯片包含以下位点:

  1. CpG岛以外的CpG位点;
  2. 人类干细胞中鉴定到的非CpG甲基化位点 (CHH位点);
  3. 在正常样本VS肿瘤样本(多种类型肿瘤)以及不 同类型组织中鉴定到的差异甲基化位点;
  4. FANTOM5项目鉴定到的增强子区域;
  5. ENCODE项目开放染色质和增强子区域;
  6. DNase超敏位点;
  7. miRNA启动子区域;
  8. 原450K芯片>90%的位点 

二、ChAMP介绍

       ChAMP是一个功能异常强大的R包,包括了从甲基化芯片原始数据预处理、标准化到差异的识别等全面的功能。(甲基化数据处理的流水线) 2016年作者对该包进行了更新,新增功能包括细胞类型异质性纠正,差异甲基化块分析,基因集富集分析,功能表观模块分析以及基于图形用户界面的作图。2021年作者再次进行了更新,并且作者也表明他们将不断对ChAMP进行更新。 

ChAMP流程图概述了ChAMP可执行的步骤。每个步骤都可以作为单独的功能单独运行,也可以通过一个操作一步完成。在上面的流程图中,包含了ChAMP 的所有功能,使用蓝红黄三种颜色进行分类:

  1. 蓝色函数代表甲基化数据准备的函数,如加载、标准化、质量控制检查等。
  2. 红色函数代表生成分析结果的函数,如差异甲基化位置 (DMP)、差异甲基化区域 (DMR)、差异甲基化块、EpiMod(一种检测源自 FEM 包的差异甲基化基因模块的方法,目前不可用)、通路富集结果等等。
  3. 黄色函数代表数据集和分析结果的GUI界面。
  4. 上图中的灰色实线代表一般流程,而灰色虚线代表可能不一定使用函数,这取决于你的数据和项目。

在上图中,有一些函数和连接(线)标有绿色阴影,表示主分析步骤。ChAMP 结合了许多功能,但也不是所有功能都可以用于成功的分析。绿光代表最有可能用于各种数据集的主要分析步骤。图中间的黑点代表完全准备好的甲基化数据集,这是数据准备和数据分析之间的重要步骤。因此,建议保存完全准备好的数据,后续分析可以直接利用这一数据。

三、安装及使用

1、安装

//先安装BiocManager
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
//利用BiocManager安装ChAMP包
BiocManager::install("ChAMP")

  安装成功会出现如下的代码

如果出现报错,请参照《富集分析--R包--clusterProfiler下载安装与报错分析解决》解决:富集分析--R包--clusterProfiler下载安装与报错分析解决_Tian問的博客-CSDN博客

2、使用

(1)加载数据

ChAMP包的数据读入十分复杂。450K和850K甲基化芯片的原始数据都是.idat格式, 因为数组是用两种不同的颜色来测量的,所以每个样本都有两个文件,通常是扩展名Grn.idat和Red.idat。数据在载入时还需要一个SampleSheet.csv文件(也称做pd file), 这个文件很重要,它包含了样本的信息,可以对照测试数据的csv文件和自己的csv文件,对信息不全的地方进行补充。尤其要注意SampleGroup 这一列信息是否有,这一列信息代表你想比较的表型类型,例如疾病和正常。csv文件准备好后,将csv文件与所有样本的芯片数据(即IDAT文件)放在一个文件下,然后就可以正常读入了。 

//450K芯片
data <- champ.load(directory = "F:/data",arraytype="450K")
//850K芯片
data <- champ.load(directory = "F:/data", arraytype = "EPIC")

 champ.load()包含了champ.import()和champ.filter()函数,在读入数据的过程中自动过滤

  1. 过滤器用于检测 p 值(默认 > 0.01)的探针。这利用了存储在 .idat 文件中的检测 p 值。 champ.import() 会读取这些信息并将它们组成数据框。对于p 值大于 0.01的探针,则将其过滤掉。 sample和probe的阈值可以分别通过参数SampleCutoff 和ProbeCutoff 来控制。
  2. ChAMP 将在每个探针至少5%的样本中过滤掉小于3个beads的探针。可以使用 filterBeads 参数更改此默认值,也可以使用 beadCutoff 参数调整频率。
  3. ChAMP 将默认过滤掉数据集中包含的所有非 CpG 探针。
  4. 默认情况下,ChAMP 将过滤所有与 SNP 相关的探针。 SNP列表来自Zhou在2016年的Nucleic Acids Research论文。注意,如果你知道你的数据来自哪个人群,你可以选择某些人群进行过滤。否则 ChAMP 会使用 Zhou 提供的 General Recommendation Probes 进行过滤。您只需要分配“population”参数即可实现此目的。
  5. 默认设置,ChAMP 会过滤所有的 multi-hit 探针。多重命中探针列表来自2013年的 Nordlund’s Genome Biology Paper。
  6. ChAMP 将过滤掉所有位于染色体 X 和 Y 的探针。这也是默认设置,但用户可以通过 filterXY 参数更改它。

(2)质量控制和数据标准化 

质量控制

 ChAMP提供了函数 CpG.GUI() 供用户检查数据在染色体、CpG 岛、TSS 区域上的 CpG 分布。

CpG.GUI(CpG=rownames(data$beta),arraytype="EPIC")

质量控制是确保数据集适合下游分析的重要过程。 champ.QC() 和 QC.GUI() 会绘制一些图表供用户轻松检查其数据质量。

champ.QC() 通常会生成三个图:

champ.QC(beta = data$beta,
         pheno=data$pd$Sample_Group,
         mdsPlot=TRUE,
         densityPlot=TRUE,
         dendrogram=TRUE,
         PDFplot=TRUE,
         Rplot=TRUE,
         Feature.sel="None",
         resultsDir="./CHAMP_QCimages/")

  1. 树状图 :所有样本的聚类图,可以选择不同的方法来生成。 champ.QC() 函数中有一个参数。 “None”表示样本之间的距离将由所有探针直接计算,“SVD”表示champ.QC()函数将使用SVD方法在betas矩阵上进行解卷积,然后从“isva”包中基于EstDimRMT()方法选择beads。再根据这些组件计算样本之间的距离。Feature.sel=”None”
  2. 密度图:每个样本的betas分布;可以使用此图来查找与其他样品明显不同且质量可能不佳的样品(例如亚硫酸氢盐转化不完全),还用于识别和确认甲基化或未甲基化的对照样品。
  3. MDSPlot(多维标度图):该图允许基于所有样品中前1000个最易变化的探针来可视化样品的相似性。

QC.GUI() 会生成五个图:

QC.GUI(beta=data$beta,
      pheno=data$pd$Sample_Group,
      arraytype="EPIC")

 MDSPlot、I&II 型密度图、样本 Beta 分布图、树状图和前 1000 个变化最大的 CpG 热图。 通过这些图判断样品是否符合进一步分析的条件,并检查聚类结果和排名靠前CpG。

  1. Probe-Type-I&II图:数据集中 Type-I 和 Type-II 探针的 Beta 分布,可以帮助您检查数据集的归一化状态。
  2. 前 1000个变化最大的CpG热图:此热图将选择大多数可变 CpG,并根据这些位点的甲基化值创建热图。
  3. 其他张

标准化:champ.norm有四种方法标准化:BMIQ, SWAN1, PBC2、 FunctionalNormliazation4。默认的方法是BMIQ, 其中对于850芯片数据,KBMIQ的标准化方法更好。

data_norm <- champ.norm(beta=data$beta,
                        rgSet=data$rgSet,
                        mset=data$mset,
                        resultsDir="./CHAMP_Normalization/",
                        method="BMIQ",
                        plotBMIQ=FALSE,
                        arraytype="EPIC",
                        cores=3)

SVD(singular value decomposition) 用于评估数据集中变量的主要成分。这种成分可能确实是你感兴趣的生物因素,也可能是技术来源的一些变量成分(称为批次效应)。如果 SVD 分析表明技术因素占变异的很大一部分(批次效应),则有必要实施其他标准化方法(例如 ComBat),消除这种技术变异。 ComBat 包含在 ChAMP 管道中,以消除与珠片、位置和/或板相关的变化,也可用于消除 SVD 分析中显示的其他批次效应。

champ.SVD(beta = data_norm,
          rgSet=NULL,
          pd=data$pd,
          RGEffect=FALSE,
          PDFplot=TRUE,
          Rplot=TRUE,
          resultsDir="./CHAMP_SVDimages/")
#Combat校正
data_Combat <- champ.runCombat(beta=data_norm,pd=data$pd,batchname=c("Slide"))

 

(3)差异识别

完成质量控制和数据标准化等步骤后,对保存的数据进行流程图提供的函数进行差异甲基化探针champ.DMP、差异甲基化区域champ.DMR、差异甲基化模块champ.Block 及相应的可视化。

(4)其他

ChAMP包还可以进行基因集富集分析champ.GSEA、拷贝数变异champ.CNA、细胞类型异质性champ.refbase等计算


感谢您的查看,致谢!(`・ω・´)ゞ(`・ω・´)ゞ

欢迎关注公众号《生信Tian問的笔记》ε≡٩(๑>₃<)۶ 一心向学

  • 10
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值