limma topTable doesn't work without replicates [was: Help with limma]
0
0
Entering edit mode
@gordon-smyth
Last seen 2 minutes ago
WEHI, Melbourne, Australia
Dear Venu, limma requires replicates. Pretty much any statistical testing method requires replicates. You can run lmFit() without replicates, which gives you fold changes, but you cannot go on to compute eBayes statistics or to use topTable(). The same answer has been given to many posts asking this question over the years. I am a bit puzzled what you expect limma to do for you in the absence of replication. Best wishes Gordon > Date: Fri, 12 Oct 2012 10:06:40 +0100 > From: Venu Pullabhatla <venu.pullabhatla at="" kcl.ac.uk=""> > To: <bioconductor at="" stat.math.ethz.ch=""> > Subject: [BioC] Help with Limma > > Dear Limma users > > After finishing the analysis successfully with replicates, I am now > trying to analyze the same without replicates. After following a > suggestion that I can use Limma without applying the fit2 <- > eBayes(fit2) step (for without replicates), I tried to do the same for > just one of the patients as a test, but it failed because of the > following error. > > Error in array(x, c(length(x), 1L), if (!is.null(names(x))) > list(names(x), : > attempt to set an attribute on NULL > Calls: topTable ... toptable -> as.matrix -> as.matrix.default -> array > Execution halted > > I get this error when applying topTable function to get the list of DE > genes. I have searched a lot for getting possible answers, but only > ended in vain. I came across this post in many forums, but with no > working solution. Can anyone please rectify my mistake in the script. > > I used the same script successfully for analyzing with replicates except > applying the fit2 <- eBayes(fit2) step because of lack of replicates. > > Here is the script I am using > > > library(limma) > library(annotate) > library(hgug4845a.db) > > targets <- readTargets("targets_individual_test", sep="\t") > data <- read.maimages(targets, path=".", source="agilent.median", > green.only=TRUE) > bgdata <- backgroundCorrect(data, method="normexp", offset=16) > normdata <- normalizeBetweenArrays(bgdata, method="quantile") > normdata_avg <- avereps(normdata, ID=normdata$genes$ProbeName) > > condition <- factor(targets$Condition, levels = unique(targets$Condition)) > design <- model.matrix(~0 + condition) > colnames(design) <- levels(condition) > > fit <- lmFit(normdata_avg, design) > fit$genes$Symbol <- getSYMBOL(fit$genes$ProbeName,"hgug4845a.db") > > contrast.matrix <- makeContrasts("Healthy-State1", "Healthy-State2", > "Healthy-State3", levels=design) > fit2 <- contrasts.fit(fit, contrast.matrix) > > ######## FINE UNTIL THIS STEP ########################### > > output <- topTable(fit2, coef="Healthy-State1", genelist=fit$genes, > number=Inf) > > ###### I GET THE ERROR AFTER RUNNING THE ABOVE COMMAND ####### > > Error in array(x, c(length(x), 1L), if (!is.null(names(x))) > list(names(x), : > attempt to set an attribute on NULL > Calls: topTable ... toptable -> as.matrix -> as.matrix.default -> array > Execution halted > > ################################################# > > write.table(output, file="output.txt", sep="\t", quote=FALSE) > > Many million thanks for the continued help and support. > > Best wishes > > Venu > ______________________________________________________________________ The information in this email is confidential and intend...{{dropped:4}}
GO limma GO limma • 1.0k views
ADD COMMENT

Login before adding your answer.

Traffic: 551 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