I have paired samples from cancer patients who were obese or not obese (labelled 'healthy'). Using 3.5 in edgeR to compare within and between samples.

I am able to compare within a condition i.e. comparing tumour to control in healthy patients or comparing tumour to control in obese patients. I am running into an error where I can't compare between healthy and obese samples.

Sample of my edgeR code, I reduced the number of samples for readability.

type <- as.factor(c('benign', 'tumour', 'benign', 'tumour','benign', 'tumour','benign', 'tumour'))
y$samples$type <- type 

patient <- factor(c(1,1,2,2,3,4,4,4))
y$samples$patient <- patient

condition <- as.factor(c('healthy','healthy','healthy','healthy', 'obese', 'obese','obese', 'obese'))
y$samples$condition <- condition

design <- model.matrix(~0+patient)
rownames(design) <- colnames(y)

Healthy.Tumour <- condition=="healthy" & type=="tumour"
Obese.Tumour <- condition=="obese" & type=="tumour"
design <- cbind(design, Healthy.Tumour, Obese.Tumour)

keep <- filterByExpr(y, design)

y <- y[keep,]
y <- calcNormFactors(y, method = "TMM")

y <- estimateDisp(y,design)
fit <- glmQLFit(y,design)

qlf_H <- glmQLFTest(fit, coef="Healthy.Tumour")
qlf_O <- glmQLFTest(fit, coef="Obese.Tumour")
qlf_O_vs_L <- glmQLFit(fit, contrast=c(0,0,0,0,-1,1))

This is the error code I get when running qlf_O_vs_L <- glmQLFit(fit, contrast=c(0,0,0,0,-1,1)).

Error in dimnames(x$coefficients) <- value : 
  attempt to set an attribute on NULL

I am following the vignette, and I can see that there is no x$coefficients and I don't know how to get that attribute. In the vignette it references a target dataframe and this may be the issue.

There is a $coefficients which sits in fit$coefficients, however adding that (as with below) it doesn't work.

qlf_O_vs_L <- glmQLFit(fit$coefficients, contrast=c(0,0,0,0,-1,1))

Source link