Source: https://github.com/markziemann/nafld-meth-meta/nafld.Rmd
In this report, I will take you through a re-analysis methylation data first described by Johnson et al (2021) and available at GEO under accession number GSE180474.
In their study, they analysed the DNA methylation patterns of 325 individuals with NAFLD, including 119 with severe fibrosis and 206 with no histological evidence of fibrosis.
The platform used in the study is the Illumina Infinium MethylationEPIC BeadChip assay. The authors used a pipeline based on CATE R package, after cell type deconvolution with EpiDISH.
The main conclusions from the original study were:
Their study identified 7 CpG sites with p<5e-8 associuated with fibrosis.
Proportions of some cells changed, for example NK cells were higher in samples with fibrosis.
The aim of this work is to;
develop the analytical pipelines required for efficient re-analysis of methylation array data,
to confirm that we are able to obtain differential methylation results that are similar to those obtained in the original study, and
to critically evaluate the conclusions made in the original study.
In this report I will be using the missMethyl vignette as a guide to analyse this dataset (Phipson et al, 2015).
Previously I curated a list of good and bad probes using the script “filter_probes.Rmd”.
source("meth_functions.R")
## Warning: replacing previous import 'minfi::getMeth' by 'bsseq::getMeth' when
## loading 'DMRcate'
#library("kableExtra")
anno <- getAnnotation(IlluminaHumanMethylationEPICanno.ilm10b4.hg19)
myann <- data.frame(anno[,c("UCSC_RefGene_Name","Regulatory_Feature_Group","Islands_Name","Relation_to_Island")])
promoters <- myann[grep("Prom",myann$Regulatory_Feature_Group),]
ss <- read.table("samplesheet.tsv",header=TRUE)
ss <- ss[grep("GSE180474",ss$study_id),]
dim(ss)
## [1] 341 7
ss$sex <- factor(ss$sex)
ss$nafld_stage <- factor(ss$nafld_stage)
ss
## study_id id sex age bmi dm2_meds nafld_stage
## 1 GSE180474 GSM5463247 Male 47 53.49550 Yes 3_4
## 2 GSE180474 GSM5463248 Male 36 66.81749 No 0_2
## 3 GSE180474 GSM5463249 Male 54 53.58008 Yes 3_4
## 4 GSE180474 GSM5463250 Male 52 55.68160 No 3_4
## 5 GSE180474 GSM5463251 Male 55 47.32493 Yes 0_2
## 6 GSE180474 GSM5463252 Male 69 47.24447 Yes 0_2
## 7 GSE180474 GSM5463253 Male 69 41.27580 Yes 0_2
## 8 GSE180474 GSM5463254 Male 61 57.21559 Yes 3_4
## 9 GSE180474 GSM5463255 Male 38 78.74101 No 0_2
## 10 GSE180474 GSM5463256 Male 48 54.41198 Yes 0_2
## 11 GSE180474 GSM5463257 Female 30 45.92379 No 0_2
## 12 GSE180474 GSM5463258 Male 61 42.49244 Yes 0_2
## 13 GSE180474 GSM5463259 Male 56 51.41061 Yes 3_4
## 14 GSE180474 GSM5463260 Male 42 52.34529 Yes 3_4
## 15 GSE180474 GSM5463261 Male 57 43.15591 Yes 0_2
## 16 GSE180474 GSM5463262 Male 41 52.40944 Yes 3_4
## 17 GSE180474 GSM5463263 Female 37 58.22721 No 0_2
## 18 GSE180474 GSM5463264 Female 34 43.40951 No 0_2
## 19 GSE180474 GSM5463265 Male 53 47.91878 Yes 3_4
## 20 GSE180474 GSM5463266 Male 51 51.53164 Yes 0_2
## 21 GSE180474 GSM5463267 Male 59 37.92536 Yes 0_2
## 22 GSE180474 GSM5463268 Male 60 47.93182 Yes 3_4
## 23 GSE180474 GSM5463269 Male 64 64.30990 Yes 0_2
## 24 GSE180474 GSM5463270 Male 40 63.76393 No 0_2
## 25 GSE180474 GSM5463271 Male 69 44.84666 Yes 0_2
## 26 GSE180474 GSM5463272 Male 54 48.26942 Yes 3_4
## 27 GSE180474 GSM5463273 Male 70 46.45435 Yes 0_2
## 28 GSE180474 GSM5463274 Male 46 48.91106 No 3_4
## 29 GSE180474 GSM5463275 Male 65 50.17554 Yes 3_4
## 30 GSE180474 GSM5463276 Male 72 45.04377 Yes 0_2
## 31 GSE180474 GSM5463277 Male 58 64.99405 Yes 0_2
## 32 GSE180474 GSM5463278 Male 56 51.60037 No 0_2
## 33 GSE180474 GSM5463279 Female 34 36.55406 No 0_2
## 34 GSE180474 GSM5463280 Female 30 37.24390 No 0_2
## 35 GSE180474 GSM5463281 Female 59 47.29757 Yes 3_4
## 36 GSE180474 GSM5463282 Female 48 37.55283 No 0_2
## 37 GSE180474 GSM5463283 Female 57 37.41774 No 0_2
## 38 GSE180474 GSM5463284 Female 47 47.58769 Yes 3_4
## 39 GSE180474 GSM5463285 Female 36 36.77081 No 0_2
## 40 GSE180474 GSM5463286 Female 55 47.60978 Yes 3_4
## 41 GSE180474 GSM5463287 Female 46 37.75228 No 0_2
## 42 GSE180474 GSM5463288 Female 47 36.61126 No 0_2
## 43 GSE180474 GSM5463289 Female 61 38.16746 No 0_2
## 44 GSE180474 GSM5463290 Female 57 47.88501 Yes 3_4
## 45 GSE180474 GSM5463291 Female 64 48.54579 Yes 3_4
## 46 GSE180474 GSM5463292 Female 28 38.73278 No 0_2
## 47 GSE180474 GSM5463293 Female 38 48.87547 Yes 3_4
## 48 GSE180474 GSM5463294 Female 53 38.05552 No 0_2
## 49 GSE180474 GSM5463295 Female 64 49.36538 Yes 3_4
## 50 GSE180474 GSM5463296 Female 61 39.53972 Yes 0_2
## 51 GSE180474 GSM5463297 Female 62 49.36681 Yes 3_4
## 52 GSE180474 GSM5463298 Female 44 51.74746 Yes 3_4
## 53 GSE180474 GSM5463299 Female 47 39.42470 No 0_2
## 54 GSE180474 GSM5463300 Female 44 52.23179 Yes 3_4
## 55 GSE180474 GSM5463301 Female 30 52.38310 Yes 0_2
## 56 GSE180474 GSM5463302 Female 34 41.90720 No 0_2
## 57 GSE180474 GSM5463303 Female 59 58.58111 No 0_2
## 58 GSE180474 GSM5463304 Female 67 54.87306 Yes 0_2
## 59 GSE180474 GSM5463305 Female 50 62.10807 Yes 0_2
## 60 GSE180474 GSM5463306 Female 23 73.87965 No 0_2
## 61 GSE180474 GSM5463307 Female 46 40.29623 Yes 3_4
## 62 GSE180474 GSM5463308 Female 70 40.54451 Yes 3_4
## 63 GSE180474 GSM5463309 Female 44 40.81783 No 0_2
## 64 GSE180474 GSM5463310 Female 56 32.55307 Yes 3_4
## 65 GSE180474 GSM5463311 Female 71 34.02930 Yes 3_4
## 66 GSE180474 GSM5463312 Female 54 41.73515 No 0_2
## 67 GSE180474 GSM5463313 Female 55 53.58219 No 0_2
## 68 GSE180474 GSM5463314 Female 52 47.28430 No 0_2
## 69 GSE180474 GSM5463315 Female 49 48.54075 Yes 0_2
## 70 GSE180474 GSM5463316 Female 38 42.88725 No 0_2
## 71 GSE180474 GSM5463317 Female 45 34.12387 Yes 3_4
## 72 GSE180474 GSM5463318 Female 61 34.47184 Yes 3_4
## 73 GSE180474 GSM5463319 Female 32 41.50154 No 0_2
## 74 GSE180474 GSM5463320 Female 30 52.38310 Yes 0_2
## 75 GSE180474 GSM5463321 Female 47 37.15875 Yes 3_4
## 76 GSE180474 GSM5463322 Female 50 37.23189 Yes 3_4
## 77 GSE180474 GSM5463323 Female 52 43.61450 Yes 0_2
## 78 GSE180474 GSM5463324 Female 60 37.28030 Yes 3_4
## 79 GSE180474 GSM5463325 Female 56 37.00272 Yes 0_2
## 80 GSE180474 GSM5463326 Female 56 52.92617 No 3_4
## 81 GSE180474 GSM5463327 Female 46 40.28052 No 0_2
## 82 GSE180474 GSM5463328 Female 50 40.45865 No 0_2
## 83 GSE180474 GSM5463329 Female 71 40.82319 No 0_2
## 84 GSE180474 GSM5463330 Female 54 52.52972 Yes 0_2
## 85 GSE180474 GSM5463331 Female 38 40.31912 Yes 0_2
## 86 GSE180474 GSM5463332 Female 66 40.90118 No 0_2
## 87 GSE180474 GSM5463333 Female 61 53.01830 Yes 3_4
## 88 GSE180474 GSM5463334 Female 42 42.42959 Yes 0_2
## 89 GSE180474 GSM5463335 Female 68 37.97156 No 0_2
## 90 GSE180474 GSM5463336 Female 47 46.25340 No 0_2
## 91 GSE180474 GSM5463337 Female 50 76.53577 No 0_2
## 92 GSE180474 GSM5463338 Female 54 49.88810 Yes 0_2
## 93 GSE180474 GSM5463339 Female 34 52.08950 Yes 0_2
## 94 GSE180474 GSM5463340 Female 57 42.81228 Yes 3_4
## 95 GSE180474 GSM5463341 Female 59 49.81341 Yes 0_2
## 96 GSE180474 GSM5463342 Female 19 41.64549 No 0_2
## 97 GSE180474 GSM5463343 Female 47 53.22877 Yes 3_4
## 98 GSE180474 GSM5463344 Female 57 41.73319 No 0_2
## 99 GSE180474 GSM5463345 Female 41 53.48753 No 3_4
## 100 GSE180474 GSM5463346 Female 51 53.77906 No 3_4
## 101 GSE180474 GSM5463347 Female 33 41.11111 No 0_2
## 102 GSE180474 GSM5463348 Female 50 42.43760 No 0_2
## 103 GSE180474 GSM5463349 Female 57 42.82990 No 0_2
## 104 GSE180474 GSM5463350 Female 38 56.71125 No 3_4
## 105 GSE180474 GSM5463351 Female 30 57.08861 Yes 3_4
## 106 GSE180474 GSM5463352 Female 54 43.42288 No 0_2
## 107 GSE180474 GSM5463353 Female 46 42.95550 No 0_2
## 108 GSE180474 GSM5463354 Female 23 57.88911 Yes 3_4
## 109 GSE180474 GSM5463355 Female 54 44.77964 No 0_2
## 110 GSE180474 GSM5463356 Female 44 44.70984 No 0_2
## 111 GSE180474 GSM5463357 Female 47 59.38428 Yes 3_4
## 112 GSE180474 GSM5463358 Female 54 45.74607 Yes 0_2
## 113 GSE180474 GSM5463359 Female 50 46.06572 No 0_2
## 114 GSE180474 GSM5463360 Female 50 48.16340 Yes 0_2
## 115 GSE180474 GSM5463361 Female 32 59.40845 No 3_4
## 116 GSE180474 GSM5463362 Female 56 60.51869 Yes 3_4
## 117 GSE180474 GSM5463363 Female 67 46.25096 Yes 0_2
## 118 GSE180474 GSM5463364 Female 29 61.59699 No 3_4
## 119 GSE180474 GSM5463365 Female 34 46.14219 No 0_2
## 120 GSE180474 GSM5463366 Female 34 42.65027 Yes 0_2
## 121 GSE180474 GSM5463367 Female 62 42.59331 Yes 0_2
## 122 GSE180474 GSM5463368 Female 29 42.48465 Yes 0_2
## 123 GSE180474 GSM5463369 Female 58 43.54430 Yes 0_2
## 124 GSE180474 GSM5463370 Female 36 53.97151 Yes 3_4
## 125 GSE180474 GSM5463371 Female 37 53.91050 Yes 3_4
## 126 GSE180474 GSM5463372 Female 59 43.77735 No 0_2
## 127 GSE180474 GSM5463373 Female 47 55.35668 Yes 3_4
## 128 GSE180474 GSM5463374 Female 46 40.29623 Yes 3_4
## 129 GSE180474 GSM5463375 Female 47 37.33212 No 3_4
## 130 GSE180474 GSM5463376 Female 35 40.67940 No 0_2
## 131 GSE180474 GSM5463377 Male 32 38.77862 No 0_2
## 132 GSE180474 GSM5463378 Female 55 40.89880 No 0_2
## 133 GSE180474 GSM5463379 Female 56 37.85666 Yes 3_4
## 134 GSE180474 GSM5463380 Female 58 65.89698 Yes 3_4
## 135 GSE180474 GSM5463381 Male 45 40.96687 No 0_2
## 136 GSE180474 GSM5463382 Female 44 52.23179 Yes 3_4
## 137 GSE180474 GSM5463383 Female 60 37.28030 Yes 3_4
## 138 GSE180474 GSM5463384 Female 33 49.18700 No 0_2
## 139 GSE180474 GSM5463385 Male 33 43.38735 No 0_2
## 140 GSE180474 GSM5463386 Female 56 60.51869 Yes 3_4
## 141 GSE180474 GSM5463387 Male 63 37.32643 Yes 0_2
## 142 GSE180474 GSM5463388 Female 57 41.86613 Yes 3_4
## 143 GSE180474 GSM5463389 Female 52 42.33233 Yes 3_4
## 144 GSE180474 GSM5463390 Female 39 42.36166 Yes 3_4
## 145 GSE180474 GSM5463391 Female 51 42.76806 Yes 3_4
## 146 GSE180474 GSM5463392 Female 53 53.36705 No 0_2
## 147 GSE180474 GSM5463393 Female 44 46.22902 Yes 0_2
## 148 GSE180474 GSM5463394 Female 26 38.02132 No 0_2
## 149 GSE180474 GSM5463395 Female 50 45.04691 Yes 0_2
## 150 GSE180474 GSM5463396 Female 57 43.61746 Yes 3_4
## 151 GSE180474 GSM5463397 Female 54 60.04460 No 0_2
## 152 GSE180474 GSM5463398 Female 44 42.70176 No 0_2
## 153 GSE180474 GSM5463399 Female 54 43.88436 Yes 3_4
## 154 GSE180474 GSM5463400 Female 53 38.31454 Yes 0_2
## 155 GSE180474 GSM5463401 Female 32 45.52716 Yes 0_2
## 156 GSE180474 GSM5463402 Female 46 37.60114 No 0_2
## 157 GSE180474 GSM5463403 Female 48 39.90153 Yes 0_2
## 158 GSE180474 GSM5463404 Male 52 60.36351 Yes 3_4
## 159 GSE180474 GSM5463405 Female 41 43.09520 No 0_2
## 160 GSE180474 GSM5463406 Female 36 37.46150 No 0_2
## 161 GSE180474 GSM5463407 Female 59 41.09600 No 0_2
## 162 GSE180474 GSM5463408 Male 33 60.43987 Yes 3_4
## 163 GSE180474 GSM5463409 Male 70 49.31180 No 0_2
## 164 GSE180474 GSM5463410 Male 46 62.68716 Yes 3_4
## 165 GSE180474 GSM5463411 Female 36 44.02980 No 0_2
## 166 GSE180474 GSM5463412 Male 55 36.83631 No 0_2
## 167 GSE180474 GSM5463413 Male 54 48.26942 Yes 3_4
## 168 GSE180474 GSM5463414 Male 71 37.01510 No 0_2
## 169 GSE180474 GSM5463415 Male 65 50.17554 Yes 3_4
## 170 GSE180474 GSM5463416 Male 47 38.20308 No 0_2
## 171 GSE180474 GSM5463417 Male 57 38.31727 Yes 0_2
## 172 GSE180474 GSM5463418 Female 32 59.54204 No 0_2
## 173 GSE180474 GSM5463419 Female 42 42.93068 Yes 3_4
## 174 GSE180474 GSM5463420 Female 64 43.01609 Yes 3_4
## 175 GSE180474 GSM5463421 Female 51 35.54466 No 0_2
## 176 GSE180474 GSM5463422 Female 55 43.26154 Yes 3_4
## 177 GSE180474 GSM5463423 Female 27 47.45458 Yes 0_2
## 178 GSE180474 GSM5463424 Female 66 40.93541 No 0_2
## 179 GSE180474 GSM5463425 Female 50 43.42792 Yes 3_4
## 180 GSE180474 GSM5463426 Female 60 35.18948 No 0_2
## 181 GSE180474 GSM5463427 Female 64 40.66737 Yes 0_2
## 182 GSE180474 GSM5463428 Female 31 41.25368 Yes 3_4
## 183 GSE180474 GSM5463429 Female 28 48.56690 No 0_2
## 184 GSE180474 GSM5463430 Female 59 41.30690 Yes 3_4
## 185 GSE180474 GSM5463431 Female 50 41.53661 Yes 3_4
## 186 GSE180474 GSM5463432 Female 47 65.29497 Yes 0_2
## 187 GSE180474 GSM5463433 Female 44 40.92256 No 0_2
## 188 GSE180474 GSM5463434 Female 70 40.54451 Yes 3_4
## 189 GSE180474 GSM5463435 Female 53 48.61020 No 0_2
## 190 GSE180474 GSM5463436 Male 31 44.98865 No 0_2
## 191 GSE180474 GSM5463437 Female 41 53.48753 No 3_4
## 192 GSE180474 GSM5463438 Male 72 42.83535 No 0_2
## 193 GSE180474 GSM5463439 Female 55 40.04272 Yes 3_4
## 194 GSE180474 GSM5463440 Female 30 52.38310 Yes 0_2
## 195 GSE180474 GSM5463441 Female 52 52.02313 No 0_2
## 196 GSE180474 GSM5463442 Male 52 48.27400 Yes 3_4
## 197 GSE180474 GSM5463443 Male 54 45.17048 Yes 3_4
## 198 GSE180474 GSM5463444 Male 57 45.82707 Yes 3_4
## 199 GSE180474 GSM5463445 Female 37 54.16977 Yes 0_2
## 200 GSE180474 GSM5463446 Male 48 53.97167 No 0_2
## 201 GSE180474 GSM5463447 Female 40 84.01786 No 0_2
## 202 GSE180474 GSM5463448 Female 30 52.38310 Yes 0_2
## 203 GSE180474 GSM5463449 Female 34 60.83472 No 0_2
## 204 GSE180474 GSM5463450 Female 28 43.73577 No 0_2
## 205 GSE180474 GSM5463451 Female 49 60.06809 No 0_2
## 206 GSE180474 GSM5463452 Female 52 59.79158 No 0_2
## 207 GSE180474 GSM5463453 Female 43 58.93047 No 0_2
## 208 GSE180474 GSM5463454 Male 52 46.14314 Yes 3_4
## 209 GSE180474 GSM5463455 Male 61 46.44628 Yes 3_4
## 210 GSE180474 GSM5463456 Male 62 47.07091 Yes 3_4
## 211 GSE180474 GSM5463457 Female 44 47.69440 No 0_2
## 212 GSE180474 GSM5463458 Female 32 40.45340 No 0_2
## 213 GSE180474 GSM5463459 Female 40 41.31580 No 0_2
## 214 GSE180474 GSM5463460 Male 51 41.56579 Yes 3_4
## 215 GSE180474 GSM5463461 Male 47 41.59763 Yes 3_4
## 216 GSE180474 GSM5463462 Female 33 42.58920 No 0_2
## 217 GSE180474 GSM5463463 Male 53 43.17731 Yes 3_4
## 218 GSE180474 GSM5463464 Male 33 43.21064 Yes 3_4
## 219 GSE180474 GSM5463465 Female 40 37.11890 Yes 0_2
## 220 GSE180474 GSM5463466 Male 57 43.35341 Yes 3_4
## 221 GSE180474 GSM5463467 Male 59 44.30998 Yes 3_4
## 222 GSE180474 GSM5463468 Female 37 46.56200 No 0_2
## 223 GSE180474 GSM5463469 Female 37 44.68250 No 0_2
## 224 GSE180474 GSM5463470 Female 46 43.70850 No 0_2
## 225 GSE180474 GSM5463471 Female 29 50.08540 No 0_2
## 226 GSE180474 GSM5463472 Female 61 44.70292 Yes 3_4
## 227 GSE180474 GSM5463473 Female 75 46.37560 Yes 0_2
## 228 GSE180474 GSM5463474 Female 30 52.38310 Yes 0_2
## 229 GSE180474 GSM5463475 Female 46 45.30360 Yes 3_4
## 230 GSE180474 GSM5463476 Female 50 45.54746 Yes 3_4
## 231 GSE180474 GSM5463477 Female 31 57.45363 Yes 0_2
## 232 GSE180474 GSM5463478 Female 29 43.85558 No 0_2
## 233 GSE180474 GSM5463479 Female 39 45.33716 Yes 0_2
## 234 GSE180474 GSM5463480 Female 56 37.92746 No 0_2
## 235 GSE180474 GSM5463481 Female 64 41.29804 Yes 0_2
## 236 GSE180474 GSM5463482 Female 55 33.53147 No 0_2
## 237 GSE180474 GSM5463483 Female 67 38.78987 Yes 0_2
## 238 GSE180474 GSM5463484 Female 41 40.77365 Yes 3_4
## 239 GSE180474 GSM5463485 Female 44 42.80709 Yes 0_2
## 240 GSE180474 GSM5463486 Female 59 47.29757 Yes 3_4
## 241 GSE180474 GSM5463487 Female 30 52.38310 Yes 0_2
## 242 GSE180474 GSM5463488 Female 35 54.97800 Yes 0_2
## 243 GSE180474 GSM5463489 Female 65 50.72790 No 0_2
## 244 GSE180474 GSM5463490 Female 52 44.42490 No 0_2
## 245 GSE180474 GSM5463491 Female 30 46.47700 No 0_2
## 246 GSE180474 GSM5463492 Female 37 57.94970 No 0_2
## 247 GSE180474 GSM5463493 Male 45 37.00649 No 3_4
## 248 GSE180474 GSM5463494 Male 55 38.60155 Yes 3_4
## 249 GSE180474 GSM5463495 Male 61 39.06616 Yes 3_4
## 250 GSE180474 GSM5463496 Female 47 45.61010 No 0_2
## 251 GSE180474 GSM5463497 Female 68 40.83080 Yes 0_2
## 252 GSE180474 GSM5463498 Female 30 52.38310 Yes 0_2
## 253 GSE180474 GSM5463499 Female 47 72.35290 Yes 3_4
## 254 GSE180474 GSM5463500 Female 54 57.35960 No 0_2
## 255 GSE180474 GSM5463501 Female 57 44.38130 No 0_2
## 256 GSE180474 GSM5463502 Female 50 72.77440 Yes 3_4
## 257 GSE180474 GSM5463503 Female 51 49.25440 No 0_2
## 258 GSE180474 GSM5463504 Female 36 53.04060 Yes 0_2
## 259 GSE180474 GSM5463505 Female 56 63.98398 Yes 3_4
## 260 GSE180474 GSM5463506 Female 37 50.68260 Yes 0_2
## 261 GSE180474 GSM5463507 Female 45 52.86230 No 0_2
## 262 GSE180474 GSM5463508 Female 32 40.26650 No 0_2
## 263 GSE180474 GSM5463509 Female 58 65.89698 Yes 3_4
## 264 GSE180474 GSM5463510 Female 57 41.94350 Yes 0_2
## 265 GSE180474 GSM5463511 Female 39 42.18900 No 0_2
## 266 GSE180474 GSM5463512 Female 56 37.85666 Yes 3_4
## 267 GSE180474 GSM5463513 Female 51 55.92365 Yes 0_2
## 268 GSE180474 GSM5463514 Female 54 37.97919 Yes 3_4
## 269 GSE180474 GSM5463515 Female 56 52.59836 Yes 0_2
## 270 GSE180474 GSM5463516 Female 41 56.89558 Yes 0_2
## 271 GSE180474 GSM5463517 Female 60 38.06772 Yes 3_4
## 272 GSE180474 GSM5463518 Female 53 53.90447 No 0_2
## 273 GSE180474 GSM5463519 Female 43 52.82596 No 0_2
## 274 GSE180474 GSM5463520 Female 38 52.53595 No 0_2
## 275 GSE180474 GSM5463521 Female 53 38.21946 Yes 3_4
## 276 GSE180474 GSM5463522 Female 41 40.39873 Yes 0_2
## 277 GSE180474 GSM5463523 Female 61 48.59871 Yes 0_2
## 278 GSE180474 GSM5463524 Female 27 60.39976 No 0_2
## 279 GSE180474 GSM5463525 Female 57 43.61746 Yes 3_4
## 280 GSE180474 GSM5463526 Female 51 39.45664 No 3_4
## 281 GSE180474 GSM5463527 Female 55 40.04272 Yes 3_4
## 282 GSE180474 GSM5463528 Female 49 42.85339 Yes 0_2
## 283 GSE180474 GSM5463529 Female 47 37.33212 No 3_4
## 284 GSE180474 GSM5463530 Female 28 46.55868 No 0_2
## 285 GSE180474 GSM5463531 Female 33 45.28253 Yes 0_2
## 286 GSE180474 GSM5463532 Female 57 46.89263 Yes 0_2
## 287 GSE180474 GSM5463533 Female 59 37.41222 Yes 3_4
## 288 GSE180474 GSM5463534 Female 39 37.68259 Yes 3_4
## 289 GSE180474 GSM5463535 Female 29 53.79511 Yes 0_2
## 290 GSE180474 GSM5463536 Female 63 52.25740 Yes 0_2
## 291 GSE180474 GSM5463537 Female 60 45.97991 Yes 3_4
## 292 GSE180474 GSM5463538 Female 49 46.46705 Yes 0_2
## 293 GSE180474 GSM5463539 Female 55 48.07110 No 0_2
## 294 GSE180474 GSM5463540 Female 61 40.08294 Yes 0_2
## 295 GSE180474 GSM5463541 Female 46 42.91212 No 0_2
## 296 GSE180474 GSM5463542 Female 66 46.23993 Yes 3_4
## 297 GSE180474 GSM5463543 Female 36 37.70330 No 0_2
## 298 GSE180474 GSM5463544 Female 30 45.97948 No 0_2
## 299 GSE180474 GSM5463545 Female 51 50.81400 Yes 0_2
## 300 GSE180474 GSM5463546 Female 52 46.25178 Yes 3_4
## 301 GSE180474 GSM5463547 Female 55 34.29095 Yes 0_2
## 302 GSE180474 GSM5463548 Female 43 46.62069 Yes 3_4
## 303 GSE180474 GSM5463549 Female 37 35.05763 No 0_2
## 304 GSE180474 GSM5463550 Female 66 51.41467 No 0_2
## 305 GSE180474 GSM5463551 Female 50 61.93980 No 0_2
## 306 GSE180474 GSM5463552 Female 46 50.39800 No 0_2
## 307 GSE180474 GSM5463553 Female 28 42.31070 Yes 0_2
## 308 GSE180474 GSM5463554 Female 51 43.88070 Yes 0_2
## 309 GSE180474 GSM5463555 Female 36 54.05678 No 0_2
## 310 GSE180474 GSM5463556 Female 64 39.00064 No 0_2
## 311 GSE180474 GSM5463557 Female 44 35.85404 No 0_2
## 312 GSE180474 GSM5463558 Female 51 42.03136 No 0_2
## 313 GSE180474 GSM5463559 Female 49 44.47619 Yes 3_4
## 314 GSE180474 GSM5463560 Female 52 49.29084 No 0_2
## 315 GSE180474 GSM5463561 Female 63 38.90521 No 0_2
## 316 GSE180474 GSM5463562 Female 48 47.69360 Yes 3_4
## 317 GSE180474 GSM5463563 Female 48 37.60003 No 0_2
## 318 GSE180474 GSM5463564 Male 18 42.15423 No 0_2
## 319 GSE180474 GSM5463565 Female 58 37.33712 Yes 3_4
## 320 GSE180474 GSM5463566 Male 40 43.00582 No 0_2
## 321 GSE180474 GSM5463567 Male 45 42.70653 No 0_2
## 322 GSE180474 GSM5463568 Female 47 72.35290 Yes 3_4
## 323 GSE180474 GSM5463569 Male 53 44.03378 Yes 0_2
## 324 GSE180474 GSM5463570 Male 66 44.15552 Yes 0_2
## 325 GSE180474 GSM5463571 Male 53 47.91878 Yes 3_4
## 326 GSE180474 GSM5463572 Male 44 54.75260 Yes 0_2
## 327 GSE180474 GSM5463573 Male 35 64.44297 No 3_4
## 328 GSE180474 GSM5463574 Female 30 52.38310 Yes 0_2
## 329 GSE180474 GSM5463575 Female 47 37.15875 Yes 3_4
## 330 GSE180474 GSM5463576 Male 51 76.84051 Yes 0_2
## 331 GSE180474 GSM5463577 Female 33 46.05330 No 0_2
## 332 GSE180474 GSM5463578 Male 50 91.10502 Yes 3_4
## 333 GSE180474 GSM5463579 Male 47 55.87114 Yes 0_2
## 334 GSE180474 GSM5463580 Male 32 35.92173 No 0_2
## 335 GSE180474 GSM5463581 Male 57 45.82707 Yes 3_4
## 336 GSE180474 GSM5463582 Female 55 43.26154 Yes 3_4
## 337 GSE180474 GSM5463583 Female 46 43.97700 No 0_2
## 338 GSE180474 GSM5463584 Male 58 61.94945 Yes 0_2
## 339 GSE180474 GSM5463585 Male 44 36.00484 No 0_2
## 340 GSE180474 GSM5463586 Male 31 37.01842 No 0_2
## 341 GSE180474 GSM5463587 Female 41 40.77365 Yes 3_4
#%>% kbl() %>% kable_paper("hover", full_width = F)
Array manifest: GSE180474_RAW.tar
Meth signal, unmeth signal and detection p-val: GSE180474_MatrixSignalIntensities.csv
Detection p-val only: GSE180474_MatrixProcessed.csv.gz
GSE="GSE180474"
ARRAY_DATA_DIR=paste(GSE,"_data",sep="")
ARRAY_DATA=paste(ARRAY_DATA_DIR,"GSE180474_MatrixSignalIntensities.csv.gz",sep="/")
DATA_URL="https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE180474&format=file&file=GSE180474%5FMatrixSignalIntensities%2Ecsv%2Egz"
#https://ftp.ncbi.nlm.nih.gov/geo/series/GSE180nnn/GSE180474/suppl/GSE180474_MatrixSignalIntensities.csv.gz"
if(!dir.exists(ARRAY_DATA_DIR)){
dir.create(ARRAY_DATA_DIR)
#download.file(DATA_URL, destfile=ARRAY_DATA)
system("wget -O GSE180474_data/GSE180474_MatrixSignalIntensities.csv.gz https://ftp.ncbi.nlm.nih.gov/geo/series/GSE180nnn/GSE180474/suppl/GSE180474_MatrixSignalIntensities.csv.gz")
}
Load in R. Calculate M-values and beta values and do an multidimensional scaling (MDS) analysis.
A scree plot shows the amount of variance that is explained by the principal components.
Run the MDS plot to see the clustering of the samples. This should reveal that the samples cluster by sex and should help to confirm the sample sheet.
# If testing, use the smaller test file
x <- read.csv("GSE180474_data/GSE180474_MatrixSignalIntensities.csv.gz",header=TRUE,row.names=1)
#x <- read.csv("GSE180474_data/GSE180474_MatrixSignalIntensities_test.csv.gz",header=TRUE,row.names=1)
pvals <- x[,grep("Detection",colnames(x))]
meth <- x[,grep("Methylated",colnames(x))]
unmeth <- x[,grep("Unmethylated",colnames(x))]
remove(x)
lapply(list(pvals,meth,unmeth),dim)
## [[1]]
## [1] 865859 341
##
## [[2]]
## [1] 865859 341
##
## [[3]]
## [1] 865859 341
colnames(pvals) <- ss$id
colnames(meth) <- ss$id
colnames(unmeth) <- ss$id
# remove samples with more than 1% of probes with a detection p-value > 0.001
bad_samples <- which(apply(pvals, 2, function(x) { length(which(x > 0.01)) }) > nrow(pvals)/100)
length(bad_samples)
## [1] 0
# remove probes with detection p-value is > 0.01 in more than 5% of samples
bad_probes <- which(apply(pvals, 1, function(x) { length(which(x > 0.01)) })> ncol(pvals)/20)
length(bad_probes)
## [1] 2202
pvals <- pvals[which(!rownames(pvals) %in% names(bad_probes)),]
meth <- meth[which(!rownames(pvals) %in% names(bad_probes)),]
unmeth <- unmeth[which(!rownames(pvals) %in% names(bad_probes)),]
Mval <- log2((meth + 100)/(unmeth + 100))
beta <- meth / (meth + unmeth )
myscree(Mval,main="incl sex chr")
mydist <- plotMDS(Mval)
colour_palette=brewer.pal(n = length(levels(ss$nafld_stage)), name = "Paired")
## Warning in brewer.pal(n = length(levels(ss$nafld_stage)), name = "Paired"): minimal value for n is 3, returning requested palette with 3 different levels
colours <- colour_palette[as.integer(factor(ss$nafld_stage))]
plotMDS(mydist, labels=ss$nafld,col=colours,main="sex chromosomes included")
legend("bottom",legend=levels(ss$nafld_stage),pch=16,cex=1.2,col=levels(factor(colours)),title="NAFLD stage")
colours <- colour_palette[as.integer(factor(ss$sex))]
plotMDS(mydist, labels=ss$sex, col=colours, main="sex chromosomes included")
legend("bottom", legend=levels(ss$sex), pch=16, cex=1.2, col=colour_palette, title="Sex")
colours <- colour_palette[as.integer(factor(ss$sex))]
plotMDS(mydist, labels=ss$id, col=colours, main="sex chromosomes included")
legend("bottom", legend=levels(ss$sex), pch=16, cex=1.2, col=colour_palette, title="Sex")
colours <- gsub("2","lightblue",gsub("1","pink",as.character(as.numeric(ss$sex))))
plot(mydist, pch=19,cex=2,col=colours,main="sex chromosomes included",
xlab="Leading logFC dim 1",ylab="Leading logFC dim 2")
text(mydist, labels=ss$nafld,cex=0.6)
legend("bottom",legend=levels(ss$sex),pch=16,cex=1.2,col=c("pink","lightblue"),title="sex")
There is a male (GSM5463580) that needs to be excluded because it looks like a female.
meth <- meth[,-grep("GSM5463580",colnames(meth))]
unmeth <- unmeth[,-grep("GSM5463580",colnames(unmeth))]
pvals <- pvals[,-grep("GSM5463580",colnames(pvals))]
ss <- ss[which(ss$id!="GSM5463580"),]
Now exclude sex chromosomes and redo the MDS plot.
Here are the numbers of probes on the X, Y which are being excluded.
chrxy <- rownames(anno)[which(anno$chr == "chrX" | anno$chr == "chrY")]
length(chrxy)
## [1] 19627
meth <- meth[which(!rownames(meth) %in% chrxy),]
unmeth <- unmeth[which(!rownames(unmeth) %in% chrxy),]
pvals <- pvals[which(!rownames(pvals) %in% chrxy),]
lapply(list(pvals,meth,unmeth),dim)
## [[1]]
## [1] 844466 340
##
## [[2]]
## [1] 844123 340
##
## [[3]]
## [1] 844123 340
Mval <- log2((meth + 100)/(unmeth + 100))
beta <- meth / (meth + unmeth )
remove(meth,unmeth,pvals)
myscree(Mval,main="incl sex chr")
mydist <- plotMDS(Mval)
colour_palette=brewer.pal(n = length(levels(ss$nafld_stage)), name = "Paired")
## Warning in brewer.pal(n = length(levels(ss$nafld_stage)), name = "Paired"): minimal value for n is 3, returning requested palette with 3 different levels
colours <- colour_palette[as.integer(factor(ss$nafld_stage))]
plotMDS(mydist, labels=ss$nafld,col=colours,main="sex chromosomes excluded")
legend("topleft",legend=levels(ss$nafld_stage),pch=16,cex=1.2,col=levels(factor(colours)),title="NAFLD stage")
colours <- colour_palette[as.integer(factor(ss$sex))]
plotMDS(mydist, labels=ss$sex, col=colours, main="sex chromosomes excluded")
legend("topleft", legend=levels(ss$sex), pch=16, cex=1.2, col=colour_palette, title="Sex")
colours <- colour_palette[as.integer(factor(ss$sex))]
plotMDS(mydist, labels=ss$id, col=colours, main="sex chromosomes excluded")
legend("topleft", legend=levels(ss$sex), pch=16, cex=1.2, col=colour_palette, title="Sex")
colours <- gsub("2","lightblue",gsub("1","pink",as.character(as.numeric(ss$sex))))
plot(mydist, pch=19,cex=2,col=colours,main="sex chromosomes excluded",
xlab="Leading logFC dim 1",ylab="Leading logFC dim 2")
text(mydist, labels=ss$nafld,cex=0.6)
legend("topleft",legend=levels(ss$sex),pch=16,cex=1.2,col=c("pink","lightblue"),title="sex")
The main contrast that would be of interest to us in this study is the comparison of 0_2 (216) vs 3_4 (124) in which we will examine differentially methylation by NAFLD severity. The covariates that can be considered are sex, age, BMI, anti-diabetic medication, and potentially cell type composition.
design <- model.matrix(~ ss$sex + ss$age + ss$bmi + ss$dm2_meds + ss$nafld_stage)
fit.reduced <- lmFit(Mval,design)
fit.reduced <- eBayes(fit.reduced)
## Warning: Zero sample variances detected, have been offset away from zero
dm <- topTable(fit.reduced,coef=ncol(summary(decideTests(fit.reduced))), number = Inf)
dma <- merge(myann,dm,by=0)
dma <- dma[order(dma$P.Value),]
dm_up <- rownames(subset(dm,adj.P.Val<0.05 & logFC>0))
dm_dn <- rownames(subset(dm,adj.P.Val<0.05 & logFC<0))
sig <- min(length(dm_up),length(dm_dn))
confects <- limma_confects(fit.reduced, coef=3, fdr=0.05)
## Warning: Zero sample variances detected, have been offset away from zero
if (sig > 10) {
dmr <- run_dmrcate_epic(mx=as.matrix(Mval),design=design)
dmr
#%>% kbl() %>% kable_paper("hover", full_width = F)
comp <- compartment_enrichment(dma)
comp
#%>% kbl() %>% kable_paper("hover", full_width = F)
cgi <- cgi_enrichment(dma)
cgi
#%>% kbl() %>% kable_paper("hover", full_width = F)
} else {
dmr <- NULL
comp <- NULL
cgi <- NULL
}
## Warning: Zero sample variances detected, have been offset away from zero
## Warning: Zero sample variances detected, have been offset away from zero
## Your contrast returned 183544 individually significant probes. We recommend the default setting of pcutoff in dmrcate().
## Fitting chr1...
## Fitting chr2...
## Fitting chr3...
## Fitting chr4...
## Fitting chr5...
## Fitting chr6...
## Fitting chr7...
## Fitting chr8...
## Fitting chr9...
## Fitting chr10...
## Fitting chr11...
## Fitting chr12...
## Fitting chr13...
## Fitting chr14...
## Fitting chr15...
## Fitting chr16...
## Fitting chr17...
## Fitting chr18...
## Fitting chr19...
## Fitting chr20...
## Fitting chr21...
## Fitting chr22...
## Demarcating regions...
## Done!
## using temporary cache /tmp/Rtmp6gfoLw/BiocFileCache
## snapshotDate(): 2020-04-27
## see ?DMRcatedata and browseVignettes('DMRcatedata') for documentation
## downloading 1 resources
## retrieving 1 resource
## loading from cache
## $up_comp
## all up OR fisherPval lowerCI upperCI
## Island 156902 27292 0.8567255 2.972195e-101 0.8445075 0.8691342
## N_Shelf 31240 5468 0.8835002 1.324532e-16 0.8575090 0.9101721
## N_Shore 81300 19114 1.3235620 2.509203e-215 1.3008871 1.3465427
## OpenSea 476329 89959 0.9415683 2.182548e-27 0.9313344 0.9518549
## S_Shelf 28983 5069 0.8829298 1.101447e-15 0.8559539 0.9105920
## S_Shore 69369 15975 1.2787267 3.234448e-143 1.2550936 1.3026986
##
## $dn_comp
## all dn OR fisherPval lowerCI upperCI
## Island 156902 22050 0.2708984 0.000000e+00 0.2668116 0.2749963
## N_Shelf 31240 11438 1.1659579 3.905095e-37 1.1388072 1.1937296
## N_Shore 81300 23536 0.8010437 4.818565e-169 0.7883692 0.8138727
## OpenSea 476329 192889 2.1688519 0.000000e+00 2.1481638 2.1895540
## S_Shelf 28983 10692 1.1799579 4.378059e-40 1.1515373 1.2090689
## S_Shore 69369 20126 0.8063690 3.159001e-138 0.7926771 0.8202480
A summary of results for all probes considered.
summary(decideTests(fit.reduced))
## (Intercept) ss$sexMale ss$age ss$bmi ss$dm2_medsYes ss$nafld_stage3_4
## Down 313466 50775 99124 1144 3281 280731
## NotSig 47208 630928 660579 841458 822671 400515
## Up 483449 162420 84420 1521 18171 162877
A table of the top results, ranked by small p-values.
head(dma,20)
## Row.names UCSC_RefGene_Name
## 266165 cg08033828 SHC3
## 740972 cg24000206 TGFB2;TGFB2
## 185410 cg05550145
## 624585 cg19686543 CNTNAP2;MIR548T
## 65594 cg01931861
## 694991 cg22317887 HNF1B;HNF1B;HNF1B
## 580547 cg18064706 PTPRN2;PTPRN2;PTPRN2
## 175797 cg05252126
## 76912 cg02273014
## 763623 cg24813323 PPM1H
## 386463 cg11843868 LOC101927697
## 328886 cg09998038
## 324946 cg09870609
## 399808 cg12278018
## 17471 cg00502641
## 437324 cg13502568 LOC101928231;LINC01010;LINC01010
## 604733 cg18941917
## 811992 cg26568031
## 346063 cg10532358
## 755366 cg24522654
## Regulatory_Feature_Group Islands_Name
## 266165
## 740972
## 185410
## 624585
## 65594
## 694991
## 580547 chr7:157647800-157648007
## 175797 Unclassified
## 76912
## 763623
## 386463
## 328886
## 324946 Unclassified
## 399808 Unclassified_Cell_type_specific
## 17471
## 437324 Unclassified_Cell_type_specific
## 604733
## 811992
## 346063 Unclassified_Cell_type_specific
## 755366
## Relation_to_Island logFC AveExpr t P.Value
## 266165 OpenSea -0.9165711 -2.0603446 -21.77509 1.784450e-66
## 740972 OpenSea -1.1632408 -0.5854563 -21.58987 9.675546e-66
## 185410 OpenSea -1.3680724 -0.1535463 -21.36053 7.872113e-65
## 624585 OpenSea -0.8606863 0.7553051 -20.76715 1.812467e-62
## 65594 OpenSea -0.8773930 -0.1923290 -20.71958 2.805587e-62
## 694991 OpenSea -0.7617657 0.2906012 -20.44626 3.461434e-61
## 580547 N_Shore -1.1193656 3.5856305 -20.41751 4.509551e-61
## 175797 OpenSea -0.9083733 0.7105989 -20.39905 5.344423e-61
## 76912 OpenSea -1.0602971 0.1638202 -20.23377 2.447379e-60
## 763623 OpenSea -1.0217421 0.8390327 -20.22372 2.684688e-60
## 386463 OpenSea -1.0759494 -0.5879595 -20.11372 7.395651e-60
## 328886 OpenSea -0.8205436 0.9450668 -19.96962 2.791585e-59
## 324946 OpenSea -1.0846984 -2.0681303 -19.95640 3.153335e-59
## 399808 OpenSea -0.9325578 1.1948318 -19.91320 4.696925e-59
## 17471 OpenSea -0.9788552 1.1326399 -19.88952 5.843222e-59
## 437324 OpenSea -0.9769516 0.8607582 -19.84858 8.524418e-59
## 604733 OpenSea -0.9450723 0.2722685 -19.78445 1.540349e-58
## 811992 OpenSea -1.0055359 0.7260904 -19.77994 1.605775e-58
## 346063 OpenSea -0.9033109 0.4658277 -19.76349 1.869081e-58
## 755366 OpenSea -1.0652834 1.0507701 -19.64931 5.361729e-58
## adj.P.Val B
## 266165 1.506295e-60 140.5916
## 740972 4.083675e-60 138.9177
## 185410 2.215010e-59 136.8418
## 624585 3.824862e-57 131.4549
## 65594 4.736521e-57 131.0221
## 694991 4.869794e-56 128.5332
## 580547 5.438022e-56 128.2711
## 175797 5.639188e-56 128.1029
## 76912 2.266207e-55 126.5956
## 763623 2.266207e-55 126.5039
## 386463 5.675308e-55 125.5000
## 328886 1.963701e-54 124.1840
## 324946 2.047541e-54 124.0633
## 399808 2.831987e-54 123.6685
## 17471 3.288265e-54 123.4522
## 437324 4.497286e-54 123.0780
## 604733 7.530397e-54 122.4918
## 811992 7.530397e-54 122.4506
## 346063 8.303864e-54 122.3001
## 755366 2.262980e-53 121.2560
#%>% kbl() %>% kable_paper("hover", full_width = F)
Volcano plot. Gives an overview of the number of probes that gave a statistically significant differential methylation signal with limma (FDR<0.05; red) compared to not significant (grey). Also given an idea about whether the results are balanced in terms of hyper- or hypo-methylation.
Beeswarm plots of the 15 CpG probes with the smallest limma p-values. This allows us to visualise the intragroup and between group methylation differences.
Heatmap of the 50 CpG probes with the smallest limma p-values. Again this is a good way to visualise the intragroup and between group methylation differences.
Beeswarm plots of the 15 CpG probes with the largest confident effect sizes. The selection of probes with the largest confident effect sizes is conducted with the topconfects package (Harrison et al, 2019).
Heatmap of the 50 CpG probes with largest confident effect sizes.
Circos plot of the differentially methylate regions DMRs as identified by DMRcate.
make_dm_plots(dm = dm ,name="GSE180474_NAFLD", mx=beta ,mxs=as.matrix(Mval), groups = ss$nafld_stage,
confects=confects,dmr = dmr, comp=comp, cgi=cgi)
##
## RCircos.Core.Components initialized.
## Type ?RCircos.Reset.Plot.Parameters to see how to modify the core components.
## Tiles plot may use more than one track. Please select correct area for next track if necessary.
##
## Tiles plot may use more than one track. Please select correct area for next track if necessary.
dmr <- as.data.frame(dmr)
dmr_up <- subset(dmr, meandiff > 0.01 & Stouffer < 0.01)
DMR_UP_N=nrow(dmr_up)
head(dmr_up)
## [1] seqnames start end width
## [5] strand no.cpgs min_smoothed_fdr Stouffer
## [9] HMFDR Fisher maxdiff meandiff
## [13] overlapping.genes
## <0 rows> (or 0-length row.names)
#%>% kbl() %>% kable_paper("hover", full_width = F)
dmr_dn <- subset(dmr, meandiff < 0.01 & Stouffer < 0.01)
DMR_DN_N=nrow(dmr_dn)
head(dmr_dn)
## seqnames start end width strand no.cpgs min_smoothed_fdr
## 1 chr11 31824327 31841980 17654 * 101 6.305051e-202
## 2 chr7 27203430 27214915 11486 * 80 1.757143e-183
## 3 chr10 8088904 8099218 10315 * 71 0.000000e+00
## 4 chr12 4378267 4386474 8208 * 71 0.000000e+00
## 5 chr3 147122315 147132559 10245 * 70 0.000000e+00
## 6 chr14 37123678 37136391 12714 * 66 1.669480e-112
## Stouffer HMFDR Fisher maxdiff meandiff
## 1 0.000000e+00 4.199951e-33 0 0.002707705 0.0007226308
## 2 0.000000e+00 5.967729e-31 0 0.002643410 0.0007859263
## 3 0.000000e+00 2.595837e-37 0 0.002847554 0.0008599398
## 4 3.544871e-229 3.029838e-45 0 0.003038375 0.0005160239
## 5 0.000000e+00 1.740315e-37 0 0.006602923 0.0025928528
## 6 0.000000e+00 1.398930e-24 0 0.002846936 0.0007260854
## overlapping.genes
## 1 RCN1, PAX6
## 2 HOXA10-AS, HOXA9, RP1-170O19.20, MIR196B, HOXA10
## 3 RP11-379F12.4, GATA3, GATA3-AS1, RP11-379F12.3
## 4 CCND2, CCND2-AS1, CCND2-AS2
## 5 ZIC1, ZIC4
## 6 PAX9, RP11-964E11.2
#%>% kbl() %>% kable_paper("hover", full_width = F)
HEADER=paste(DMR_UP_N,"DMRs hypermethylated;", DMR_DN_N, "DMRs hypomethylated")
plot(dmr$meandiff, -log(dmr$Stouffer), main=HEADER,
xlab="mean delta beta value", ylab="-log10 Stouffer value")
grid()
write.table(dma,file="GSE180474_dm.tsv",sep="\t",quote=FALSE)
saveRDS(dma,file="GSE180474_dm.rds")
TODO
sessionInfo()
## R version 4.0.1 (2020-06-06)
## Platform: x86_64-conda_cos6-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.2 LTS
##
## Matrix products: default
## BLAS/LAPACK: /ceph-g/opt/miniconda3/envs/R40/lib/libopenblasp-r0.3.9.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] grid stats4 parallel stats graphics grDevices utils
## [8] datasets methods base
##
## other attached packages:
## [1] ENmix_1.25.1
## [2] doParallel_1.0.16
## [3] qqman_0.1.8
## [4] RCircos_1.2.1
## [5] beeswarm_0.4.0
## [6] forestplot_2.0.1
## [7] checkmate_2.0.0
## [8] magrittr_1.5
## [9] reshape2_1.4.4
## [10] gplots_3.1.1
## [11] eulerr_6.1.1
## [12] GEOquery_2.56.0
## [13] RColorBrewer_1.1-2
## [14] IlluminaHumanMethylation450kmanifest_0.4.0
## [15] topconfects_1.4.0
## [16] DMRcatedata_2.6.0
## [17] ExperimentHub_1.14.2
## [18] AnnotationHub_2.20.2
## [19] BiocFileCache_1.12.1
## [20] dbplyr_1.4.4
## [21] DMRcate_2.2.3
## [22] limma_3.44.3
## [23] missMethyl_1.22.0
## [24] IlluminaHumanMethylationEPICanno.ilm10b4.hg19_0.6.0
## [25] IlluminaHumanMethylation450kanno.ilmn12.hg19_0.6.0
## [26] minfi_1.34.0
## [27] bumphunter_1.30.0
## [28] locfit_1.5-9.4
## [29] iterators_1.0.12
## [30] foreach_1.5.0
## [31] Biostrings_2.56.0
## [32] XVector_0.28.0
## [33] SummarizedExperiment_1.18.2
## [34] DelayedArray_0.14.1
## [35] matrixStats_0.61.0
## [36] Biobase_2.48.0
## [37] GenomicRanges_1.40.0
## [38] GenomeInfoDb_1.24.2
## [39] IRanges_2.22.2
## [40] S4Vectors_0.26.1
## [41] BiocGenerics_0.34.0
## [42] R.utils_2.11.0
## [43] R.oo_1.24.0
## [44] R.methodsS3_1.8.1
## [45] plyr_1.8.6
##
## loaded via a namespace (and not attached):
## [1] tidyselect_1.1.0 RSQLite_2.2.8
## [3] AnnotationDbi_1.50.3 htmlwidgets_1.5.1
## [5] BiocParallel_1.22.0 lpSolve_5.6.15
## [7] munsell_0.5.0 codetools_0.2-16
## [9] preprocessCore_1.50.0 statmod_1.4.36
## [11] colorspace_1.4-1 knitr_1.28
## [13] rstudioapi_0.11 GenomeInfoDbData_1.2.3
## [15] bit64_4.0.5 rhdf5_2.32.4
## [17] vctrs_0.3.1 generics_0.0.2
## [19] xfun_0.15 biovizBase_1.36.0
## [21] R6_2.4.1 illuminaio_0.30.0
## [23] AnnotationFilter_1.12.0 bitops_1.0-7
## [25] cachem_1.0.6 reshape_0.8.8
## [27] assertthat_0.2.1 promises_1.1.1
## [29] scales_1.1.1 bsseq_1.24.4
## [31] nnet_7.3-14 gtable_0.3.0
## [33] ensembldb_2.12.1 rlang_0.4.12
## [35] genefilter_1.70.0 calibrate_1.7.7
## [37] splines_4.0.1 rtracklayer_1.48.0
## [39] lazyeval_0.2.2 impute_1.62.0
## [41] DSS_2.36.0 dichromat_2.0-0
## [43] BiocManager_1.30.16 yaml_2.2.1
## [45] GenomicFeatures_1.40.1 backports_1.1.8
## [47] httpuv_1.5.4 Hmisc_4.6-0
## [49] tools_4.0.1 nor1mix_1.3-0
## [51] ggplot2_3.3.5 ellipsis_0.3.1
## [53] siggenes_1.62.0 dynamicTreeCut_1.63-1
## [55] Rcpp_1.0.7 base64enc_0.1-3
## [57] progress_1.2.2 zlibbioc_1.34.0
## [59] purrr_0.3.4 RCurl_1.98-1.5
## [61] prettyunits_1.1.1 rpart_4.1-15
## [63] openssl_1.4.1 cluster_2.1.0
## [65] data.table_1.12.8 ProtGenerics_1.20.0
## [67] RPMM_1.25 hms_0.5.3
## [69] mime_0.9 evaluate_0.14
## [71] xtable_1.8-4 XML_3.99-0.8
## [73] jpeg_0.1-9 irr_0.84.1
## [75] mclust_5.4.8 readxl_1.3.1
## [77] gridExtra_2.3 compiler_4.0.1
## [79] biomaRt_2.44.4 tibble_3.0.1
## [81] KernSmooth_2.23-17 crayon_1.3.4
## [83] htmltools_0.5.0 later_1.1.0.1
## [85] Formula_1.2-4 geneplotter_1.66.0
## [87] tidyr_1.1.0 DBI_1.1.0
## [89] MASS_7.3-51.6 rappdirs_0.3.3
## [91] Matrix_1.2-18 readr_1.3.1
## [93] permute_0.9-5 quadprog_1.5-8
## [95] Gviz_1.32.0 pkgconfig_2.0.3
## [97] GenomicAlignments_1.24.0 foreign_0.8-80
## [99] xml2_1.3.2 annotate_1.66.0
## [101] rngtools_1.5.2 multtest_2.44.0
## [103] beanplot_1.2 doRNG_1.8.2
## [105] scrime_1.3.5 stringr_1.4.0
## [107] VariantAnnotation_1.34.0 digest_0.6.25
## [109] rmarkdown_2.3 base64_2.0
## [111] cellranger_1.1.0 htmlTable_2.3.0
## [113] edgeR_3.30.3 DelayedMatrixStats_1.10.1
## [115] curl_4.3 shiny_1.4.0.2
## [117] Rsamtools_2.4.0 gtools_3.9.2
## [119] lifecycle_0.2.0 nlme_3.1-148
## [121] Rhdf5lib_1.10.1 askpass_1.1
## [123] BSgenome_1.56.0 pillar_1.4.4
## [125] lattice_0.20-41 fastmap_1.0.1
## [127] httr_1.4.1 survival_3.2-3
## [129] interactiveDisplayBase_1.26.3 glue_1.4.1
## [131] png_0.1-7 BiocVersion_3.11.1
## [133] bit_4.0.4 stringi_1.4.6
## [135] HDF5Array_1.16.1 blob_1.2.1
## [137] org.Hs.eg.db_3.11.4 caTools_1.18.2
## [139] latticeExtra_0.6-29 memoise_2.0.0
## [141] dplyr_1.0.0