![cover](https://img-blog.csdnimg.cn/63abb37ca1ea40f1aa00fa799e47b56a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGlhbuWVjw==,size_20,color_FFFFFF,t_70,g_se,x_16)
R包--ChAMP--甲基化芯片处理(450K、850K)
R包--ChAMP--甲基化芯片处理(450K、850K)
参考:
- 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
- 生信技能树。 850K甲基化芯片数据分析
一、450K、850K甲基化芯片覆盖位点
Infinium HumanMethylation450 BeadChip (450K甲基化芯片)覆盖位点
- (>450,000 methylation sites)96%的CpG岛;
- CpG岛以外的CpG位点;
- 人类干细胞非CpG甲基化位点;
- 正常组织与肿瘤(多种癌症)组织差异甲基化位点;
- FANTOM 4 启动子;
- DNase hypersensitive sites;
- Human Methylation27 BeadChip中90%的位点
Infinium HumanMethylation850 BeadChip850K芯片包含以下位点:
- CpG岛以外的CpG位点;
- 人类干细胞中鉴定到的非CpG甲基化位点 (CHH位点);
- 在正常样本VS肿瘤样本(多种类型肿瘤)以及不 同类型组织中鉴定到的差异甲基化位点;
- FANTOM5项目鉴定到的增强子区域;
- ENCODE项目开放染色质和增强子区域;
- DNase超敏位点;
- miRNA启动子区域;
- 原450K芯片>90%的位点
二、ChAMP介绍
ChAMP是一个功能异常强大的R包,包括了从甲基化芯片原始数据预处理、标准化到差异的识别等全面的功能。(甲基化数据处理的流水线) 2016年作者对该包进行了更新,新增功能包括细胞类型异质性纠正,差异甲基化块分析,基因集富集分析,功能表观模块分析以及基于图形用户界面的作图。2021年作者再次进行了更新,并且作者也表明他们将不断对ChAMP进行更新。
ChAMP流程图概述了ChAMP可执行的步骤。每个步骤都可以作为单独的功能单独运行,也可以通过一个操作一步完成。在上面的流程图中,包含了ChAMP 的所有功能,使用蓝红黄三种颜色进行分类:
- 蓝色函数代表甲基化数据准备的函数,如加载、标准化、质量控制检查等。
- 红色函数代表生成分析结果的函数,如差异甲基化位置 (DMP)、差异甲基化区域 (DMR)、差异甲基化块、EpiMod(一种检测源自 FEM 包的差异甲基化基因模块的方法,目前不可用)、通路富集结果等等。
- 黄色函数代表数据集和分析结果的GUI界面。
- 上图中的灰色实线代表一般流程,而灰色虚线代表可能不一定使用函数,这取决于你的数据和项目。
在上图中,有一些函数和连接(线)标有绿色阴影,表示主分析步骤。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()函数,在读入数据的过程中自动过滤
- 过滤器用于检测 p 值(默认 > 0.01)的探针。这利用了存储在 .idat 文件中的检测 p 值。 champ.import() 会读取这些信息并将它们组成数据框。对于p 值大于 0.01的探针,则将其过滤掉。 sample和probe的阈值可以分别通过参数SampleCutoff 和ProbeCutoff 来控制。
- ChAMP 将在每个探针至少5%的样本中过滤掉小于3个beads的探针。可以使用 filterBeads 参数更改此默认值,也可以使用 beadCutoff 参数调整频率。
- ChAMP 将默认过滤掉数据集中包含的所有非 CpG 探针。
- 默认情况下,ChAMP 将过滤所有与 SNP 相关的探针。 SNP列表来自Zhou在2016年的Nucleic Acids Research论文。注意,如果你知道你的数据来自哪个人群,你可以选择某些人群进行过滤。否则 ChAMP 会使用 Zhou 提供的 General Recommendation Probes 进行过滤。您只需要分配“population”参数即可实现此目的。
- 默认设置,ChAMP 会过滤所有的 multi-hit 探针。多重命中探针列表来自2013年的 Nordlund’s Genome Biology Paper。
- 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/")
- 树状图 :所有样本的聚类图,可以选择不同的方法来生成。 champ.QC() 函数中有一个参数。 “None”表示样本之间的距离将由所有探针直接计算,“SVD”表示champ.QC()函数将使用SVD方法在betas矩阵上进行解卷积,然后从“isva”包中基于EstDimRMT()方法选择beads。再根据这些组件计算样本之间的距离。Feature.sel=”None”
- 密度图:每个样本的betas分布;可以使用此图来查找与其他样品明显不同且质量可能不佳的样品(例如亚硫酸氢盐转化不完全),还用于识别和确认甲基化或未甲基化的对照样品。
- MDSPlot(多维标度图):该图允许基于所有样品中前1000个最易变化的探针来可视化样品的相似性。
QC.GUI() 会生成五个图:
QC.GUI(beta=data$beta,
pheno=data$pd$Sample_Group,
arraytype="EPIC")
MDSPlot、I&II 型密度图、样本 Beta 分布图、树状图和前 1000 个变化最大的 CpG 热图。 通过这些图判断样品是否符合进一步分析的条件,并检查聚类结果和排名靠前CpG。
- Probe-Type-I&II图:数据集中 Type-I 和 Type-II 探针的 Beta 分布,可以帮助您检查数据集的归一化状态。
- 前 1000个变化最大的CpG热图:此热图将选择大多数可变 CpG,并根据这些位点的甲基化值创建热图。
- 其他张
标准化: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問的笔记》ε≡٩(๑>₃<)۶ 一心向学
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)