I stand corrected... thanks Liqun for pointing 
out my error in the actual adjustment in fdr 
p-values. I, too had looked at the code a while 
ago, and was just mis-remembering the exact 
details, although at least I got the general idea right!

Cheers,
Jenny


>From: "Liqun He" <liqun.he@ki.se>
>To: "'Jenny Drnevich'" <drnevich@uiuc.edu>
>Subject: RE: [BioC] p.adjust returns one uniform value
>Date: Wed, 5 Sep 2007 16:21:57 +0200
>X-Mailer: Microsoft Office Outlook, Build 11.0.5510
>Thread-index: AcfvEEibu073SfnsQKaFXWs3loCRnQAGkRXA
>X-Spam-Score: 0
>X-Spam-Details: rule=cautious_notspam 
>policy=cautious score=0 spamscore=0 ipscore=0 
>phishscore=0 bulkscore=0 adultscore=0 
>classifier=spam adjust=0 reason=mlx 
>engine=3.1.0-0708230000 definitions=main-0709050023
>X-Spam-OrigSender: liqun.he@ki.se
>
>Hi Jenny,
>
>Thanks for your clear explanation about the BH 
>(fdr) method. When I had a look at the actual 
>code for it in R, it is the following:
>#####
>BH = {
>         i <- n:1
>         o <- order(p, decreasing = TRUE)
>         ro <- order(o)
>         pmin(1, cummin(n/i * p[o]))[ro]
>     }
>#####
>It seems that, the raw p value was multiplied by 
>“n/i” (number-of-genes/rank) instead of N.
>(The smallest raw p value was multiplied by n/1 
>= n, and the largest raw p value was multiplied by n/n = 1.)
>
>Maybe you were trying to explain the method in 
>an easy understandable way in your email.
>
>/liqun
>
>
>
>
>
>
>
>
>-----Original Message-----
>From: bioconductor-bounces@stat.math.ethz.ch 
>[mailto:bioconductor-bounces@stat.math.ethz.ch] On Behalf Of Jenny Drnevich
>Sent: Tuesday, September 04, 2007 6:19 PM
>To: Benjamin Otto; bioconductor@stat.math.ethz.ch
>Subject: Re: [BioC] p.adjust returns one uniform value
>
>Hi Benjamin,
>
>There's nothing wrong with p.adjust(), it's your
>data - there aren't enough genes with low raw
>p-values. In the BH (fdr) adjustment, you
>basically take the smallest raw p-value and
>multiply it by n, the number of genes, to get a
>temporary adjusted p-value, then you take the
>second smallest raw p and multiply it by n-1,
>etc., up the line creating temporary adjusted
>p-values.  When a higher ranking temporary
>p-value is lower than ones below it, all the
>p-values below it get replaced with that value as
>the final adjusted p-value. The largest raw
>p-value is only multiplied by 1 and in this data
>set of yours,  this is the lowest temporary
>adjusted p-value for ALL the genes, which is why
>you're seeing only one uniform "adjusted p-value".
>
>Cheers,
>Jenny
>
>At 10:23 AM 9/4/2007, Benjamin Otto wrote:
> >Hi,
> >
> >I'm just sticking on a strange problem. For a set of p-values a correction
> >via p.adjust should be calculated. Strangely the function returns one
> >uniform "adjusted p-value" for all genes although the range of the raw
> >p-values goes from 0.00043 to 0.99. For BH it is something around 0.996 and
> >for holm, bonferroni etc. it is 1.
> >
> >The function produces nice values for the examples and I used to use the
> >function frequently before without ever observing such behaviour. Any
> >suggestions?
> >
> >Benjamin
> >
> >
> >R version 2.5.0 (2007-04-23)
> >i386-pc-mingw32
> >
> >locale:
> >LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
> >States.1252;LC_MONETARY=English_United
> >States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
> >
> >attached base packages:
> >[1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"
> >"base"
> >
> >other attached packages:
> >mouse4302
> >  "1.16.0"
> >
> >======================================
> >Benjamin Otto
> >University Hospital Hamburg-Eppendorf
> >Institute For Clinical Chemistry
> >Martinistr. 52
> >D-20246 Hamburg
> >
> >Tel.: +49 40 42803 1908
> >Fax.: +49 40 42803 4971
> >======================================
> >
> >
> >
> >--
> >Pflichtangaben gemäß Gesetz über elektronische
> >Handelsregister und Genossenschaftsregister
> >sowie das Unternehmensregister (EHUG):
> >
> >Universitätsklinikum Hamburg-Eppendorf
> >Körperschaft des öffentlichen Rechts
> >Gerichtsstand: Hamburg
> >
> >Vorstandsmitglieder:
> >Prof. Dr. Jörg F. Debatin (Vorsitzender)
> >Dr. Alexander Kirstein
> >Ricarda Klein
> >Prof. Dr. Dr. Uwe Koch-Gromus
> >
> >
> >_______________________________________________
> >Bioconductor mailing list
> >Bioconductor@stat.math.ethz.ch
> >https://stat.ethz.ch/mailman/listinfo/bioconductor
> >Search the archives:
> >http://news.gmane.org/gmane.science.biology.informatics.conductor
>
>Jenny Drnevich, Ph.D.
>
>Functional Genomics Bioinformatics Specialist
>W.M. Keck Center for Comparative and Functional Genomics
>Roy J. Carver Biotechnology Center
>University of Illinois, Urbana-Champaign
>
>330 ERML
>1201 W. Gregory Dr.
>Urbana, IL 61801
>USA
>
>ph: 217-244-7355
>fax: 217-265-5066
>e-mail: drnevich@uiuc.edu
>
>_______________________________________________
>Bioconductor mailing list
>Bioconductor@stat.math.ethz.ch
>https://stat.ethz.ch/mailman/listinfo/bioconductor
>Search the archives: 
>http://news.gmane.org/gmane.science.biology.informatics.conductor

Jenny Drnevich, Ph.D.

Functional Genomics Bioinformatics Specialist
W.M. Keck Center for Comparative and Functional Genomics
Roy J. Carver Biotechnology Center
University of Illinois, Urbana-Champaign

330 ERML
1201 W. Gregory Dr.
Urbana, IL 61801
USA

ph: 217-244-7355
fax: 217-265-5066
e-mail: drnevich@uiuc.edu 
	[[alternative HTML version deleted]]

