This script uses the Bioconductor package MEAT to calculate bAge from muscle DNAm data


Setup

Load packages

library(tidyverse)
library(survival)
library(SummarizedExperiment)
library(MEAT)

Load data

load('../GOTO_Data/Processing/GOTO_methData-unfiltered.Rdata')
methData <- methData_unfiltered[ , methData_unfiltered$tissue == 'muscle']
methData
## class: SummarizedExperiment 
## dim: 865859 160 
## metadata(0):
## assays(1): beta
## rownames(865859): cg14817997 cg26928153 ... cg07587934 cg16855331
## rowData names(4): cpg chr start end
## colnames(160): 203527980082_R01C01 203527980082_R02C01 ...
##   203550300091_R01C01 203550300091_R02C01
## colData names(19): DNA_labnr IOP2_ID ... Basename smoke

Clean data

methData_clean <- clean_beta(SE = methData,
                             version = "MEAT2.0")
## -------------------Step 1-------------------------------
## Reducing your beta-matrix to the 18747 CpGs used to calibrate methylation profiles in MEAT2.0
## Your beta-matrix contains 18747 of the 18747 CpGs needed to calibrate methylation profiles.
## -------------------Step 2-------------------------------
## Checking for missing values in the beta-matrix.
## -------------------Step 3-------------------------------
## Checking for the presence of 0 and 1.
## Your beta-matrix contains 0 0 values and 0 1 values.

Calibration

methData_calib <- BMIQcalibration(SE = methData_clean,
                                  version = "MEAT2.0")
## [1] Inf
## [1] 0.001738881
## [1] 0.00248846
## [1] 0.002669617
## [1] 0.002586373
## ii= 1
## ii= 2
## ii= 3
## ii= 4
## ii= 5
## ii= 6
## ii= 7
## ii= 8
## ii= 9
## ii= 10
## ii= 11
## ii= 12
## ii= 13
## ii= 14
## ii= 15
## ii= 16
## ii= 17
## ii= 18
## ii= 19
## ii= 20
## ii= 21
## ii= 22
## ii= 23
## ii= 24
## ii= 25
## ii= 26
## ii= 27
## ii= 28
## ii= 29
## ii= 30
## ii= 31
## ii= 32
## ii= 33
## ii= 34
## ii= 35
## ii= 36
## ii= 37
## ii= 38
## ii= 39
## ii= 40
## ii= 41
## ii= 42
## ii= 43
## ii= 44
## ii= 45
## ii= 46
## ii= 47
## ii= 48
## ii= 49
## ii= 50
## ii= 51
## ii= 52
## ii= 53
## ii= 54
## ii= 55
## ii= 56
## ii= 57
## ii= 58
## ii= 59
## ii= 60
## ii= 61
## ii= 62
## ii= 63
## ii= 64
## ii= 65
## ii= 66
## ii= 67
## ii= 68
## ii= 69
## ii= 70
## ii= 71
## ii= 72
## ii= 73
## ii= 74
## ii= 75
## ii= 76
## ii= 77
## ii= 78
## ii= 79
## ii= 80
## ii= 81
## ii= 82
## ii= 83
## ii= 84
## ii= 85
## ii= 86
## ii= 87
## ii= 88
## ii= 89
## ii= 90
## ii= 91
## ii= 92
## ii= 93
## ii= 94
## ii= 95
## ii= 96
## ii= 97
## ii= 98
## ii= 99
## ii= 100
## ii= 101
## ii= 102
## ii= 103
## ii= 104
## ii= 105
## ii= 106
## ii= 107
## ii= 108
## ii= 109
## ii= 110
## ii= 111
## ii= 112
## ii= 113
## ii= 114
## ii= 115
## ii= 116
## ii= 117
## ii= 118
## ii= 119
## ii= 120
## ii= 121
## ii= 122
## ii= 123
## ii= 124
## ii= 125
## ii= 126
## ii= 127
## ii= 128
## ii= 129
## ii= 130
## ii= 131
## ii= 132
## ii= 133
## ii= 134
## ii= 135
## ii= 136
## ii= 137
## ii= 138
## ii= 139
## ii= 140
## ii= 141
## ii= 142
## ii= 143
## ii= 144
## ii= 145
## ii= 146
## ii= 147
## ii= 148
## ii= 149
## ii= 150
## ii= 151
## ii= 152
## ii= 153
## ii= 154
## ii= 155
## ii= 156
## ii= 157
## ii= 158
## ii= 159
## ii= 160

Epigenetic age estimation

Estimate age

methData_age <- epiage_estimation(
  SE = methData_calib,
  age_col_name = "age",
  version = "MEAT2.0"
)
## function (x)  .Primitive("dim")

Save

save(methData_age, 
     file="../GOTO_Data/Clocks/Clock_Out/MEAT.Rdata")

Session Info

sessionInfo()
## R version 4.2.2 (2022-10-31)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Rocky Linux 8.10 (Green Obsidian)
## 
## Matrix products: default
## BLAS/LAPACK: /usr/lib64/libopenblas-r0.3.15.so
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] MEAT_1.10.0                 survival_3.5-5             
##  [3] RPMM_1.25                   cluster_2.1.4              
##  [5] impute_1.72.3               SummarizedExperiment_1.24.0
##  [7] Biobase_2.58.0              GenomicRanges_1.46.1       
##  [9] GenomeInfoDb_1.34.9         IRanges_2.32.0             
## [11] S4Vectors_0.36.2            BiocGenerics_0.44.0        
## [13] MatrixGenerics_1.10.0       matrixStats_1.0.0          
## [15] dnaMethyAge_0.1.0           forcats_0.5.2              
## [17] stringr_1.5.0               dplyr_1.1.3                
## [19] purrr_0.3.4                 readr_2.1.2                
## [21] tidyr_1.2.1                 tibble_3.2.1               
## [23] ggplot2_3.4.3               tidyverse_1.3.2            
## [25] rmarkdown_2.16             
## 
## loaded via a namespace (and not attached):
##   [1] utf8_1.2.3                tidyselect_1.2.0         
##   [3] RSQLite_2.2.17            AnnotationDbi_1.56.2     
##   [5] grid_4.2.2                BiocParallel_1.32.6      
##   [7] munsell_0.5.0             codetools_0.2-19         
##   [9] preprocessCore_1.60.2     nleqslv_3.3.4            
##  [11] withr_2.5.0               colorspace_2.1-0         
##  [13] filelock_1.0.2            highr_0.10               
##  [15] knitr_1.43                rstudioapi_0.14          
##  [17] GenomeInfoDbData_1.2.9    bit64_4.0.5              
##  [19] rhdf5_2.42.1              vctrs_0.6.3              
##  [21] generics_0.1.3            xfun_0.39                
##  [23] timechange_0.2.0          BiocFileCache_2.2.1      
##  [25] R6_2.5.1                  illuminaio_0.40.0        
##  [27] locfit_1.5-9.8            bitops_1.0-7             
##  [29] rhdf5filters_1.10.1       cachem_1.0.8             
##  [31] reshape_0.8.9             DelayedArray_0.24.0      
##  [33] assertthat_0.2.1          BiocIO_1.8.0             
##  [35] scales_1.2.1              vroom_1.5.7              
##  [37] googlesheets4_1.0.1       gtable_0.3.3             
##  [39] affy_1.76.0               methylumi_2.40.1         
##  [41] rlang_1.1.1               genefilter_1.76.0        
##  [43] splines_4.2.2             rtracklayer_1.54.0       
##  [45] gargle_1.5.0              GEOquery_2.62.2          
##  [47] broom_1.0.1               BiocManager_1.30.21      
##  [49] yaml_2.3.7                modelr_0.1.9             
##  [51] GenomicFeatures_1.46.5    backports_1.4.1          
##  [53] tools_4.2.2               nor1mix_1.3-0            
##  [55] affyio_1.68.0             ellipsis_0.3.2           
##  [57] lumi_2.46.0               jquerylib_0.1.4          
##  [59] RColorBrewer_1.1-3        siggenes_1.68.0          
##  [61] dynamicTreeCut_1.63-1     Rcpp_1.0.10              
##  [63] plyr_1.8.8                sparseMatrixStats_1.10.0 
##  [65] ROC_1.70.0                progress_1.2.2           
##  [67] zlibbioc_1.44.0           RCurl_1.98-1.12          
##  [69] prettyunits_1.1.1         openssl_2.0.6            
##  [71] bumphunter_1.36.0         haven_2.5.1              
##  [73] fs_1.6.2                  magrittr_2.0.3           
##  [75] data.table_1.14.8         reprex_2.0.2             
##  [77] googledrive_2.0.0         wateRmelon_2.0.0         
##  [79] hms_1.1.2                 evaluate_0.21            
##  [81] xtable_1.8-4              XML_3.99-0.14            
##  [83] mclust_6.0.0              readxl_1.4.1             
##  [85] shape_1.4.6               compiler_4.2.2           
##  [87] biomaRt_2.50.3            minfi_1.40.0             
##  [89] KernSmooth_2.23-21        crayon_1.5.2             
##  [91] htmltools_0.5.5           mgcv_1.8-42              
##  [93] tzdb_0.4.0                lubridate_1.9.2          
##  [95] DBI_1.1.3                 dbplyr_2.2.1             
##  [97] MASS_7.3-60               rappdirs_0.3.3           
##  [99] Matrix_1.5-4.1            cli_3.6.1                
## [101] quadprog_1.5-8            parallel_4.2.2           
## [103] pkgconfig_2.0.3           GenomicAlignments_1.30.0 
## [105] xml2_1.3.4                foreach_1.5.2            
## [107] annotate_1.72.0           bslib_0.5.0              
## [109] rngtools_1.5.2            multtest_2.50.0          
## [111] beanplot_1.3.1            XVector_0.34.0           
## [113] rvest_1.0.3               doRNG_1.8.6              
## [115] scrime_1.3.5              digest_0.6.31            
## [117] Biostrings_2.62.0         base64_2.0.1             
## [119] cellranger_1.1.0          DelayedMatrixStats_1.16.0
## [121] restfulr_0.0.15           curl_5.0.1               
## [123] Rsamtools_2.10.0          rjson_0.2.21             
## [125] lifecycle_1.0.3           nlme_3.1-162             
## [127] jsonlite_1.8.5            Rhdf5lib_1.20.0          
## [129] askpass_1.1               limma_3.54.2             
## [131] fansi_1.0.4               pillar_1.9.0             
## [133] lattice_0.21-8            KEGGREST_1.34.0          
## [135] fastmap_1.1.1             httr_1.4.6               
## [137] glue_1.6.2                png_0.1-8                
## [139] iterators_1.0.14          glmnet_4.1-7             
## [141] bit_4.0.5                 stringi_1.7.12           
## [143] sass_0.4.6                HDF5Array_1.22.1         
## [145] blob_1.2.4                memoise_2.0.1

Clear

rm(list=ls())