[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