Source: https://github.com/markziemann/TODO

Introduction

Here we are establishing the methylation profile of colorectal cancer versus healthy tissue in order to understand whether this signature can be observed in the blood of individuals who will soon be diagnosed with the disease.

baseDir=getwd()
dataDir=paste(baseDir,"/idat",sep="")

suppressPackageStartupMessages({
  library("missMethyl")
  library("limma")
  library("minfi")
  library("IlluminaHumanMethylation450kanno.ilmn12.hg19")
  library("IlluminaHumanMethylationEPICanno.ilm10b4.hg19")
  library("RColorBrewer")
  library("matrixStats")
  library("gplots")
  library("WGCNA")
  library("FlowSorted.Blood.450k")
  library("reshape2")
  library("ggplot2")
  library("missMethyl")
  library("DMRcate")
  #library("FlowSorted.Blood.EPIC")
  library("mitch")
  library("kableExtra")
  library("vioplot")
  library("RhpcBLASctl")
})

#source("../../meth_functions.R")

RhpcBLASctl::blas_set_num_threads(1)

Load data

Load the annotation data and the Epic methylation data.

This analysis is to be conducted on Ubuntu with R4.

ann <- getAnnotation(IlluminaHumanMethylationEPICanno.ilm10b4.hg19)
anno <- ann
ann_sub <- ann[,c("chr","pos","strand","Name","Islands_Name",
    "Relation_to_Island","UCSC_RefGene_Name","UCSC_RefGene_Group")]

targets_gen <- read.metharray.sheet(base=dataDir,pattern = "samplesheet.csv")
## [read.metharray.sheet] Found the following CSV files:
## [1] "/home/mark.ziemann@domain.internal.burnet.edu.au/projects/cancer_biomarkers/colorectal/GSE199057/idat/samplesheet.csv"
## Warning in FUN(X[[i]], ...): Could not infer array name for file:
## /home/mark.ziemann@domain.internal.burnet.edu.au/projects/cancer_biomarkers/colorectal/GSE199057/idat/samplesheet.csv
## Warning in FUN(X[[i]], ...): Could not infer slide name for file:
## /home/mark.ziemann@domain.internal.burnet.edu.au/projects/cancer_biomarkers/colorectal/GSE199057/idat/samplesheet.csv
targets_gen$Basename <- paste(targets_gen$SampleID,targets_gen$ChipID,sep="_")

#targets$ID = paste(targets$Sample_Group,targets_gen$Sample_Name,sep=".")
rgSet <- read.metharray.exp(base=dataDir, targets = targets_gen)

sampleNames(rgSet) <- targets_gen$SampleID

Testing MZ status

snpBetas <- getSnpBeta(rgSet)
## Loading required package: IlluminaHumanMethylationEPICmanifest
d <- dist(t(snpBetas))
hr <- hclust(d, method = "complete", members=NULL)
plot(hr,cex=0.5)

Quality control

detP <- detectionP(rgSet)
qcReport(rgSet, sampNames = targets_gen$Sample_Name, pdf="qc-report.pdf")
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: SPECIFICITY I probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: SPECIFICITY I probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: SPECIFICITY I probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: SPECIFICITY I probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: SPECIFICITY I probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: SPECIFICITY I probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: SPECIFICITY I probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: SPECIFICITY I probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: SPECIFICITY I probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: SPECIFICITY I probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: TARGET REMOVAL probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning: TARGET REMOVAL probes outside plot range
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## png 
##   2
cols <- brewer.pal(4,"Set1")

barplot(apply(detP,2,mean),
  col=as.numeric(factor(targets_gen$Sample_Name)),
  las=2,cex.names= 0.8, cex.axis=0.75,
  main="Mean detection p-values of probe signals",
  ylab="Mean detection p-value")

barplot(apply(detP,2,mean),
  col=as.numeric(factor(targets_gen$Sample_Name)),
  las=2,cex.names= 0.8, cex.axis=0.75,ylim=c(0,0.010),
  main="Mean detection p-values of probe signals",
  ylab="Mean detection p-value")

Preprocessing

mset.raw <- preprocessRaw(rgSet)

mset <- preprocessQuantile(rgSet)
## [preprocessQuantile] Mapping to genome.
## Warning in .getSex(CN = CN, xIndex = xIndex, yIndex = yIndex, cutoff = cutoff):
## An inconsistency was encountered while determining sex. One possibility is that
## only one sex is present. We recommend further checks, for example with the
## plotSex function.
## [preprocessQuantile] Fixing outliers.
## [preprocessQuantile] Quantile normalizing.

Data exploration

Using Multi-dimensional scaling (MDS) plots before filtering.

mdsPlot(mset.raw, numPositions = 1000, sampGroups = targets_gen$SampleType,
  sampNames=targets_gen$SampleID,legendPos="bottom")

mdsPlot(getBeta(mset), numPositions = 1000, sampGroups = targets_gen$SampleType,
  sampNames=targets_gen$SampleID,legendPos="bottom")

# dividing lines
abline(h=-0.4)
abline(v=0)
abline(v=1)

Filteringhead

None of the p-values are less than 0.05.

Now filter for high detection p-value and overlap with SNP.

Need to get a copy of the Xreact probes from Namitha. In the mean time I have downloaded from github - link below.

detP <- detectionP(rgSet)
badPcnt <- apply(detP,2,function(x) { length(which(x>0.01)) } )
badPcnt <- badPcnt[order(badPcnt)]

barplot(badPcnt,horiz=TRUE,las=1,cex.names=0.5)

barplot(tail(badPcnt,20),horiz=TRUE,las=1,cex.names=0.6)

badP <- apply(detP,1,function(x) { length(which(x>0.01)) } )
dim(detP)
## [1] 866091    229
length(which(badP>10))
## [1] 2302
keep <- which(badP<10)
mset[rownames(mset) %in% names(keep),]
## class: GenomicRatioSet 
## dim: 863417 229 
## metadata(0):
## assays(2): M CN
## rownames(863417): cg14817997 cg26928153 ... cg07587934 cg16855331
## rowData names(0):
## colnames(229): GSM5963195 GSM5963196 ... GSM5963422 GSM5963423
## colData names(10): SampleID ChipID ... yMed predictedSex
## Annotation
##   array: IlluminaHumanMethylationEPIC
##   annotation: ilm10b4.hg19
## Preprocessing
##   Method: Raw (no normalization or bg correction)
##   minfi version: 1.50.0
##   Manifest version: 0.3.0
gmset <- mapToGenome(mset)

#remove SNPs
gmset <- dropLociWithSnps(gmset, snps = c("CpG", "SBE"))

#Removing cross-reactive probes
XURL="https://raw.githubusercontent.com/sirselim/illumina450k_filtering/master/EPIC/13059_2016_1066_MOESM1_ESM.csv"
Xreact <- read.csv(XURL)

noXreact <- !(featureNames(gmset) %in% Xreact$X)

gmset <- gmset[noXreact,]

#Removing probes on X and Y chromosomes
autosomes <- !(featureNames(gmset) %in% ann$Name[ann$chr %in% c("chrX","chrY")])
gmset <- gmset[autosomes,]

#getBeta
beta <- getM(gmset)
saveRDS(beta,"bl_beta.rds")
df <- data.frame(t(t(colMeans(beta))))
df
##            t.t.colMeans.beta...
## GSM5963195           -0.4522591
## GSM5963196           -0.4590440
## GSM5963197           -0.4495003
## GSM5963198           -0.4582426
## GSM5963199           -0.4564599
## GSM5963200           -0.4468831
## GSM5963201           -0.4453734
## GSM5963202           -0.4475793
## GSM5963203           -0.4511926
## GSM5963204           -0.4492604
## GSM5963205           -0.4568976
## GSM5963206           -0.4530326
## GSM5963207           -0.4528074
## GSM5963208           -0.4530347
## GSM5963209           -0.4510920
## GSM5963210           -0.4536013
## GSM5963211           -0.4497951
## GSM5963212           -0.4526568
## GSM5963213           -0.4542555
## GSM5963214           -0.4547318
## GSM5963215           -0.4526220
## GSM5963216           -0.4552994
## GSM5963217           -0.4482784
## GSM5963218           -0.4498467
## GSM5963219           -0.4516084
## GSM5963220           -0.4530835
## GSM5963221           -0.4508119
## GSM5963222           -0.4504877
## GSM5963223           -0.4487403
## GSM5963224           -0.4484192
## GSM5963225           -0.4570861
## GSM5963226           -0.4554827
## GSM5963227           -0.4549813
## GSM5963228           -0.4549422
## GSM5963229           -0.4501490
## GSM5963230           -0.4571645
## GSM5963231           -0.4559823
## GSM5963232           -0.4532597
## GSM5963233           -0.4478328
## GSM5963234           -0.4524223
## GSM5963235           -0.4503846
## GSM5963236           -0.4542686
## GSM5963237           -0.4455628
## GSM5963238           -0.4521258
## GSM5963239           -0.4536309
## GSM5963240           -0.4447233
## GSM5963241           -0.4518406
## GSM5963242           -0.4511859
## GSM5963243           -0.4566999
## GSM5963244           -0.4573416
## GSM5963245           -0.4487986
## GSM5963246           -0.4559274
## GSM5963247           -0.4536898
## GSM5963248           -0.4500467
## GSM5963249           -0.4505944
## GSM5963250           -0.4492988
## GSM5963251           -0.4499512
## GSM5963252           -0.4570247
## GSM5963253           -0.4480392
## GSM5963254           -0.4523192
## GSM5963255           -0.4490351
## GSM5963256           -0.4543554
## GSM5963257           -0.4538234
## GSM5963258           -0.4559705
## GSM5963259           -0.4503331
## GSM5963260           -0.4551006
## GSM5963261           -0.4441265
## GSM5963262           -0.4482913
## GSM5963263           -0.4548238
## GSM5963264           -0.4523102
## GSM5963265           -0.4548164
## GSM5963266           -0.4513452
## GSM5963267           -0.4565563
## GSM5963268           -0.4547494
## GSM5963269           -0.4592555
## GSM5963270           -0.4551615
## GSM5963271           -0.4583738
## GSM5963272           -0.4587268
## GSM5963273           -0.4560506
## GSM5963274           -0.4560779
## GSM5963275           -0.4550299
## GSM5963276           -0.4534714
## GSM5963277           -0.4538043
## GSM5963278           -0.4537384
## GSM5963279           -0.4516112
## GSM5963280           -0.4575937
## GSM5963281           -0.4539420
## GSM5963282           -0.4479762
## GSM5963283           -0.4468552
## GSM5963284           -0.4505703
## GSM5963285           -0.4511832
## GSM5963286           -0.4491743
## GSM5963287           -0.4527217
## GSM5963288           -0.4567892
## GSM5963289           -0.4463950
## GSM5963290           -0.4530669
## GSM5963291           -0.4552670
## GSM5963292           -0.4544468
## GSM5963293           -0.4554544
## GSM5963294           -0.4530162
## GSM5963295           -0.4470009
## GSM5963296           -0.4496346
## GSM5963297           -0.4507489
## GSM5963298           -0.4571378
## GSM5963299           -0.4517780
## GSM5963300           -0.4542884
## GSM5963301           -0.4515769
## GSM5963302           -0.4542769
## GSM5963303           -0.4517336
## GSM5963304           -0.4495294
## GSM5963305           -0.4471476
## GSM5963306           -0.4509876
## GSM5963307           -0.4530807
## GSM5963308           -0.4474651
## GSM5963309           -0.4470206
## GSM5963310           -0.4494450
## GSM5963311           -0.4461584
## GSM5963312           -0.4500864
## GSM5963313           -0.4537315
## GSM5963314           -0.4468110
## GSM5963315           -0.4483353
## GSM5963316           -0.4513712
## GSM5963317           -0.4525690
## GSM5963318           -0.4529853
## GSM5963319           -0.4475666
## GSM5963320           -0.4509402
## GSM5963321           -0.4510078
## GSM5963322           -0.4583343
## GSM5963323           -0.4538682
## GSM5963324           -0.4506313
## GSM5963325           -0.4554537
## GSM5963326           -0.4570896
## GSM5963327           -0.4556497
## GSM5963328           -0.4523836
## GSM5963329           -0.4560247
## GSM5963330           -0.4492217
## GSM5963331           -0.4531329
## GSM5963332           -0.4506587
## GSM5963333           -0.4556199
## GSM5963334           -0.4580527
## GSM5963335           -0.4493509
## GSM5963336           -0.4460062
## GSM5963337           -0.4487751
## GSM5963338           -0.4517386
## GSM5963339           -0.4544339
## GSM5963340           -0.4507973
## GSM5963341           -0.4450431
## GSM5963342           -0.4478493
## GSM5963343           -0.4528945
## GSM5963344           -0.4483295
## GSM5963345           -0.4542606
## GSM5963346           -0.4582614
## GSM5963347           -0.4507631
## GSM5963348           -0.4551726
## GSM5963349           -0.4544352
## GSM5963350           -0.4493587
## GSM5963351           -0.4469356
## GSM5963352           -0.4489478
## GSM5963353           -0.4484244
## GSM5963354           -0.4456996
## GSM5963355           -0.4517703
## GSM5963356           -0.4509244
## GSM5963357           -0.4600780
## GSM5963358           -0.4386260
## GSM5963359           -0.4588715
## GSM5963360           -0.4528848
## GSM5963361           -0.4493941
## GSM5963362           -0.4508128
## GSM5963363           -0.4509190
## GSM5963364           -0.4444636
## GSM5963365           -0.4549485
## GSM5963366           -0.4504796
## GSM5963367           -0.4481690
## GSM5963368           -0.4543506
## GSM5963369           -0.4591249
## GSM5963370           -0.4526934
## GSM5963371           -0.4467806
## GSM5963372           -0.4506458
## GSM5963373           -0.4543262
## GSM5963374           -0.4543804
## GSM5963375           -0.4509359
## GSM5963376           -0.4503138
## GSM5963377           -0.4512593
## GSM5963378           -0.4524941
## GSM5963379           -0.4499781
## GSM5963380           -0.4520468
## GSM5963381           -0.4510783
## GSM5963382           -0.4472282
## GSM5963383           -0.4471737
## GSM5963384           -0.4541872
## GSM5963385           -0.4524570
## GSM5963386           -0.4498205
## GSM5963387           -0.4462015
## GSM5963388           -0.4543458
## GSM5963389           -0.4478587
## GSM5963390           -0.4413072
## GSM5963391           -0.4553445
## GSM5963392           -0.4503723
## GSM5963393           -0.4554701
## GSM5963394           -0.4457074
## GSM5963395           -0.4543128
## GSM5963396           -0.4510811
## GSM5963397           -0.4516432
## GSM5963398           -0.4446900
## GSM5963399           -0.4511243
## GSM5963400           -0.4527697
## GSM5963401           -0.4540106
## GSM5963402           -0.4556693
## GSM5963403           -0.4527953
## GSM5963404           -0.4507811
## GSM5963405           -0.4451989
## GSM5963406           -0.4565764
## GSM5963407           -0.4547207
## GSM5963408           -0.4531431
## GSM5963409           -0.4560463
## GSM5963410           -0.4533417
## GSM5963411           -0.4430816
## GSM5963412           -0.4564433
## GSM5963413           -0.4546208
## GSM5963414           -0.4531591
## GSM5963415           -0.4507408
## GSM5963416           -0.4555263
## GSM5963417           -0.4564931
## GSM5963418           -0.4503560
## GSM5963419           -0.4544896
## GSM5963420           -0.4516113
## GSM5963421           -0.4442976
## GSM5963422           -0.4480022
## GSM5963423           -0.4541554
#Relative log expression (RLE plot)
mvals <- getM(gmset)
medSq <- apply(mvals, 1, median)
YSq <- mvals - medSq

boxplot(YSq,outline=FALSE,ylim=c(-1.5,1.5),
  ylab="Relative Log Methylation Value", cex=0.2 )

MDS plots generation after filtering

pal <- brewer.pal(8, "Dark2")

cols <- as.character(as.numeric(factor(targets_gen$SampleType)))

cols <- gsub("4","red",gsub("3","black",gsub("2","green",gsub("1","blue",cols))))

mds1Sq <- plotMDS(getBeta(gmset), top=1000, gene.selection="common",dim.plot=c(1,2), col=cols)

mds2Sq <- plotMDS(getBeta(gmset), top=1000, gene.selection="common",dim.plot=c(1,3), col=cols)

mds3Sq <- plotMDS(getBeta(gmset), top=1000, gene.selection="common",dim.plot=c(2,3), col=cols)

mds4Sq <- plotMDS(getBeta(gmset), top=1000, gene.selection="common",dim.plot=c(3,4), col=cols)

plotMDS(mds1Sq, xlab="Dimension 1", ylab="Dimension 2",
  col=cols, dim=c(1,2), labels=targets_gen$SampleID)
legend("bottomright",bg="white",col=c("blue","green","black","red"),
  cex=.7,pch=1,legend=c("control","normal","platecontrol","tumor"))

plotMDS(mds2Sq, xlab="Dimension 1", ylab="Dimension 3",
  col=cols, dim=c(1,3), labels=targets_gen$SampleID)
legend("bottomright",bg="white",col=pal,cex=.7,pch=1,legend=0:1)

plotMDS(mds3Sq, xlab="Dimension 2", ylab="Dimension 3",
  col=cols,dim=c(2,3), labels=targets_gen$SampleID)
legend("bottomright",bg="white",col=pal,cex=.7,pch=1,legend=0:1)

plotMDS(mds4Sq, xlab="Dimension 3", ylab="Dimension 4",
  col=cols,dim=c(3,4), labels=targets_gen$SampleID)
legend("bottomright",bg="white",col=pal,cex=.7,pch=1,legend=0:1)

Regression analysis for cancer

Tumor vs normal

ss <- subset(targets_gen,SampleType == "normal" | SampleType == "tumor" )
cancer <- grepl("tumor",ss$SampleType)
mvals2 <- mvals[,which(colnames(mvals) %in% ss$SampleID)]
colnames(mvals2) == ss$SampleID
##   [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [16] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [31] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [46] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [61] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [76] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [91] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [106] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [121] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [136] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [151] TRUE TRUE TRUE TRUE
design <- model.matrix(~ cancer )
fit <- lmFit(mvals2, design)
fit <- eBayes(fit)
summary(decideTests(fit))
##        (Intercept) cancerTRUE
## Down        355227     265911
## NotSig       33461     227244
## Up          387833     283366
top <- topTable(fit,coef="cancerTRUE",num=Inf, sort.by = "P")

nrow(subset(top,adj.P.Val < 0.05))
## [1] 549277
nrow(subset(top,P.Value < 1e-4))
## [1] 370215
output <-merge(ann_sub,top,by.x="Name",by.y="row.names")
output <- output[order(output$P.Value),]
write.csv(output, file="GSE199057_limma.csv",row.names=FALSE)
output <- subset(output,P.Value<1e-4)
head(output,30) %>% kbl() %>% kable_paper("hover", full_width = F)
Name chr pos strand Islands_Name Relation_to_Island UCSC_RefGene_Name UCSC_RefGene_Group logFC AveExpr t P.Value adj.P.Val B
cg18430990 chr1 1475941
chr1:1476093-1476669 N_Shore TMEM240 TSS1500 2.258776 -1.6479870 28.17418 0 0 132.99333
cg16306898 chr1 1475675
chr1:1476093-1476669 N_Shore C1orf70 1stExon 3.444725 -2.8032185 26.80747 0 0 126.67436
cg16601494 chr1 1475737
chr1:1476093-1476669 N_Shore C1orf70;C1orf70 5’UTR;1stExon 3.973390 -2.2051095 26.51770 0 0 125.30603
cg17301223 chr8 145106438
chr8:145103285-145108027 Island OPLAH Body 2.883374 -1.0075345 26.12827 0 0 123.45114
cg03241244 chr12 122017052
chr12:122016170-122017693 Island KDM2B;KDM2B Body;Body 3.747524 -1.7793317 25.27802 0 0 119.33662
cg16300300 chr13 28501366
chr13:28501859-28502090 N_Shore 2.629925 -1.2300234 24.80718 0 0 117.01952
cg27200446 chr6 41606439
chr6:41604583-41606663 Island MDFI 5’UTR 3.389582 -2.1048523 23.78466 0 0 111.89105
cg01029623 chr12 122016779
chr12:122016170-122017693 Island KDM2B;KDM2B Body;Body 2.193650 -1.9600615 23.54175 0 0 110.65317
cg05649391 chr11 47359115
chr11:47359953-47360216 N_Shore MYBPC3 Body -2.337737 0.2403246 -23.40648 0 0 109.96050
cg06319475 chr8 145105829
chr8:145103285-145108027 Island 3.021098 -2.2918041 23.38455 0 0 109.84798
cg01883425 chr6 41606770
chr6:41606994-41607238 N_Shore MDFI Body 2.738443 -2.0105909 23.30530 0 0 109.44084
cg15487867 chr1 1475742
chr1:1476093-1476669 N_Shore C1orf70 TSS200 2.421148 -1.8350032 23.22534 0 0 109.02926
cg18601167 chr7 752286
chr7:750788-751237 S_Shore PRKAR1B;PRKAR1B;PRKAR1B;PRKAR1B;PRKAR1B;PRKAR1B 5’UTR;5’UTR;TSS200;5’UTR;5’UTR;5’UTR 3.420061 -1.5035629 22.62091 0 0 105.89130
cg14861089 chr10 102895043
chr10:102893660-102895059 Island TLX1 Body 3.139865 -1.2255470 22.54158 0 0 105.47592
cg10359157 chr13 51418020
chr13:51417371-51418149 Island DLEU7 TSS200 1.727497 0.5874270 22.42753 0 0 104.87733
cg17093995 chr7 49815502
chr7:49813008-49815752 Island VWC2 Body 3.277903 -2.6109129 22.42271 0 0 104.85200
cg26256223 chr8 145106582
chr8:145103285-145108027 Island OPLAH Body 3.529006 -2.4194993 22.40632 0 0 104.76580
cg14997226 chr2 100938813
chr2:100937779-100939059 Island LONRF2;LONRF2 5’UTR;1stExon 2.987236 -3.3751368 22.30962 0 0 104.25666
cg14015706 chr9 132382433
chr9:132382432-132383004 Island C9orf50 1stExon 3.459661 -2.9570645 22.21443 0 0 103.75433
cg10526659 chr2 182322058
chr2:182321761-182323029 Island ITGA4;ITGA4 5’UTR;1stExon 3.215914 -2.7546845 21.98872 0 0 102.55843
cg09383816 chr8 67344556
chr8:67344497-67344989 Island ADHFE1 TSS200 3.223970 -2.0480275 21.98013 0 0 102.51279
cg19283840 chr8 67344642
chr8:67344497-67344989 Island ADHFE1 TSS200 3.150725 -2.2809160 21.89462 0 0 102.05791
cg18973112 chr9 132382463
chr9:132382432-132383004 Island NTMT1;NTMT1;C9orf50 TSS200;5’UTR;1stExon 2.987762 -1.7630983 21.81598 0 0 101.63869
cg07347746 chr11 103742582
OpenSea -2.266295 0.4458966 -21.70648 0 0 101.05371
cg13895235 chr7 752292
chr7:750788-751237 S_Shore PRKAR1B;PRKAR1B;PRKAR1B;PRKAR1B;PRKAR1B;PRKAR1B 5’UTR;5’UTR;TSS200;5’UTR;5’UTR;5’UTR 2.557835 -1.0357891 21.61661 0 0 100.57238
cg07630265 chr7 151585552
OpenSea -2.607808 0.5408978 -21.59037 0 0 100.43163
cg06952671 chr2 182322268
chr2:182321761-182323029 Island ITGA4;ITGA4 5’UTR;1stExon 3.419490 -2.2105665 21.54666 0 0 100.19699
cg11202584 chr3 142839835
chr3:142837885-142840838 Island CHST2 Body 2.681901 -2.2757293 21.54057 0 0 100.16429
cg10846936 chr17 78151814
chr17:78155252-78155455 N_Shelf CARD14;CARD14;CARD14 Body;TSS1500;TSS1500 -1.809861 -0.5184186 -21.29188 0 0 98.82445
cg08090772 chr8 67344640
chr8:67344497-67344989 Island ADHFE1 TSS200 2.853019 -2.4225288 21.17134 0 0 98.17208
saveRDS(design, "GSE199057_design.rds")
saveRDS(mvals, "GSE199057_mvals.rds")
saveRDS(top, "GSE199057_limma.rds")

Regression analysis for cancer diagnosis

These are non-tumor tissues from control participants and participants diagnosed with cancer.

ss <- subset(targets_gen,SampleType == "control" | SampleType == "normal" )
cancer <- grepl("normal",ss$SampleType)
mvals2 <- mvals[,which(colnames(mvals) %in% ss$SampleID)]
colnames(mvals2) == ss$SampleID
##   [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [16] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [31] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [46] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [61] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [76] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [91] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [106] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [121] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [136] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
design <- model.matrix(~ cancer )
fit <- lmFit(mvals2, design)
fit <- eBayes(fit)
summary(decideTests(fit))
##        (Intercept) cancerTRUE
## Down        361208     190157
## NotSig       19647     388873
## Up          395666     197491
top <- topTable(fit,coef="cancerTRUE",num=Inf, sort.by = "P")

nrow(subset(top,adj.P.Val < 0.05))
## [1] 387648
nrow(subset(top,P.Value < 1e-4))
## [1] 212803
output <-merge(ann_sub,top,by.x="Name",by.y="row.names")
output <- output[order(output$P.Value),]
write.csv(output, file="GSE199057_2_limma.csv",row.names=FALSE)
output <- subset(output,P.Value<1e-4)
head(output,30) %>% kbl() %>% kable_paper("hover", full_width = F)
Name chr pos strand Islands_Name Relation_to_Island UCSC_RefGene_Name UCSC_RefGene_Group logFC AveExpr t P.Value adj.P.Val B
cg18978163 chr9 131448476
chr9:131450972-131452682 N_Shelf SET;SET Body;Body 1.5285623 -2.7960484 14.88976 0 0 59.95158
cg19341977 chr15 76632813
chr15:76632262-76635515 Island ISL2 Body 1.1205429 -3.5587029 13.48903 0 0 51.74366
cg19025804 chr16 57844416
OpenSea LOC388282 TSS200 1.7522720 -3.7270672 13.32256 0 0 50.75903
cg07931190 chr19 55858037
chr19:55857600-55858055 Island SUV420H2 Body -0.8243853 2.8822013 -13.30435 0 0 50.65118
cg00848945 chr12 2800919
chr12:2800139-2801062 Island CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C 3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR 1.7129508 -3.0509526 13.28657 0 0 50.54594
cg15306126 chr12 46663900
chr12:46661054-46663408 S_Shore SLC38A1;SLC38A1;SLC38A1;SLC38A1 TSS1500;TSS1500;TSS1500;TSS1500 1.1714593 -3.0409949 13.28516 0 0 50.53756
cg18592195 chr1 227963171
OpenSea SNAP47 Body -1.4411082 1.7230541 -12.97442 0 0 48.69512
cg11615029 chr17 48263189
OpenSea COL1A1 Body -1.2151720 2.2231717 -12.97115 0 0 48.67571
cg04884579 chr7 143088472
OpenSea EPHA1 3’UTR -0.6659500 0.5878094 -12.92228 0 0 48.38551
cg12350325 chr12 2800909
chr12:2800139-2801062 Island CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C;CACNA1C 3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR;3’UTR 1.6750048 -2.2183545 12.85472 0 0 47.98417
cg06426689 chr22 24572683
OpenSea CABIN1;CABIN1;CABIN1 Body;Body;Body -1.0640323 1.0709505 -12.70674 0 0 47.10459
cg21946699 chr16 57844347
OpenSea LOC388282 TSS1500 1.7389575 -4.7240514 12.68828 0 0 46.99477
cg16640865 chr11 72301558
chr11:72301302-72301746 Island PDE2A;PDE2A;PDE2A;PDE2A Body;Body;Body;Body 1.0026850 -1.9082069 12.64645 0 0 46.74594
cg19731612 chr5 176559334
chr5:176558852-176561652 Island NSD1;NSD1 TSS1500;TSS1500 -1.2299757 0.7790177 -12.48151 0 0 45.76434
cg02190350 chr11 72295716
chr11:72295167-72295875 Island PDE2A;PDE2A;PDE2A;PDE2A Body;Body;Body;Body 0.6559188 -2.3503499 12.38601 0 0 45.19567
cg09583317 chr2 241501310
chr2:241499582-241500785 S_Shore ANKMY1;DUSP28 TSS1500;3’UTR 1.2236577 -3.5531406 12.37394 0 0 45.12374
cg24696715 chr14 76446681
chr14:76448623-76449389 N_Shore TGFB3 Body -0.9524436 0.4703782 -12.37212 0 0 45.11292
cg09973405 chr17 53497573
chr17:53498243-53499546 N_Shore MMD Body 1.0773392 -3.0678978 12.32443 0 0 44.82887
cg13749815 chr15 76632420
chr15:76632262-76635515 Island ISL2 Body 1.0013496 -3.3697141 12.31553 0 0 44.77585
cg01884917 chr17 1038155
OpenSea ABR;ABR Body;5’UTR -0.9201456 2.0379228 -12.30485 0 0 44.71222
cg07796897 chr10 6018225
chr10:6018944-6020073 N_Shore IL15RA;IL15RA;IL15RA;IL15RA;IL15RA Body;Body;Body;Body;5’UTR 1.5581252 -3.7672696 12.29212 0 0 44.63635
cg03054277 chr1 228400217
chr1:228399471-228402037 Island OBSCN;OBSCN Body;Body -0.8547760 0.6634182 -12.24453 0 0 44.35281
cg25252585 chr19 35633972
chr19:35633847-35634629 Island FXYD7 TSS200 0.9762735 -2.5583714 12.20323 0 0 44.10672
cg04275695 chr6 149806273
OpenSea ZC3H12D TSS200 1.3737458 -3.4303346 12.16327 0 0 43.86857
cg25735490 chr17 48263204
OpenSea COL1A1 Body -1.1979340 2.0734410 -12.12681 0 0 43.65128
cg22399111 chr8 142295325
chr8:142295218-142295879 Island -1.0340487 2.8841161 -12.07311 0 0 43.33119
cg17276002 chr10 75172806
chr10:75173411-75173950 N_Shore ANXA7;ANXA7 5’UTR;5’UTR 1.3074156 -2.9153944 12.06112 0 0 43.25969
cg22330763 chr6 44194767
chr6:44191278-44191872 S_Shelf SLC29A1;SLC29A1;SLC29A1;SLC29A1;SLC29A1 5’UTR;5’UTR;5’UTR;5’UTR;5’UTR -0.9630858 0.9280218 -12.05276 0 0 43.20988
cg13583230 chr14 24809297
chr14:24808635-24808992 S_Shore RIPK3 TSS200 1.0981712 -3.2420408 12.01943 0 0 43.01120
cg05802478 chr3 195634844
chr3:195635359-195636895 N_Shore TNK2 5’UTR 1.0918435 -3.8367612 12.00493 0 0 42.92476
saveRDS(design, "GSE199057_2_design.rds")
saveRDS(mvals, "GSE199057_2_mvals.rds")
saveRDS(top, "GSE199057_2_limma.rds")

Session information

sessionInfo()
## R version 4.4.1 (2024-06-14)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 22.04.5 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
## 
## 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       
## 
## time zone: Australia/Melbourne
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] parallel  stats4    stats     graphics  grDevices utils     datasets 
## [8] methods   base     
## 
## other attached packages:
##  [1] IlluminaHumanMethylationEPICmanifest_0.3.0         
##  [2] RhpcBLASctl_0.23-42                                
##  [3] vioplot_0.5.0                                      
##  [4] zoo_1.8-12                                         
##  [5] sm_2.2-6.0                                         
##  [6] kableExtra_1.4.0                                   
##  [7] mitch_1.19.3                                       
##  [8] DMRcate_3.0.10                                     
##  [9] ggplot2_3.5.1                                      
## [10] reshape2_1.4.4                                     
## [11] FlowSorted.Blood.450k_1.42.0                       
## [12] WGCNA_1.73                                         
## [13] fastcluster_1.2.6                                  
## [14] dynamicTreeCut_1.63-1                              
## [15] gplots_3.2.0                                       
## [16] RColorBrewer_1.1-3                                 
## [17] limma_3.60.6                                       
## [18] missMethyl_1.38.0                                  
## [19] IlluminaHumanMethylationEPICanno.ilm10b4.hg19_0.6.0
## [20] IlluminaHumanMethylation450kanno.ilmn12.hg19_0.6.1 
## [21] minfi_1.50.0                                       
## [22] bumphunter_1.46.0                                  
## [23] locfit_1.5-9.10                                    
## [24] iterators_1.0.14                                   
## [25] foreach_1.5.2                                      
## [26] Biostrings_2.72.1                                  
## [27] XVector_0.44.0                                     
## [28] SummarizedExperiment_1.34.0                        
## [29] Biobase_2.64.0                                     
## [30] MatrixGenerics_1.16.0                              
## [31] matrixStats_1.4.1                                  
## [32] GenomicRanges_1.56.2                               
## [33] GenomeInfoDb_1.40.1                                
## [34] IRanges_2.38.1                                     
## [35] S4Vectors_0.42.1                                   
## [36] BiocGenerics_0.50.0                                
## 
## loaded via a namespace (and not attached):
##   [1] ProtGenerics_1.36.0       bitops_1.0-9             
##   [3] httr_1.4.7                doParallel_1.0.17        
##   [5] tools_4.4.1               doRNG_1.8.6              
##   [7] backports_1.5.0           utf8_1.2.4               
##   [9] R6_2.5.1                  HDF5Array_1.32.1         
##  [11] lazyeval_0.2.2            Gviz_1.48.0              
##  [13] rhdf5filters_1.16.0       permute_0.9-7            
##  [15] withr_3.0.2               GGally_2.2.1             
##  [17] prettyunits_1.2.0         gridExtra_2.3            
##  [19] base64_2.0.2              preprocessCore_1.66.0    
##  [21] cli_3.6.3                 sass_0.4.9               
##  [23] readr_2.1.5               genefilter_1.86.0        
##  [25] askpass_1.2.1             systemfonts_1.1.0        
##  [27] Rsamtools_2.20.0          foreign_0.8-87           
##  [29] svglite_2.1.3             siggenes_1.78.0          
##  [31] illuminaio_0.46.0         R.utils_2.12.3           
##  [33] dichromat_2.0-0.1         scrime_1.3.5             
##  [35] BSgenome_1.72.0           rstudioapi_0.17.1        
##  [37] impute_1.80.0             RSQLite_2.3.8            
##  [39] generics_0.1.3            BiocIO_1.14.0            
##  [41] gtools_3.9.5              dplyr_1.1.4              
##  [43] GO.db_3.19.1              Matrix_1.7-1             
##  [45] interp_1.1-6              fansi_1.0.6              
##  [47] abind_1.4-8               R.methodsS3_1.8.2        
##  [49] lifecycle_1.0.4           edgeR_4.2.2              
##  [51] yaml_2.3.10               rhdf5_2.48.0             
##  [53] SparseArray_1.4.8         BiocFileCache_2.12.0     
##  [55] grid_4.4.1                blob_1.2.4               
##  [57] promises_1.3.1            ExperimentHub_2.12.0     
##  [59] crayon_1.5.3              lattice_0.22-6           
##  [61] echarts4r_0.4.5           GenomicFeatures_1.56.0   
##  [63] annotate_1.82.0           KEGGREST_1.44.1          
##  [65] pillar_1.9.0              knitr_1.49               
##  [67] beanplot_1.3.1            rjson_0.2.23             
##  [69] codetools_0.2-20          glue_1.8.0               
##  [71] data.table_1.16.2         vctrs_0.6.5              
##  [73] png_0.1-8                 gtable_0.3.6             
##  [75] cachem_1.1.0              xfun_0.49                
##  [77] mime_0.12                 S4Arrays_1.4.1           
##  [79] survival_3.7-0            statmod_1.5.0            
##  [81] nlme_3.1-166              bit64_4.5.2              
##  [83] bsseq_1.40.0              progress_1.2.3           
##  [85] filelock_1.0.3            bslib_0.8.0              
##  [87] nor1mix_1.3-3             KernSmooth_2.23-24       
##  [89] rpart_4.1.23              colorspace_2.1-1         
##  [91] DBI_1.2.3                 Hmisc_5.2-0              
##  [93] nnet_7.3-19               tidyselect_1.2.1         
##  [95] bit_4.5.0                 compiler_4.4.1           
##  [97] curl_6.0.1                httr2_1.0.7              
##  [99] htmlTable_2.4.3           xml2_1.3.6               
## [101] DelayedArray_0.30.1       rtracklayer_1.64.0       
## [103] checkmate_2.3.2           scales_1.3.0             
## [105] caTools_1.18.3            quadprog_1.5-8           
## [107] rappdirs_0.3.3            stringr_1.5.1            
## [109] digest_0.6.37             rmarkdown_2.29           
## [111] GEOquery_2.72.0           htmltools_0.5.8.1        
## [113] pkgconfig_2.0.3           jpeg_0.1-10              
## [115] base64enc_0.1-3           sparseMatrixStats_1.16.0 
## [117] dbplyr_2.5.0              fastmap_1.2.0            
## [119] ensembldb_2.28.1          rlang_1.1.4              
## [121] htmlwidgets_1.6.4         UCSC.utils_1.0.0         
## [123] shiny_1.9.1               DelayedMatrixStats_1.26.0
## [125] jquerylib_0.1.4           jsonlite_1.8.9           
## [127] BiocParallel_1.38.0       mclust_6.1.1             
## [129] R.oo_1.27.0               VariantAnnotation_1.50.0 
## [131] RCurl_1.98-1.16           magrittr_2.0.3           
## [133] Formula_1.2-5             GenomeInfoDbData_1.2.12  
## [135] Rhdf5lib_1.26.0           munsell_0.5.1            
## [137] Rcpp_1.0.13-1             stringi_1.8.4            
## [139] zlibbioc_1.50.0           MASS_7.3-61              
## [141] AnnotationHub_3.12.0      plyr_1.8.9               
## [143] org.Hs.eg.db_3.19.1       ggstats_0.7.0            
## [145] deldir_2.0-4              splines_4.4.1            
## [147] multtest_2.60.0           hms_1.1.3                
## [149] rngtools_1.5.2            biomaRt_2.60.1           
## [151] BiocVersion_3.19.1        XML_3.99-0.17            
## [153] evaluate_1.0.1            latticeExtra_0.6-30      
## [155] biovizBase_1.52.0         BiocManager_1.30.25      
## [157] httpuv_1.6.15             tzdb_0.4.0               
## [159] tidyr_1.3.1               openssl_2.2.2            
## [161] purrr_1.0.2               reshape_0.8.9            
## [163] xtable_1.8-4              restfulr_0.0.15          
## [165] AnnotationFilter_1.28.0   later_1.4.0              
## [167] viridisLite_0.4.2         tibble_3.2.1             
## [169] beeswarm_0.4.0            memoise_2.0.1.9000       
## [171] AnnotationDbi_1.66.0      GenomicAlignments_1.40.0 
## [173] cluster_2.1.6