[BioC] decideTests and topTable
Gordon Smyth
smyth at wehi.edu.au
Thu Apr 21 04:44:04 CEST 2005
Are you clear on what an adjusted p-value is? When you used topTable() you
used the default adjustment method which is "holm", a very conservative
method. When you used decideTests() you used adjustment method "fdr", a
much less conservative method. When you looked directly at the fitted model
object, the p-value is not adjusted at all. It is not therefore not
surprising that the p-values are different in the three cases.
Gordon
>Date: Tue, 19 Apr 2005 10:53:31 -0400
>From: Humberto Ortiz Zuazaga <humberto at hpcf.upr.edu>
>Subject: [BioC] decideTests and topTable
>To: Bioconductor at stat.math.ethz.ch
>
>I've got some Agilent microarray data for 3 different groups, and am
>trying to
>use limma to select differentially expressed genes.
>
>Here's the steps I've taken so far:
>
> > allone <-function (qta)
>+ {
>+ 1
>+ }
> > targets <- readTargets("new-cort-targets.txt")
> > RG <- read.maimages(targets$FileName,source="agilent",wt.fun=allone)
>Read 1/Cort(N-C)2.txt
>Read 2/cort(N-E)2.txt
>Read 2/cort(N-E)3.txt
>Read 5/dye swap/cort(C-N).txt
>Read 5/dye swap/Cort(E-N).txt
> > types <- readSpotTypes("spottype.txt")
> > status <- controlStatus(types, RG)
>Matching patterns for: ControlType
>Found 22393 other
>Found 913 Positive
>Found 162 Negative
>Found 21318 gene
>Setting attributes: values Color ID Name
> > RG$genes$Status <- status
> > RG <- backgroundCorrect(RG, method="none")
> > weights <- modifyWeights(RG$weights, status,
>+ values=c("Positive","Negative"),multipliers=0)
> > MA <- normalizeWithinArrays(RG,method="loess",weights=weights)
> > MA.b <- normalizeBetweenArrays(MA,method="scale")
> > design <- modelMatrix(targets, ref="Naive")
>Found unique target names:
> Control Enriched Naive
> > fit <- lmFit(MA.b,design,weights=weights)
> > fit.b <- eBayes(fit)
> > table <- topTable(fit.b,coef=1,number=100)
> > write.table(table,file="table.txt", sep="\t", col.names = NA)
>
> > calls.strict <- decideTests(fit.b,adjust.method="fdr")
> > write.fit(fit.b,results=calls.strict,file="fit.txt",digits=3)
>
>My question is, when I look at the top table, my best candidate is
>
>"" "Row" "Col" "ProbeUID" "ControlType" "ProbeName"
>"GeneName" "Description"
>"Status" "M" "A" "t" "P.Value" "B"
>"10984"
>52 106 10181 0 "A_51_P443387" "AJ276707" "Mus
>musculus partial mRNA
>for WTAP
>protein" "gene" -0.9176259 9.403058 -11.262342
>0.2490771 -2.218647
>
>Which has an adjusted p value of 0.2490771
>
>The fit object also has a p-value column, and it is adjusted in write.fit,
>but
>the corresponding line from the fit is:
>
>A Control Enriched Control Enriched Control
>Enriched Control Enriched Row Col
>ProbeUID ControlType ProbeName GeneName
>Description Status
> 9.40 -0.918 -0.267 -11.26 -4.02 0.00001 0.00533
> -1 0 52 106 10181 0
>A_51_P443387 AJ276707 Mus musculus partial mRNA for WTAP
>protein gene
>
>The p value for contrast 1 is 0.00001.
>
>Why are the p values so different?
>
>Can I say this gene is or is not differentially expressed? Note that the
>decideTests result for contrast 1 is -1, so I understand that decideTests
>thinks it is differentially expressed. Looking at the topTable output,
>however, makes it unlikely to be differentially expressed.
>
>--
>Humberto Ortiz Zuazaga
>Programmer-Archaeologist
>High Performance Computing facility
>University of Puerto Rico
>http://www.hpcf.upr.edu/~humberto/
More information about the Bioconductor
mailing list