关键词:表观年龄, 表观时钟,甲基化时钟,甲基化年龄,epigenetic clocks, Horvath clock
该博文主要介绍我们开发的一个基于甲基化芯片数据预测各种表观年龄的R包: dnaMethyAge。
1. 如何安装
最新的版本在Github,直接一条命令即可完成安装。
## 需要预先安装 'devetools'
# install.packages("devtools")
devtools::install_github("yiluyucheng/dnaMethyAge")
2. 支持多种常用clock
目前该R包支持以下常用clocks,该包将持续更新,关注新发表的年龄预测模型。
Name | Published Name | First Author (Published Year) | Trained Phenotype | Num. of CpGs | Tissues Derived |
---|---|---|---|---|---|
HannumG2013 | Gregory Hannum (2013) | Chronological age | 71 | Whole blood | |
HorvathS2013 | Multi-tissue age estimator | Steve Horvath (2013) | Chronological age | 353 | 27 tissues/cells |
YangZ2016 | epiTOC | Zhen Yang (2016) | Mitotic divisions | 385 | Whole blood |
ZhangY2017 | Yan Zhang (2017) | Mortality risk | 10 | Whole blood | |
HorvathS2018 | Skin & Blood Clock | Steve Horvath (2018) | Chronological age | 391 | Skin, blood, buccal cells and 5 other tissues |
LevineM2018 | PhenoAge | Morgan E. Levine (2018) | Mortality risk | 513 | Whole blood |
McEwenL2019 | PedBE | Lisa M. McEwen (2019) | Chronological age | 94 | Buccal epithelial cells |
ZhangQ2019 | Qian Zhang (2019) | Chronological age | 514 | Whole blood | |
LuA2019 | DNAmTL | Ake T. Lu (2019) | Leukocyte telomere length | 140 | Whole blood |
epiTOC2 | epiTOC2 | Andrew E. Teschendorff (2020) | Mitotic divisions | 163 | Whole blood |
ShirebyG2020 | Cortical clock | Gemma L Shireby (2020) | Chronological age | 347 | Brain cortex |
DunedinPACE | DunedinPACE | Daniel W Belsky (2022) | Pace of ageing | 173 | Blood |
PCGrimAge | PCGrimAge | Albert T. Higgins-Chen (2022) | GrimAge estimated from DNAm data | 78464 | Blood |
BernabeuE2023c | cAge | Elena Bernabeu (2023) | Chronological age | 3225 | Blood |
3. 如何使用
3.1 预测表观年龄
最重要的其实就是一条命令,用到‘methyAge’这个方法。
具体就是:
- 打开R(Windows或Linux都行);
- 载入dnaMethyAge包;
- 载入你的甲基化数据,rownames是芯片探针名字, colnames是样本名字。(如果不确定格式,可以参考我们提供的一个示例数据集)
- 定义你想用的表观年龄模型;
- methyAge预测
library('dnaMethyAge')
## prepare betas dataframe
data('subGSE174422') ## load example betas
print(dim(betas)) ## probes in row and samples in column
# 485577 8
availableClock() ## List all supported clocks
# "HannumG2013" "HorvathS2013" "LevineM2018" "ZhangQ2019" "ShirebyG2020" "YangZ2016" "ZhangY2017"
clock_name <- 'HorvathS2013' # Select one of the supported clocks.
## Use Horvath's clock with adjusted-BMIQ normalisation (same as Horvath's paper)
horvath_age <- methyAge(betas, clock=clock_name)
print(horvath_age)
# Sample mAge
# 1 GSM5310260_3999979009_R02C02 74.88139
# 2 GSM5310261_3999979017_R05C01 62.36400
# 3 GSM5310262_3999979018_R02C02 68.04759
# 4 GSM5310263_3999979022_R02C01 61.62691
# 5 GSM5310264_3999979027_R02C01 59.65161
# 6 GSM5310265_3999979028_R01C01 60.95991
# 7 GSM5310266_3999979029_R04C02 52.48954
# 8 GSM5310267_3999979031_R06C02 64.29711
3.1 预测表观年龄加速(age acceleration)
如果你不仅想预测表观年龄,还想计算age acceleration,我们也提供了一个好用的function。计算age acceleration需要提供每个样本的实际年龄,格式可以参考我们提供的info这个变量。
(2) Predict epigenetic age and calculate age acceleration
library('dnaMethyAge')
## prepare betas dataframe
data('subGSE174422') ## load example betas and info
print(dim(betas)) ## probes in row and samples in column
# 485577 8
print(info) ## info should be a dataframe which includes at least two columns: Sample, Age.
# Sample Age Sex
# 1 GSM5310260_3999979009_R02C02 68.8 Female
# 2 GSM5310261_3999979017_R05C01 45.6 Female
# 3 GSM5310262_3999979018_R02C02 67.4 Female
# 4 GSM5310263_3999979022_R02C01 45.6 Female
# 5 GSM5310264_3999979027_R02C01 62.5 Female
# 6 GSM5310265_3999979028_R01C01 45.1 Female
# 7 GSM5310266_3999979029_R04C02 53.2 Female
# 8 GSM5310267_3999979031_R06C02 63.8 Female
clock_name <- 'HorvathS2013' # Select one of the supported clocks, try: availableClock()
## Apply Horvath's clock and calculate age acceleration
## Use Horvath's clock with adjusted-BMIQ normalisation (same as Horvath's paper)
pdf('savename.pdf', width=4.3, height=6)
horvath_age <- methyAge(betas, clock=clock_name, age_info=info, fit_method='Linear', do_plot=TRUE)
dev.off()
print(horvath_age)
# Sample Age Sex mAge Age_Acceleration
# 1 GSM5310260_3999979009_R02C02 68.8 Female 74.88139 7.334461
# 2 GSM5310261_3999979017_R05C01 45.6 Female 62.36400 3.318402
# 3 GSM5310262_3999979018_R02C02 67.4 Female 68.04759 1.013670
# 4 GSM5310263_3999979022_R02C01 45.6 Female 61.62691 2.581311
# 5 GSM5310264_3999979027_R02C01 62.5 Female 59.65161 -5.586763
# 6 GSM5310265_3999979028_R01C01 45.1 Female 60.95991 2.097534
# 7 GSM5310266_3999979029_R04C02 53.2 Female 52.48954 -9.340977
# 8 GSM5310267_3999979031_R06C02 63.8 Female 64.29711 -1.417638
这是我们上一步生成的图片savename.pdf。
上面的分析我们用到了HorvathS2013这个引用最多的模型,使用其它模型只要改变代码里模型的名字就行。
下面的结果是我们用四种模型预测了 GSE147221这个数据集。
4. 引用我们
如果你在做研究时用到了我们的方法,欢迎引用我们:Wang et al., 2023
@article{Wang2023,
title={Insights into ageing rates comparison across tissues from recalibrating cerebellum DNA methylation clock},
author={Wang, Yucheng and Grant, Olivia A and Zhai, Xiaojun and McDonald-Maier, Klaus D and Schalkwyk, Leonard C},
journal={GeroScience},
pages={1--18},
year={2023},
publisher={Springer}
}
5. 联系我们
wangyucheng511爱 特gmail.com