Entering edit mode
In response to a number of requests, I've added a generic import
facility
to read.maimages() in limma.
I've added a new argument 'other.columns' to the read.maimages()
function.
This allows arbitrary columns from the image analysis output files to
be
read into the RGList data object. The columns will be assembled into
data
matrices in the 'other' component of the RGList.
The philosophy is this: RGList objects are now allowed to contain a
component called 'other', which contains one more more matrices of
other
spot-specific information. Any matrix found in the 'other' component
will
be assumed to be conformal with the R and G matrices and will take
part in
any subsetting operations on the RGList.
Gordon
At 02:00 AM 22/07/2004, Peter Wilkinson wrote:
>This is a request for Gordon Smyth ...
>
>well, it seems that I have answered my own question "Limma
read.maimages
>generic import ".... I think:
>
>The following seems to import the weights just fine, if I am
importing
>from a file that contains only the data portion of the quantarray
file.
>
>RG.test <- read.maimages("SEKH0406.data", columns=list(Rf="ch2
Intensity",
> Gf="ch1 Intensity" , Rb ="ch2 Background" , Gb ="ch1 Background"),
> wt.fun=wtIgnore.Filter)
>
>The was not immediately evident, since I was using a generic import,
>however the wtIgnore.Filter function is:
>
> > wtIgnore.Filter
>function (qta)
>{
> qta[, "Ignore Filter"]
>}
>
>and that seems to find the right column.
>
>So then I tried the following so that I could include a Garea = "ch1
Area"
>in the column list, because I would like to include area information
for
>quality control. This DOES NOT work.
>
>I would like to propose that the function that handles the column
input be
>altered so that we can extract any column we wish from the quantarray
file
>with the read.maimages function:
>
>If the initialization of the RG object could initialize itself with
the
>arbitrary list that is supplied with the columns parameter, then we
can
>import whatever data we wish with the generic importer :)
>The reason is that I am exploring the use of other information from
the
>quantarray output that may help in refining quality weight
assignments,
>but I do not want the calculation to be done on import, as I want the
data
>available in R. I would have to import every time I wanted to apply a
new
>weight function, which would be taxing.
>
>I think that some of the relevant code portions for this modification
are:
>
># Initialize RG list object
> Y <- matrix(0,nspots,nslides)
> colnames(Y) <- names
> RG <- list(R=Y,G=Y,Rb=Y,Gb=Y)
> if(!is.null(wt.fun)) RG$weights <- Y
>
>change RG assigment to reflect list in columns parameter
>
>
># Now read remainder of files
> for (i in 1:nslides) {
> if(i > 1) {
> fullname <- slides[i]
> if(!is.null(path)) fullname <-
> file.path(path,fullname)
> obj <-
> read.table(fullname,skip=skip,header=TRUE,sep=sep,as.is=TRUE,quote=q
uote,check.names=FALSE,comment.char="",nrows=nspots,...)
> }
> RG$R[,i] <- obj[,columns$Rf]
> RG$G[,i] <- obj[,columns$Gf]
> RG$Rb[,i] <- obj[,columns$Rb]
> RG$Gb[,i] <- obj[,columns$Gb]
> if(!is.null(wt.fun)) RG$weights[,i] <- wt.fun(obj)
> if(verbose) cat(paste("Read",fullname,"\n"))
> }
> new("RGList",RG)
>}
>
>modify this portion in the same way.
>
>
>Would this be sensible? or does there exist another alternative.
>
>Peter
>
>
>
>At 09:25 AM 7/21/2004, you wrote:
>
>>Hello there,
>>
>>I have been pondering over the help files of 'read.maimages' from
the
>>limma package when it is used for generic import.
>>
>>I have data that I have extracted the data portion of the quantarray
>>files, since alot of the file is just wasting space on the HD. Now I
want
>>to import but the data section just looks like a regular square tab
>>delimited file. Is there a parameter (like for specifying which
column is
>>R and which is G etc) for specifying the ignore filter column so the
>>ignore filter function can be used to generate the $weights matrix
on import?
>>
>>I looked at the source code, and I did not see that this was the
case, am
>>I correct?
>>
>>Peter W.
