[BioC] strange results with edgeR::goodTuring

Gordon K Smyth smyth at wehi.EDU.AU
Tue Aug 28 12:32:04 CEST 2012


Hi Francois,

Well, looks like your data example has exposed a bug in my R 
implementation of the Good-Turing algorithm.  I just ran the original C 
code for the algorithm on your data, and it gives the following output:

0	0
312	0.0001363
14491	0.006316
16401	0.007149
65124	0.02839
129797	0.05657
323321	0.1409
366051	0.1595
368599	0.1607
405261	0.1766
604962	0.2637

I'll have to think about what to do about this.  I don't really have time 
to track down the bug.  We could bring C code into edgeR instead, but the 
original C code would need some porting.  The R code gives identical 
results to the C for longer vectors with a more typical pile-up of 
frequencies.

I wonder what you mean when you say you want to estimate what kind of 
pseudo counts to use.  In edgeR terminology, the pseudo counts are 
computed internally, and the user doesn't get to choose them.

Best wishes
Gordon

> Date: Mon, 27 Aug 2012 12:00:19 -0700
> From: "Francois Pepin" <francois.pepin at sequentainc.com>
> To: "bioconductor at r-project.org" <bioconductor at r-project.org>
> Subject: [BioC] strange results with edgeR::goodTuring
>
> Hi everyone,
>
> I'm trying to use the goodTuring function in edgeR to estimate what kind 
> of pseudocounts to use and I'm getting strange results with small number 
> of categories:
>
> x<-c(312,14491,16401,65124,129797,323321,366051,368599,405261,604962)
> y<- goodTuring(x)
> y
> $count
> [1]    312  14491  16401  65124 129797 323321 366051 368599 405261 604962
>
> $proportion
> [1] 0 0 0 0 0 0 0 0 0 1
>
> $P0
> [1] 0
>
> $n0
> [1] 0
>
>
> If I'm understanding this properly, y$proportion is telling me that I 
> should expect all my counts to fall under the last category, which does 
> not make sense. I would expect something pretty close to x/sum(x) 
> instead.
>
> This is a bit of a toy example and I'm mostly interested in cases where 
> I have more categories but it would be nice if this could work in all 
> cases.
>
> sessionInfo()
> R version 2.15.1 (2012-06-22)
> Platform: x86_64-unknown-linux-gnu (64-bit)
>
> locale:
> [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
> [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
> [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
> [7] LC_PAPER=C                 LC_NAME=C
> [9] LC_ADDRESS=C               LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> other attached packages:
> [1] edgeR_2.6.9   limma_3.12.1  dataframe_2.5
>
>
> Thanks,
>
> Fran?ois

______________________________________________________________________
The information in this email is confidential and intend...{{dropped:4}}



More information about the Bioconductor mailing list