2025.06.23【甲基化】methylKit:甲基化测序数据分析安装与详细使用教程
文章目录
- 一、工具简介
- 二、安装方法
- 1. Bioconductor推荐安装
- 2. Conda安装(推荐用于依赖复杂的环境)
- 3. 检查安装
- 三、输入文件格式
- 四、详细使用流程
- 1. 读取甲基化位点文件
- 2. 数据质控与过滤
- 3. 甲基化水平统计与可视化
- 3.1 样本间相关性
- 3.2 PCA主成分分析
- 3.3 聚类分析
- 4. 合并样本并统一CpG位点
- 5. 差异甲基化分析
- 6. 区域注释与富集分析
- 五、进阶功能
- 六、常见问题与解决
- 七、参考资料
一、工具简介
methylKit 是R语言环境下用于高通量亚硫酸盐测序(如RRBS、WGBS)甲基化数据分析的专业包。它支持从原始测序数据到差异甲基化分析、注释和可视化的全流程,适用于CpG、CHG、CHH等多种上下文。
主要功能包括:
- 读取多种格式的甲基化位点文件(如Bismark、BSMAP等)
- 甲基化水平统计与可视化
- 差异甲基化位点/区域检测
- 基因组注释与富集分析
- 支持大数据的磁盘索引(tabix)
二、安装方法
1. Bioconductor推荐安装
在R或RStudio中运行:
if (!requireNamespace("BiocManager", quietly = TRUE))install.packages("BiocManager")
BiocManager::install("methylKit")
2. Conda安装(推荐用于依赖复杂的环境)
conda install -c bioconda bioconductor-methylkit
注意:
- 建议R版本≥4.0,Bioconductor版本≥3.12。
- Conda安装会自动解决依赖问题,适合新手和服务器环境。
3. 检查安装
library(methylKit)
packageVersion("methylKit")
三、输入文件格式
methylKit支持多种输入格式,最常见的是Bismark、BSMAP等软件输出的甲基化位点表。
典型的tab分隔文件格式如下:
chrBase | chr | base | strand | coverage | freqC | freqT |
---|---|---|---|---|---|---|
chr21.9764539 | chr21 | 9764539 | R | 12 | 25.00 | 75.00 |
chr21.9764513 | chr21 | 9764513 | R | 12 | 0.00 | 100.00 |
chr21.9820622 | chr21 | 9820622 | F | 13 | 0.00 | 100.00 |
- chrBase: 染色体和碱基位置
- chr: 染色体
- base: 位置
- strand: 链(F: 正链,R: 负链)
- coverage: 覆盖度
- freqC: 该位点C的比例
- freqT: 该位点T的比例
四、详细使用流程
1. 读取甲基化位点文件
假设有4个样本(2个实验组,2个对照组):
library(methylKit)file.list <- list("test1.myCpG.txt","test2.myCpG.txt","control1.myCpG.txt","control2.myCpG.txt"
)myobj <- methRead(file.list,sample.id = list("test1", "test2", "ctrl1", "ctrl2"),assembly = "hg18",treatment = c(1, 1, 0, 0), # 1为实验组,0为对照组context = "CpG",mincov = 10 # 最小覆盖度过滤
)
2. 数据质控与过滤
过滤掉覆盖度过高或过低的位点:
filtered.myobj <- filterByCoverage(myobj, lo.count=10, lo.perc=NULL, hi.count=NULL, hi.perc=99.9)
3. 甲基化水平统计与可视化
3.1 样本间相关性
getCorrelation(filtered.myobj, plot=TRUE)
3.2 PCA主成分分析
PCASamples(filtered.myobj)
3.3 聚类分析
clusterSamples(filtered.myobj, dist="correlation", method="ward", plot=TRUE)
4. 合并样本并统一CpG位点
meth <- unite(filtered.myobj, destrand=FALSE)
5. 差异甲基化分析
myDiff <- calculateDiffMeth(meth)
# 查看显著差异位点
diffMethStats(myDiff, plot=TRUE)
筛选FDR<0.01且甲基化差异大于25%的位点:
myDiff25p <- getMethylDiff(myDiff, difference=25, qvalue=0.01)
6. 区域注释与富集分析
可结合 genomation 包进行注释:
library(genomation)
gene.obj <- readTranscriptFeatures("refseq.hg18.bed")
annotated <- annotateWithGeneParts(myDiff25p, gene.obj)
plotTargetAnnotation(annotated, precedence=TRUE, main="差异甲基化位点注释")
五、进阶功能
- 大数据支持:methylKit支持tabix索引的磁盘数据库对象(methylRawListDB等),适合全基因组大样本分析。
- 多样本分组:支持多组、多条件的差异分析。
- 可视化:内置多种可视化函数,支持相关性、PCA、聚类、注释分布等。
六、常见问题与解决
- 依赖包安装失败:建议优先用conda安装,或手动降级data.table等依赖。
- 内存不足:可用methylDB对象,数据存磁盘。
- 输入格式不符:可用
readr::read_tsv
等R包预处理格式。
七、参考资料
- methylKit官方文档(强烈推荐)
- Bioconductor methylKit主页
- genomation包注释教程
总结
methylKit是甲基化测序数据分析的强大工具,适合科研人员从原始数据到生物学解读的全流程需求。建议结合官方文档和本教程,灵活应用于自己的项目中。