[BioC] limma topTable doesn't work without replicates [was: Help with limma]
Gordon K Smyth
smyth at wehi.EDU.AU
Tue Oct 16 00:02:23 CEST 2012
Dear Venu,
Please keep the discussion on the list.
log2-fold-changes are contained in fit2$coefficients.
Best wishes
Gordon
On Mon, 15 Oct 2012, Venu Pullabhatla wrote:
> Dear Gordon
>
> Many thanks for your reply. Apologies I should have been a little more
> descriptive in my problem. I am aware that Limma cannot calculate any
> statistics without replicates. So I wanted to get the fold change only using
> topTable, but I am not aware that topTable does not work without replicates.
> I assumed I can get the toptable output, but without the statistics due to
> lack of replicates. Can you please guide me how to find out fold changes
> without replicates using Limma. I am using agilent single channel. Once again
> thanks a lot for your continued help and support with Limma.
>
> Best wishes
>
> Venu
>
> On 14/10/12 23:47, Gordon K Smyth wrote:
>> 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
>>>
>
>
> --
> Venu Pullabhatla, Ph.D.
> Bioinformatician
> NIHR GSTFT/KCL Comprehensive Biomedical Research Centre
> Guy's & St. Thomas' NHS Foundation Trust
> 8th Floor, Tower Wing, Guy's Hospital
> Great Maze Pond, London SE1 9RT
>
>
>
______________________________________________________________________
The information in this email is confidential and intend...{{dropped:4}}
More information about the Bioconductor
mailing list