Run methylationGLMM_T1T2.R

methylationGLMM_T1T2(
  inputPheno = "rData/preprocessingPheno/mergeData/phenoBetaT1T2.RData",
  outputLogs = "logs/",
  outputRData = "rData/methylationGLMM_T1T2/models",
  outputPlots = "figures/methylationGLMM_T1T2",
  personVar = "person",
  timeVar = "Timepoint",
  phenotypes =
    "DASS_Depression,DASS_Anxiety,DASS_Stress,PCL5_TotalScore,\n                  MHCSF_TotalScore,BRS_TotalScore",
  covariates = "Sex,Age,Ethnicity,TraumaDefinition,Leukocytes,Epithelial.cells",
  factorVars = "Sex,Ethnicity,TraumaDefinition,Timepoint",
  lmeLibs = "lme4,lmerTest",
  prsMap = NULL,
  libPath = NULL,
  cpgPrefix = "cg",
  cpgLimit = NA,
  nCores = 32,
  summaryPval = NA,
  plotWidth = 2000,
  plotHeight = 1000,
  plotDPI = 150,
  interactionTerm = NULL,
  saveSignificantInteractions = TRUE,
  significantInteractionDir = "preliminaryResults/cpgs/methylationGLMM_T1T2",
  significantInteractionPval = 0.05,
  saveTxtSummaries = TRUE,
  chunkSize = NULL,
  summaryTxtDir = "preliminaryResults/summary/methylationGLMM_T1T2/lmer",
  fdrThreshold = 0.05,
  padjmethod = "fdr",
  annotationPackage = "IlluminaHumanMethylationEPICv2anno.20a1.hg38",
  annotationCols =
    "Name,chr,pos,UCSC_RefGene_Group,UCSC_RefGene_Name,\n                      Relation_to_Island,GencodeV41_Group",
  annotatedLMEOut = "data/methylationGLMM_T1T2"
)

Arguments

inputPheno

Character. Path to merged longitudinal phenotype and beta-value RData file.

outputLogs

Character. Directory for log files.

outputRData

Character. Directory for model RData outputs.

outputPlots

Character. Directory for output plots.

personVar

Character. Subject identifier variable.

timeVar

Character. Time variable name.

phenotypes

Character. Comma-separated phenotype variables to model.

covariates

Character. Comma-separated covariate variables.

factorVars

Character. Comma-separated factor variables.

lmeLibs

Character. Mixed-effects modelling libraries.

prsMap

Character or NULL. Optional PRS mapping file.

libPath

Character or NULL. Optional library path.

cpgPrefix

Character. CpG identifier prefix.

cpgLimit

Integer or NA. Maximum number of CpGs to analyse.

nCores

Integer. Number of CPU cores to use.

summaryPval

Numeric or NA. P-value threshold for summaries.

plotWidth

Integer. Plot width in pixels.

plotHeight

Integer. Plot height in pixels.

plotDPI

Integer. Plot resolution in DPI.

interactionTerm

Character or NULL. Optional interaction term.

saveSignificantInteractions

Logical. Save significant interaction results.

significantInteractionDir

Character. Directory for significant interactions.

significantInteractionPval

Numeric. P-value threshold for significant interactions.

saveTxtSummaries

Logical. Save text summaries.

chunkSize

Integer. Number of CpGs processed per chunk.

summaryTxtDir

Character. Directory for summary text files.

fdrThreshold

Numeric. FDR threshold.

padjmethod

Character. P-value adjustment method.

annotationPackage

Character. Annotation package name.

annotationCols

Character. Annotation columns to extract.

annotatedLMEOut

Character. Output directory for annotated results.

Value

Invisibly returns NULL. This function is called for its side effects, running CpG-level longitudinal mixed-effects models and writing model results, interaction summaries, plots, and annotated tables to disk.

Examples

tmp <- tempdir()
stopifnot(dir.exists(tmp))

# \donttest{
methylationGLMM_T1T2(
  inputPheno = "rData/preprocessingPheno/mergeData/phenoBetaT1T2.RData",
  outputLogs = "logs",
  outputRData = "rData/methylationGLMM_T1T2/models",
  outputPlots = "figures/methylationGLMM_T1T2",
  personVar = "person",
  timeVar = "Timepoint",
  phenotypes = "DASS_Depression,DASS_Anxiety,DASS_Stress,
                PCL5_TotalScore,MHCSF_TotalScore,BRS_TotalScore",
  covariates = "Sex,Age,Ethnicity,TraumaDefinition,
                Leukocytes,Epithelial.cells",
  factorVars = "Sex,Ethnicity,TraumaDefinition,Timepoint",
  lmeLibs = "lme4,lmerTest",
  prsMap = NULL,
  libPath = NULL,
  cpgPrefix = "cg",
  cpgLimit = NA,
  nCores = 4,
  summaryPval = NA,
  plotWidth = 2000,
  plotHeight = 1000,
  plotDPI = 150,
  interactionTerm = "TreatvControl_Time1_vs_Time2",
  saveSignificantInteractions = TRUE,
  significantInteractionDir =
    "preliminaryResults/cpgs/methylationGLMM_T1T2",
  significantInteractionPval = 0.05,
  saveTxtSummaries = TRUE,
  chunkSize = 10000,
  summaryTxtDir =
    "preliminaryResults/summary/methylationGLMM_T1T2/lmer",
  fdrThreshold = 0.05,
  padjmethod = "fdr",
  annotationPackage =
    "IlluminaHumanMethylationEPICv2anno.20a1.hg38",
  annotationCols =
    "Name,chr,pos,UCSC_RefGene_Group,
     UCSC_RefGene_Name,Relation_to_Island,
     GencodeV41_Group",
  annotatedLMEOut = "data/methylationGLMM_T1T2"
)
#> ==== Starting DNAm LME Analysis (Timepoint 1 vs 3) ====
#> Start time:  2026-04-02 05:15:45 
#> Input phenotype + beta file:  rData/preprocessingPheno/mergeData/phenoBetaT1T2.RData 
#> Person ID variable:  person 
#> Timepoint variable:  Timepoint 
#> Phenotypes:  DASS_Depression,DASS_Anxiety,DASS_Stress,
#>                 PCL5_TotalScore,MHCSF_TotalScore,BRS_TotalScore 
#> Covariates:  Sex,Age,Ethnicity,TraumaDefinition,
#>                 Leukocytes,Epithelial.cells 
#> PRS mapping:  None 
#> Factor variables:  Sex,Ethnicity,TraumaDefinition,Timepoint 
#> LME libraries:  lme4,lmerTest 
#> Library path:  /__w/_temp/Library 
#> CpG prefix pattern:  cg 
#> CpG limit:  All CpGs 
#> Number of cores:  4 
#> Interaction term:  TreatvControl_Time1_vs_Time2 
#> Save significant interactions:  TRUE 
#> Significant interaction p-value cutoff:  0.05 
#> Directory to save significant interactions:  preliminaryResults/cpgs/methylationGLMM_T1T2 
#> Save summary TXT files:  TRUE 
#> Chunk size for processing CpGs:  10000 
#> Summary p-value threshold:  NA 
#> Padjmethod:  fdr 
#> FDR threshold for significance:  0.05 
#> Multiple testing correction method:  fdr 
#> Save significant interaction CpGs:  TRUE 
#> Significant interaction p-value cutoff:  0.05 
#> Directory to save significant interaction CpGs:  preliminaryResults/cpgs/methylationGLMM_T1T2 
#> Summary TXT output directory:  preliminaryResults/summary/methylationGLMM_T1T2/lmer 
#> Annotation package:  IlluminaHumanMethylationEPICv2anno.20a1.hg38 
#> Annotation columns:  Name,chr,pos,UCSC_RefGene_Group,
#>      UCSC_RefGene_Name,Relation_to_Island,
#>      GencodeV41_Group 
#> FDR threshold for significance:  0.05 
#> Output logs directory:  logs 
#> Directory to save annotated LME results:  data/methylationGLMM_T1T2 
#> =======================================================================
#> 
#> Loading input phenotype + beta file...
#> Warning: cannot open compressed file 'rData/preprocessingPheno/mergeData/phenoBetaT1T2.RData', probable reason 'No such file or directory'
#> Error in readChar(con, 5L, useBytes = TRUE): cannot open the connection
# }