[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