[BioC] Using write.table with output from topTags [was: report a possible bug of edgeR]

Gordon K Smyth smyth at wehi.EDU.AU
Thu Feb 9 23:44:37 CET 2012


Dear Peter (or Shan Gao),

Short answer:

You are using an old version of edgeR.  You need to either install the 
current version of edgeR from Bioconductor or, with the version you have, 
you can use

    write.table(result$table, etc)

instead of write.table(result, etc).

Longer answer:

This is not an edgeR bug.  The topTags results object has been produced 
correctly.  However, when you try to write it to a file using 
write.table(), you are trying to treat the results object as a data.frame, 
which it is not.  Hence the error message.

In the version of edgeR in the most recent Bioconductor release we added a 
method for coercing TopTags objects to data.frames, to allow people to do 
exactly what you're doing.

Please have a look at the posting guide:

   http://www.bioconductor.org/help/mailing-list/posting-guide/

It is a good idea to include output from sessionInfo() in any post.

Best wishes
Gordon

> Date: Wed, 8 Feb 2012 16:33:38 -0500
> From: wang peter <wng.peter at gmail.com>
> To: bioconductor at r-project.org
> Subject: [BioC] report a possible bug of edgeR
>
> i have two group of samples,
> each group have 3 biological replicate
> library(edgeR)
> library(limma)
>
> raw.data <- read.table("111",row.names=1)
> d <- raw.data[, 1:dim(raw.data)[2]-1
> group <- factor(c(rep("sap", 3),rep("vas", 3)))
> d <- DGEList(counts = d, lib.size =
> c(9893630,11055814,11207084,9663487,11455088,8140053), group = group)
> d <- d[rowSums(d$counts) >= length(group)/2,]
>
> #normalization
> d <- calcNormFactors(d)
>
> #To estimate common dispersion:
> d <- estimateCommonDisp(d)
> #To estimate tagwise dispersions:
> d <- estimateTagwiseDisp(d)
>
> et <- exactTest(d)
> result <- topTags(et, n=dim(d)[1]+1, adjust.method="BH", sort.by="logFC")
> write.table(result,file = "DEresult",sep = "\t")
>
> Error in data.frame(table = list(logConc = c(-30.7452523676841,
> -30.9164328563752,  :
>  arguments imply differing number of rows: 92305, 1, 2
>
> but write.table(result[1:92304,],file = "DEresult",sep = "\t") can work well
> and then result[92305,] can also work well:
>
>           logConc         logFC P.Value FDR
> UN089145 -16.96614 -4.874874e-05       1   1
>
>
> another problem is the result file
> "table.logConc"	"table.logFC"	"table.P.Value"	"table.adj.P.Val"	"adjust.method"	"comparison"
> "UN038758"	-30.7452523676841	-38.5416037522595	1.78446331842105e-37	2.74524811011424e-33	"BH"	"sap"
>
>
> "comparison" should include two group name like, "sap" vs "vas"
> but why only one name?
>
> -- 
> shan gao
> Room 231(Dr.Fei lab)
> Boyce Thompson Institute
> Cornell University
> Tower Road, Ithaca, NY 14853-1801
> Office phone: 1-607-254-1267(day)
> Official email:sg839 at cornell.edu
> Facebook:http://www.facebook.com/profile.php?id=100001986532253

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



More information about the Bioconductor mailing list