[BioC] Problem with write.fit in limma package
Sabine Trochim
sabine at biosolveit.de
Mon Aug 22 17:05:27 CEST 2005
Hi,
I get an error message when trying to store a fitted model with
write.fit():
"Fehler in round(x, digits) : Nicht-numerisches Argument für
mathematische Funktion"
in english this may be something like:
"error in round(x, digits): non-numerical argument for mathematical
function"
As I am using limma for the first time I am not sure if there is a bug
or if I did something wrong. Here is what I have tried.
I use the data set GDS1036 from GEO, which contains intensities from 24
Affymetrix arrays (rows=probe sets, columns=arrays)
http://www.ncbi.nlm.nih.gov/geo/gds/gds_browse.cgi?gds=1036
4 samples
2 conditions (control and treatment with IFNG)
3 time points (1hour, 6hours, 24hours after treatment).
I summarized the data for the 4 samples being interested in comparison
between treatment and control and time points (see below).
>library(limma)
# read data table, rownames contained in first column,
# column names in header row,
# second column is skipped (colClass="NULL")
> Data <- read.table("GDS1036_minusheader.soft", header=TRUE,
row.names=1, colClasses=c("character","NULL",rep("numeric",24)))
# transform raw intensities to log10 intensities
> Data <- log10(Data)
# read targets matrix
# this looks like
array target
1 GSM26926 C.1
2 GSM26925 C.1
3 GSM26927 C.1
4 GSM26928 C.1
5 GSM26929 C.6
6 GSM26930 C.6
7 GSM26931 C.6
8 GSM26932 C.6
9 GSM26933 C.24
10 GSM26934 C.24
11 GSM26936 C.24
12 GSM26937 C.24
13 GSM23887 IFNG.1
14 GSM23893 IFNG.1
15 GSM23895 IFNG.1
16 GSM23899 IFNG.1
17 GSM23903 IFNG.6
18 GSM23904 IFNG.6
19 GSM23908 IFNG.6
20 GSM23912 IFNG.6
21 GSM23916 IFNG.24
22 GSM23919 IFNG.24
23 GSM23921 IFNG.24
24 GSM23922 IFNG.24
> targets <- readTargets("Targets.txt")
# build factor of target names
> targetnames <- c(rep("C.1",4), rep("C.6",4), rep("C.24",4),
rep("IFNG.1",4), rep("IFNG.6",4), rep("IFNG.24",4))
> targetnames <- factor(targetnames, levels=c("C.1", "C.6", "C.24",
"IFNG.1", "IFNG.6", "IFNG.24"))
[1] C.1 C.1 C.1 C.1 C.6 C.6 C.6 C.6 C.24
[10] C.24 C.24 C.24 IFNG.1 IFNG.1 IFNG.1 IFNG.1 IFNG.6 IFNG.6
[19] IFNG.6 IFNG.6 IFNG.24 IFNG.24 IFNG.24 IFNG.24
Levels: C.1 C.6 C.24 IFNG.1 IFNG.6 IFNG.24
# build model matrix with one column per target level
> design <- model.matrix(~0+targetnames)
colnames(design) <- levels(targetnames)
# fit model
> fit <- lmFit(Data, design)
#======================================================#
# Time course of log ratios between control and IFNG
#
#======================================================#
> cont.ratios <- makeContrasts(
+ T1=IFNG.1-C.1,
+ T6=IFNG.6-C.6,
+ T24=IFNG.24-C.24,
+ levels=design)
> fit5 <- contrasts.fit(fit, cont.ratios)
> fit5 <- eBayes(fit5)
# write linear model to file
> write.fit(fit5, results=NULL, FStat=NULL, "Ratios.mat", digits=5,
adjust="fdr")
This function exits with the following error message:
"error in round(x, digits): non-numerical argument for mathematical
function"
Does anyone has an idea what could be wrong? Is this a bug in
write.fit() or did I miss anything?
Is there otherwise a workaround how I could store the matrix in a file?
I need ratios and p-values for each contrast.
Thanks for your help.
Regards,
Sabine
==================================================================
BioSolveIT GmbH - An der Ziegelei 75 - 53757 St.Augustin - Germany
Dr. Sabine Trochim trochim at biosolveit.de
Phone: +49-2241-2525-0 / Fax: -525 www.biosolveit.de
More information about the Bioconductor
mailing list