DNA methylation profiling in Huntington's disease reveals disease associated changes in the striatum.
The 14 matches · 1 of them tie a paragraph to a whole file, not to given lines: a weak match, whose lines are not tinted
- [1] § Methods › Weighted gene correlation network analysis (WGCNA) ↔ analysis/WGCNA/WGCNA_analysis.R, lines 1–72 · score 0.95 · soft thresholding powers, scale free topology, blockwiseModules, deepSplit, variable probes, WGCNA
- [2] § Methods › Cell enrichment analysis ↔ analysis/EWCE.R, lines 1–39 · score 0.92 · Read10X, SummarizedExperiment, colData, cell annotation, Seurat, GSE152058
- [3] § Methods › Illumina EPIC array profiling and data quality control ↔ QC/EPIC_array_QC.R, lines 215–304 · score 0.90 · wateRmelon, quantile normalize, dasen function, SNP probes, maximum correlation, beadcount
- [4] § Methods › Weighted gene correlation network analysis (WGCNA) ↔ analysis/WGCNA/Preprocessing.R, lines 72–111 · score 0.75 · Euclidean distance, variable probes, variance, PC, lowest, Outlier
- [5] § Results › Genes annotated to HD-associated modules have significantly enriched expression in disease affected neuronal subtypes in the striatum ↔ analysis/EWCE.R, lines 41–126 · score 0.70 · Cil Ependymal, Sec Ependymal, standard deviations, PV, interneuron, bootstrapped
- [6] § Results › DNA methylation variation in HD may be enriched in the vicinity of the HTT gene ↔ analysis/BrownsMethod.R, lines 1–59 · score 0.68 · C3orf35, genomic regions, chr3, chr4, GRK4, HTT
- [7] § Methods › Gene ontological enrichment analysis ↔ analysis/WGCNA/OntologyPathway.R, lines 41–82 · score 0.57 · KEGG terms, GO terms, gometh, Ontology, pathway, CpG
- [8] § Results › Highly connected probes show strong association with HD status in the striatum modules ↔ analysis/WGCNA/WGCNA_analysis.R, lines 319–379 · score 0.56 · hub genes, module membership, hub probes, MM
- [9] § Results › HD co-methylated networks are mostly independent of HD associated genetic variation ↔ analysis/BrownsMethod.R, lines 1–59 · score 0.55 · ANKRD34B, FAM193A, LETM1
- [10] § Methods › Association of modules with traits ↔ analysis/WGCNA/WGCNA_analysis.R, lines 220–273 · score 0.55 · module eigengene, module membership, Spearman, MM, traits, methylation
- [11] § Results › HD co-methylated networks are mostly independent of HD associated genetic variation ↔ analysis/WGCNA/fishers_gene_enrichment.R, the whole file · a weak match · score 0.54 · odds ratio, Fisher, CpGs, enrichment, modules, probes
- [12] § Methods › Epigenome-wide association study ↔ analysis/WGCNA/Preprocessing.R, lines 72–111 · score 0.52 · Principal component, PCs, prcomp, threshold
- [13] § Methods › Epigenome-wide association study ↔ QC/EPIC_array_QC.R, lines 320–371 · score 0.51 · CETS package, glia, neuronal, sex, cell, models
- [14] § Methods › Subjects and samples ↔ analysis/WGCNA/WGCNA_analysis.R, lines 1–72 · score 0.51 · CBB, LNDBB, MBB, OBB, Cambridge, London
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
R · 379 lines · 14 KB · no license · 4 matches
- library(WGCNA)
- library("tidyverse")
- library(plyr)
- library(dplyr)
- library(stringr)
- library(corrplot)
- library(cowplot)
- library(parallel)
- library(lm.beta)
- library(utils)
- library(tibble)
- library(reshape2)
- library(gridExtra)
- library("ggplotify")
- ### load dat file containing only the most variable probes and with outlying samples removed
- load(file="dat.RData")
- ### load pheno file for trait association
- pheno <-read.csv("pheno.csv", header = T, stringsAsFactors = F, row.names = 1)
- ### Identify the soft threshold power ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- enableWGCNAThreads(8)
- powers = 1:20
- ### Call the network topology analysis function
- sft = pickSoftThreshold(dat, powerVector = powers, verbose = 5, networkType = "unsigned")
- ### plot results
- ## Scale-free topology fit index as a function of the soft-thresholding power
- plot(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2], xlab = "Soft Threshold (power)", ylab = "Scale Free Topology Model Fit, Unsigned R^2", type = "n", main = paste("Scale independence"),ylim=c(0.2,1))
- text(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2], labels= powers, cex = 0.8, col = "red")
- ##this line corresponds to using an R^2 cut off of h
- abline(h = 0.9, col = "red")
- abline(h = 0.8, col = "orange")
- ##Mean connectivity as
- plot(sft$fitIndices[,1], sft$fitIndices[,5], xlab = "Soft Threshold (power)", ylab = "Mean Connectivity", type = "n", main = paste("Mean connectivity"))
- text(sft$fitIndices[,1], sft$fitIndices[,5], labels = powers, cex=0.8, col = "red")
- ### Generate the modules ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- softPower = value;
- enableWGCNAThreads(32)
- bwnet = blockwiseModules(dat, maxBlockSize = 10000, power = softPower, TOMType = "unsigned", deepSplit = 0,
- minModuleSize = 100, reassignThreshold = 0, mergeCutHeight = 0.25, numericLabels = TRUE, saveTOMs= FALSE, verbose = 3)
- save(bwnet, file = "blockwiseMods.Rdata")
- ### Trait association ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ### match pheno to samples in dat (i.e. remove outliers from pheno) and reduce to traits to test
- pheno <- pheno[match(rownames(dat), pheno_Striatum$Basename),c("Sample_ID", "Basename", "Phenotype", "Sex", "Age","prop","Institute_London", "Institute_Manchester", "Institute_Cambridge", "Institute_Oxford")]
- pheno<- pheno%>%
- rename("NeuN" = "prop",
- "LNDBB" = "Institute_London",
- "MBB" = "Institute_Manchester",
- "CBB" = "Institute_Cambridge",
- "OBB" = "Institute_Oxford")
- ####### Function to perform module trait associations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- # tVec: Vector of labels for trait assocation, must be in form binary or quantitative
- # tFile: Data frame with tVec labels as colnames (pheno file)
- # mFile: module file containing module eigengenes
- # rDat: "Raw" base gene expression / methylation matrix used to construct module
- traitModCor <- function(tVec,tFile,mFile,rDat){
- message(paste("You've started the function, at least"))
- # Define your variables
- nGenes = ncol(rDat)
- nSamples= nrow(rDat)
- moduleColors = labels2colors(mFile$colors)
- MEs0= moduleEigengenes(rDat, moduleColors)$eigengenes
- MEs = orderMEs(MEs0)
- message(paste("You've gotten to the pre-check"))
- #
- if(!identical(rownames(rDat),rownames(MEs))){
- stop("Raw data matrix and module eigengenes are discordant")
- }
- if(length(unique(tVec %in% colnames(tFile))) > 1 | unique(tVec %in% colnames(tFile)) == FALSE){
- stop("Label vector and trait file are discordant")
- }
- message(paste("You've gotten to the results file creation"))
- moduleTraitCor <- matrix(data = NA, ncol = length(tVec), nrow = ncol(MEs))
- colnames(moduleTraitCor)<- tVec
- rownames(moduleTraitCor) <- colnames(MEs)
- moduleTraitPvalue <- matrix(data = NA, ncol = length(tVec), nrow = ncol(MEs))
- colnames(moduleTraitPvalue)<- tVec
- rownames(moduleTraitPvalue) <- colnames(MEs)
- message(paste("You've gotten to the correlation loop"))
- for(t in tVec){
- if(length(unique(tFile[,t])) > 2){ # if Binary run spearman cor
- for(m in colnames(MEs)){
- try(res <-cor.test(MEs[,m] , as.numeric(tFile[,t]),method = "pearson"), silent = TRUE)
- if(class(res) != "try-error")
- moduleTraitCor[m,t]<-as.numeric(res$estimate)
- moduleTraitPvalue[m,t]<-res$p.value
- }
- } else { # do the same as above but if quantitative then run different pearson cor
- for(m in colnames(MEs)){
- try(res <-cor.test(MEs[,m] , as.numeric(tFile[,t]),method = "spearman"), silent = TRUE)
- if(class(res) != "try-error")
- moduleTraitCor[m,t]<-as.numeric(res$estimate)
- moduleTraitPvalue[m,t]<-res$p.value
- }
- }
- message(paste("Testing",t))
- }
- assign("moduleTraitCor", moduleTraitCor, envir = parent.frame() )
- assign("moduleTraitPvalue", moduleTraitPvalue, envir = parent.frame() )
- }
- names(bwnet)
- moduleColors = labels2colors(bwnet$colors)
- labs <- colnames(pheno[c(3:10)])
- traitModCor(tVec = labs, tFile = pheno, mFile = bwnet, rDat = dat)
- ### remove confounded modules (those associated with confounding variables)
- moduleTraitPvalue <- as.data.frame(moduleTraitPvalue)
- rem <- which(moduleTraitPvalue$Sex < 0.05 | moduleTraitPvalue$Age < 0.05 | moduleTraitPvalue$NeuN < 0.05|
- moduleTraitPvalue$LNDBB < 0.05 | moduleTraitPvalue$MBB < 0.05 | moduleTraitPvalue$CBB < 0.05 | moduleTraitPvalue$OBB < 0.05 | rownames(moduleTraitPvalue) == "MEgrey")
- #Remove confounded mocules
- moduleTraitPvalue <- moduleTraitPvalue[-rem,]
- moduleTraitCor<- moduleTraitCor[-rem,]
- moduleTraitPvalue <- as.matrix(moduleTraitPvalue)
- ### create Heatmap to display correlations and their p-values ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- textMatrix = paste(signif(moduleTraitCor, 2), "\n(",
- signif(moduleTraitPvalue, 1), ")", sep = "");
- dim(textMatrix) = dim(moduleTraitCor)
- par(mar = c(3,6.5,3,1));
- # Display the correlation values within a heatmap plot
- labeledHeatmap(Matrix = moduleTraitCor,
- xLabels = labs,
- yLabels = rownames(moduleTraitCor),
- ySymbols = rownames(moduleTraitCor),
- colorLabels = FALSE,
- colors = blueWhiteRed(50),
- textMatrix = textMatrix,
- setStdMargins = FALSE,
- cex.text = 0.6,
- cex.lab = 0.6,
- zlim = c(-1,1),
- main = paste("Module-trait relationships"))
- ### t.test ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ### get the modules that are not assocaited with coVars
- modKeep <- rownames(moduleTraitPvalue)
- MEs0= moduleEigengenes(dat, moduleColors)$eigengenes
- MEs = orderMEs(MEs0)
- dim(MEs)
- t(MEs)->MET
- moduleCounts <- as.data.frame(table(moduleColors))
- ### t test function
- ttest <- function( row, Diag){
- ttest.result <- t.test( row ~ factor(Diag) )
- return(ttest.result$p.value)
- }
- Diag <- factor(pheno$Phenotype)
- diagtest <- t(apply( MET, 1,ttest, Diag)) ### apply t-test function
- diagtest <- t(diagtest)
- ###filter out modules associated with coVars
- diagtest <- as.data.frame(diagtest[row.names(diagtest) %in% modKeep, ], row.names = modKeep,)
- diagtest <- as.matrix(diagtest)
- pOrder <- order(diagtest[,1])
- diagtest2 <- as.data.frame(diagtest[pOrder,])
- head(diagtest2)
- colnames(diagtest2)[colnames(diagtest2) == 'diagtest[pOrder, ]'] <- 'pValues'
- as.data.frame(MET)->MET
- as.matrix(MET['ME_selected_moule_colour',])-> ME_module
- t(ME_module)->ME_module
- ### box plot of module eigengenes
- ggplot(pheno, aes(x = as.factor(Phenotype), y = ME_module, colour = as.factor(Phenotype),fill = as.factor(Phenotype)))+
- geom_boxplot(color = "black",lwd = 0.8, outlier.shape = NA)+
- geom_jitter(width = 0.3, shape = 21, colour = "black", fill = "black")+
- theme_bw()+
- ylab("Module eigengene")+
- xlab(NULL)+
- ggtitle("red")+
- theme(legend.position = "none")+
- theme(plot.title = element_text(hjust = 0.5, size = 18),
- axis.title.y = element_text(size = 16),
- axis.text.x = element_text(size = 14),
- axis.text.y = element_text(size = 14))+
- scale_x_discrete(labels=c("1" = "Control",
- "2" = "HD"))
- ### module memebership analysis ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ##### change bwnet.XXX as necessary
- ##### change 'dat' as necesssary
- ##### change pheno as necessary
- ##### change module of interest as necessary
- moduleColors = labels2colors(bwnet$colors)
- table(moduleColors)
- MEs0= moduleEigengenes(dat, moduleColors)$eigengenes
- MEs = orderMEs(MEs0)
- rownames(MEs) == rownames(dat)
- weight = as.data.frame(as.numeric(pheno$Phenotype));
- names(weight) = "Phenotype"
- # names (colors) of the modules
- modNames = substring(names(MEs), 3)
- geneModuleMembership = as.data.frame(cor(dat, MEs, use = "p"));
- MMPvalue = as.data.frame(corPvalueStudent(as.matrix(geneModuleMembership), nrow(pheno)));
- names(geneModuleMembership) = paste("MM", modNames, sep="");
- names(MMPvalue) = paste("p.MM", modNames, sep="");
- geneTraitSignificance = as.data.frame(cor(dat, weight, use = "p",method = "spearman"));
- GSPvalue = as.data.frame(corPvalueStudent(as.matrix(geneTraitSignificance), nrow(pheno)));
- names(geneTraitSignificance) = paste("GS.", names(weight), sep="");
- names(GSPvalue) = paste("p.GS.", names(weight), sep="");
- head(MMPvalue)
- dg <- which(moduleColors == "MEcol") #### take module of interest
- dg_names<- names(bwnet$colors[dg])
- all_names <- names(bwnet$colors)
- epicManifest<-read.csv("MethylationEPIC_v-1-0_B4.csv", skip = 7)
- rownames(epicManifest)<-epicManifest[,1]
- plotMM <- data.frame(row.names = rownames(GSPvalue),moduleMembership = geneModuleMembership$MMcol,MMPvalue = MMPvalue$p.MMcol,
- geneCor = geneTraitSignificance$GS.Phenotype,geneP = GSPvalue$p.GS.Phenotype,epicManifest[colnames(dat[,all_names]),])
- ### make summary with rank for indivdual modul then add with EPIC annotation
- plotMM <- plotMM[dg_names,] ### cpg names in the module dg names is first generated above for the trait associatons
- #### add in MMrank and GSrank before EPIC annotation
- plotMM <- plotMM %>%
- add_column(MMrank = rank(abs(plotMM$moduleMembership)),
- GSrank = rank(-log10(plotMM$geneP)),
- .before = "IlmnID")
- ### summative rank
- sumrank = plotMM$MMrank + plotMM$GSrank
- plotMM <- plotMM %>%
- add_column(sumrank = sumrank,
- .before = "IlmnID")
- dim(plotMM)
- ### run correlation test
- est <- cor.test(abs(plotMM$moduleMembership),-log10(plotMM$geneP))$estimate ### negative log ten
- pval <- cor.test(abs(plotMM$moduleMembership),-log10(plotMM$geneP))$p.value
- MMPScorrelation<-data.frame(est,pval)
- ### plot ###
- ggplot(plotMM, aes(x = abs(moduleMembership), y = -log10(geneP), col = sumrank))+
- geom_point()+
- geom_hline(yintercept = -log10(0.05))+
- geom_vline(xintercept = 0.8)+
- geom_smooth(method = "lm")+
- theme_bw()+
- ylab("Probe Significance for HD (-log10(p))")+
- xlab("Module Membership")+
- ggtitle("lavenderblush3", subtitle = "corr = 0.458, p =1.91e-12")+
- theme(plot.title = element_text( size = 22),
- plot.subtitle = element_text(size = 18),
- axis.title.y = element_text(size = 18),
- axis.title.x = element_text(size = 18),
- axis.text.x = element_text(size = 16),
- axis.text.y = element_text(size = 16))+
- theme(legend.position = c(0.1, 0.85),
- legend.text = element_text(size = 14),
- legend.title = element_text(size = 14))+
- scale_color_gradient(low="palevioletred2", high="palevioletred4")
- #### Hub genes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- top_MM <- plotMM[order(plotMM[, 7],decreasing = TRUE), ] ##### orders membership summary file by MM
- ### select hub probes
- hub_probes <- subset(top_MM, abs(moduleMembership) > 0.8 & geneP < 0.05)
- testDF <- hub_probes
- testDF$UCSC_RefGene_Name <- as.character(testDF$UCSC_RefGene_Name)
- #### seperate out UCSC multiple gene names into seprate columns
- pb <- txtProgressBar(min = 0, # Minimum value of the progress bar
- max = length(rownames(testDF)), # Maximum value of the progress bar
- style = 3, # Progress bar style (also available style = 1 and style = 2)
- width = 50, # Progress bar width. Defaults to getOption("width")
- char = "=")
- for(i in 1:length(rownames(testDF))){
- cpgIndex <- rownames(testDF)[i]
- test1 <- as.character(testDF[cpgIndex,"UCSC_RefGene_Name"])
- if(str_detect(test1,";") == TRUE){
- strIndex <- as.data.frame(str_locate_all(test1,";"))$end
- length(strIndex)
- strIndex <- c(0,strIndex,str_length(test1))
- storage <- c()
- for(y in strIndex){
- if(which(strIndex == y) == 2){
- storage <- append(storage,str_sub(test1,
- start = strIndex[which(strIndex == y) -1],
- end = y - 1))
- }else if(y >0 & y != max(strIndex)){
- storage <-append(storage,str_sub(test1,
- start = strIndex[which(strIndex == y) -1]+ 1,
- end = y - 1))
- }else if(y == max(strIndex)){
- storage <-append(storage,str_sub(test1,
- start = strIndex[which(strIndex == y) -1]+ 1))
- }
- }
- sumGene <- as.character(unique(storage))
- if(length(sumGene) == 1){
- testDF[cpgIndex,"UCSC1"] <- sumGene
- }else if(length(sumGene) == 2){
- testDF[cpgIndex,c("UCSC1","UCSC2")] <- sumGene[1:2]
- }else if(length(sumGene) > 2){
- testDF[cpgIndex,c("UCSC1","UCSC2","UCSC3")] <- sumGene[1:3]
- }
- } else if(str_detect(test1,";") == FALSE){
- testDF[cpgIndex,"UCSC1"] <- as.character(testDF[cpgIndex,"UCSC_RefGene_Name"])
- }
- setTxtProgressBar(pb, i)
- }
- write.table(testDF, file = "hub_probes.txt")
- probes_per_gene <-table(testDF$UCSC1)
- probes_per_gene_sort1 <- probes_per_gene[order(probes_per_gene)]
- write.table(probes_per_gene_sort1, file = "hub_probes_per_gene.txt")
WGCNA_analysis.R at commit 02aab78, no license · at the source
Overview
- Department of Clinical and Biomedical Sciences, Faculty of Health and Life Sciences, University of Exeter,Exeter, UK
- Institute of Psychiatry, Psychology & Neuroscience (IoPPN), King’s College London,De Crespigny Park, London, UK
- Department of Psychiatry and Neuropsychology, Mental Health and Neuroscience Research Institute (MHeNS), Maastricht University,Maastricht, The Netherlands
Abstract
Background: Huntington’s disease is caused by a trinucleotide CAG repeat expansion in the HTT gene. Despite displaying autosomal dominance, phenotypic variation exists amongst mutation carriers, in particular relating to the age that symptoms first occur. This variation is primarily driven by an inverse relationship between CAG expansion size and age of symptom onset. However, the majority of variation in age of onset that is independent of CAG repeat length is thought to be driven by environmental influences. Since DNA methylation can be altered by environmental factors, and as methylomic variation is reported in other neurodegenerative diseases, it may offer a potential mechanism underlying disease manifestation.
Results: We utilized the Illumina EPIC v1 methylation array to profile DNA methylation in 120 samples, including three distinct brain regions (striatum, entorhinal cortex and cerebellum) in 20 Huntington’s disease and 22 control donors. We identified seven Bonferroni-significant differentially methylated CpGs within the striatum along with 27 differentially methylated regions, annotated to genes involved in physiological processes known to be disrupted in HD such as the urea cycle and metabolism. Weighted gene correlation network analysis identified modules of co-methylated CpGs that were associated with Huntington’s disease, with ontological analyses showing enrichment in disease relevant processes. Furthermore, integration of single-nuclei RNA sequencing data highlighted that genes annotated to these modules are enriched in striatal spiny projection neurons, the primary cell types affected in the disease.
Conclusions: Here, we present the first epigenome-wide association study of Huntington’s disease conducted in the striatum, the primary region of neuropathology, along with matched entorhinal cortex and cerebellum on the Illumina EPIC v1 array. Our results suggest that DNA methylation is altered at loci associated with Huntington’s disease in disease relevant regions and cell types and strengthens evidence for areas of potential therapeutic intervention.
Supplementary Information: The online version contains supplementary material available at 10.1186/
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 14 matches between paragraphs and lines of code.
UoE-Dementia-Genomics/HD-DNAmeth
02aab7843554df7bcb8ea700c14fc87cccb42edf, 14 March 2025Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
10 files
- QC/
EPIC_array_QC.R , R, 371 lines, 2 matches - analysis/
BrownsMethod.R , R, 133 lines, 2 matches - analysis/
DMR_combp.R , R, 68 lines - analysis/
EWAS.R , R, 293 lines - analysis/
EWCE.R , R, 127 lines, 2 matches - analysis/
WGCNA/ , R, 141 lines, 1 matchOntologyPathway.R - analysis/
WGCNA/ , R, 133 lines, 2 matchesPreprocessing.R - analysis/
WGCNA/ , R, 379 lines, 4 matchesWGCNA_analysis.R - analysis/
WGCNA/ , R, 51 lines, 1 matchfishers_gene_enrichment. R - README.md, Text, 1 line
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 9 scripts, each with its path and the digest of its content;
- 14 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
Datasets cited
- figshare:32403001, at figshare; found in DataCite
Data availability
The datasets generated and analyzed during the current study are available in the Gene Expression Omnibus (GEO) repository (GSE297210). Analytical scripts used in this manuscript are available at https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 28 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 10 authors, 10 keywords, 13 MeSH terms, 2 funders, 87 references.
Cite
This paper
Wheildon, G., Smith, A. R., Weymouth, L., Harvey, J., Kouhsar, M., MacBean, L. F., Troakes, C., Pishva, E., Smith, R. G., & Lunnon, K. (2026). DNA methylation profiling in Huntington's disease reveals disease associated changes in the striatum. Clinical epigenetics, 18(1), 92. https://
BibTeX
@article{wheildon2026dna
author = {Wheildon, Gregory and Smith, Adam R. and Weymouth, Luke and Harvey, Joshua and Kouhsar, Morteza and MacBean, Lachlan F. and Troakes, Claire and Pishva, Ehsan and Smith, Rebecca G. and Lunnon, Katie},
title = {{DNA methylation profiling in Huntington's disease reveals disease associated changes in the striatum}},
journal = {Clinical epigenetics},
year = {2026},
month = may,
volume = {18},
number = {1},
pages = {92},
publisher = {BMC},
issn = {1868-7075},
doi = {10.1186/
url = {https://
pmid = {42185880},
pmcid = {PMC13202909}
}
RIS
TY - JOUR
AU - Wheildon, Gregory
AU - Smith, Adam R.
AU - Weymouth, Luke
AU - Harvey, Joshua
AU - Kouhsar, Morteza
AU - MacBean, Lachlan F.
AU - Troakes, Claire
AU - Pishva, Ehsan
AU - Smith, Rebecca G.
AU - Lunnon, Katie
TI - DNA methylation profiling in Huntington's disease reveals disease associated changes in the striatum
T2 - Clinical epigenetics
J2 - Clin Epigenetics
PY - 2026
DA - 2026/
VL - 18
IS - 1
SP - 92
SN - 1868-7075
PB - BMC
DO - 10.1186/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1186/
"type": "article-journal",
"title": "DNA methylation profiling in Huntington's disease reveals disease associated changes in the striatum",
"container-title": "Clinical epigenetics",
"author": [
{
"family": "Wheildon",
"given": "Gregory"
},
{
"family": "Smith",
"given": "Adam R."
},
{
"family": "Weymouth",
"given": "Luke"
},
{
"family": "Harvey",
"given": "Joshua"
},
{
"family": "Kouhsar",
"given": "Morteza"
},
{
"family": "MacBean",
"given": "Lachlan F."
},
{
"family": "Troakes",
"given": "Claire"
},
{
"family": "Pishva",
"given": "Ehsan"
},
{
"family": "Smith",
"given": "Rebecca G."
},
{
"family": "Lunnon",
"given": "Katie"
}
],
"container-title-short":
"volume": "18",
"issue": "1",
"page": "92",
"DOI": "10.1186/
"PMID": "42185880",
"PMCID": "PMC13202909",
"ISSN": "1868-7075",
"publisher": "BMC",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
26
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1038/s41380-026-03686-1 [code]
- Early oligodendrocyte dysfunction signature in Alzheimer's disease: Insights from DNA methylomics and transcriptomics.Journal: Molecular psychiatryIn common: WGCNA, SingleCellExperiment, Seurat, 2 other tools, genetics / omics, 8 references
- [2] doi:10.1186/s13073-026-01698-8 [code]
- From aging to Alzheimer's disease: concordant brain DNA methylation changes in late life.Journal: Genome medicineIn common: ggplot2, tidyverse, genetics / omics, 11 references
- [3] doi:10.1038/s41467-026-73305-8 [code]
- Comparative analysis of the cellular landscape in mammalian striatum.Journal: Nature communicationsIn common: WGCNA, SingleCellExperiment, clusterProfiler, 5 other tools, genetics / omics, 4 references
- [4] doi:10.1038/s41467-026-68864-9 [code]
- Integrative epigenomic landscape of Alzheimer's Disease brains reveals oligodendrocyte molecular perturbations associated with tau.Journal: Nature communicationsIn common: genetics / omics, 10 references
- [5] doi:10.1093/bioinformatics/btag592 [code]
- Network-based stratification of allele-specific expression reveals patient subgroups in Huntington's disease.Journal: Bioinformatics (Oxford, England)In common: WGCNA, clusterProfiler, cowplot, 3 other tools, genetics / omics, other condition, 3 references
- [6] doi:10.1186/s13024-026-00960-2 [code]
- Temporal single-cell atlas of full-length Huntington's disease mouse model defines stage-specific signatures of corticostriatal dysfunction.Journal: Molecular neurodegenerationIn common: systems, genetics / omics, other condition, 8 references
- [7] doi:10.1038/s41398-026-04200-5 [code]
- Postmortem brain single-nucleus and bulk gene expression analyses identify shared and distinct abnormalities in bipolar disorder and major depressive disorder.Journal: Translational psychiatryIn common: WGCNA, SingleCellExperiment, clusterProfiler, 5 other tools, genetics / omics, 1 reference
- [8] doi:10.1038/s41593-026-02367-0 [code]
- A reproducible three-dimensional model of human brain tissue to investigate physiological and disease-associated microglia phenotypes.Journal: Nature neuroscienceIn common: WGCNA, SingleCellExperiment, clusterProfiler, 5 other tools, 1 reference
- [9] doi:10.1016/j.xcrm.2026.102766 [code]
- A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.Journal: Cell reports. MedicineIn common: WGCNA, SingleCellExperiment, clusterProfiler, 5 other tools, genetics / omics, other condition
- [10] doi:10.1038/s44318-026-00806-z [code]
- Interspecific diversity in the neuronal composition of the mammalian cortex arises from heterochrony in neurogenesis.Journal: The EMBO journalIn common: WGCNA, SingleCellExperiment, clusterProfiler, 5 other tools, 1 reference
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 9 scripts, and 14 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:c7d64a97a71eb6a8…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
