Empty Results from champ.DMP Despite Expected Output
1
0
Entering edit mode
Fateme • 0
@c6f284db
Last seen 10 days ago
Netherlands

Hi Everyone,

I am currently working on a differential methylation analysis using the champ.DMP function from the ChAMP package in R. Despite receiving a message indicating a large number of significant MVPs (157,948 with BH adjusted p-values below 0.05), the resulting myDMP object is empty. why?

Context: Dataset: I am analyzing a beta matrix from Illumina Human Methylation EPIC Beadchip data. Phenotype Data: The dataset includes samples categorized into two groups: MILD and SEVERE.

sample_names <- colnames(beta_matrix)
sample_groups <- ifelse(grepl("SEVERE", sample_names), "SEVERE", "MILD")
sample_info <- data.frame(Sample = sample_names, Group = sample_groups, stringsAsFactors = FALSE)
phenotype <- factor(sample_info$Group, levels = c("MILD", "SEVERE"))

myDMP <- champ.DMP(beta = beta_matrix, pheno = phenotype, arraytype = "EPIC")
MethylationArray ChAMP R • 244 views
ADD COMMENT
1
Entering edit mode
@james-w-macdonald-5106
Last seen 1 minute ago
United States

Ideally you wouldn't use beta values for this analysis, which will use limma::lmFit to do the modeling, because limma assumes the data are semi-normally distributed. But beta values are bounded on (0,1) and are not likely to have a 'hump-shaped distribution'. You can fit the beta values using the DSS package, or you could use logit2 from the minfi package to convert to M-values. EDIT; I originally typed ilogit2 instead of logit2 for the function to convert from betas to M-values.

But anyway, you should provide more information, such as the output from ChAMP when running champ.DMP and the output of dim(myDMP).

Looking over the code for champ.DMP, the expected probe IDs and the observed probe IDs are intersected, and then that intersection is used to subset the output. I don't see any error checking to tell you if the intersection is character(0), in which case the expectation would be that you would not get any output. In other words, if the row.names of your beta matrix are not EPIC CpG IDs, then you will not get output because the intersection between the expected IDs and the observed IDs will be empty.

Login before adding your answer.

Traffic: 833 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6