Hi Sean,

Thanks for your advice - that worked. I ended up needing to convert my 
RGList object into an MAList object anyway so that I could apply the 
avereps function (I couldn't get it to work with the RGList - it seemed 
to lose its format). Although I expect the new EList and EListRaw 
objects will soon make this "hack" redundant, for anyone interested in 
using avereps on single channel data at the moment, you simply do:

E <- new("MAList", list(targets=RG$targets, genes=RG$genes, 
source=RG$source, M=RG$Gb, A=RG$G))
E.avg <- avereps(E,ID=E$genes$ProbeName)

avereps is particularly important for doing any analysis with custom 
agilent arrays designed with Earray since it will (optionally) fill all 
remaining spots with replicates.

Since I've received a few emails after making my post on single channel 
analysis for more information, I've put my steps up on our wiki here:
http://jsm-research.imb.uq.edu.au/groupwiki/index.php?title=Single_channel_analysis_of_Agilent_microarray_data_with_Limma

Any comments for improvement are of course appreciated.

Best regards,
Marcel.



Sean Davis wrote:
>
>
> On Thu, Jun 25, 2009 at 1:56 AM, Marcel Dinger <m.dinger@uq.edu.au 
> <mailto:m.dinger@uq.edu.au>> wrote:
>
>     Hi,
>
>     I've been trying to use LIMMA to analyze a set of single channel data
>     created with Agilent 105k arrays. I'm still learning R, so
>     apologies if
>     there is actually a very simple programmatic solution to my problem -
>     but despite a lot of searching and reading I haven't been able to
>     figure
>     it out.
>
>     By reading through various posts on this list (and of course the limma
>     user guide) I have managed to get most of the way there, but am
>     struggling with getting my single channel dataset into lmFit.
>
>     This is what I'm doing:
>     library(limma)
>     targets <- readTargets("neurogenesis.txt")
>     RG <- read.maimages(targets, path="neurogenesis", source="agilent")
>     RG <- backgroundCorrect(RG,method="minimum")
>     RG$R <- NULL
>     RG$Rb <- NULL
>     RG$G <- normalizeBetweenArrays(RG$G, method="quantile")
>     RG$G <- log2(RG$G)
>     f <- factor(targets$Condition, levels = unique(targets$Condition))
>     design <- model.matrix(~0 + f)
>     colnames(design) <- levels(f)
>     fit <- lmFit(RG$G,design)
>     contrast.matrix <-
>     makeContrasts("Condition1-Condition2",levels=design)
>     fit2 <- contrasts.fit(fit,contrast.matrix)
>     fit2 <- eBayes(fit2)
>     topTable(fit2, adjust="BH", coef="Condition1-Condition2")
>
>     This works, but the problem is that because I cannot put RG (as an
>     RGList object) into lmFit, I lose the Probe Names in topTable. I
>     think I
>     could theoretically match them up again with my original list, but
>     this
>     seems very clumsy.
>
>
> Hi, Marcel.
>
> It is always a good idea to read the help pages for any new functions 
> you are using, particularly those that appear to be causing problems.  
> The topTable() function includes an argument for specifying a gene list.
>
> Sean
>  
>
>
>     One solution appears to be to shift my RG data into an ExpressionSet
>     object, but I'm not sure how to do this in R.
>
>     I see that LIMMA has recently added single channel support through the
>     EListRaw and EList objects, but I didn't have any luck with these
>     either
>     as there (currently) doesn't appear to be a way to go from an EListRaw
>     to an EList object? I get the impression that in the future, I will
>     simply be able to go:
>
>     E <- read.maimages(targets, path="neurogenesis", source="agilent",
>     channels=1)
>     ENorm <- normalizeBetweenArrays(E, method="quantile")
>     ...
>     fit <- lmFit(ENorm,design)
>     etc
>
>     But unfortunately normalizeBetweenArrays does not yet take EListRaw as
>     input.
>
>     So my question is - is there a way I can maintain my probe annotations
>     at the lmFit step?
>     or more specifically - how do I shift the data from an RGList object
>     into an ExpressionSet object?
>     or... how can I shift from an EListRaw object to an EList object?
>
>     Thanks in advance for any help or advice.
>
>     Regards,
>     Marcel.
>
>     --
>     Marcel Dinger
>     <http://jsm-research.imb.uq.edu.au/groupwiki/index.php?title=Marcel_Dinger>,
>     Ph.D.,
>     Senior Research Officer,
>     Division for Genomics and Computational Biology,
>     Institute for Molecular Bioscience,
>     University of Queensland,
>     Brisbane, Australia.
>
>     <mailto:m.dinger@uq.edu.au <mailto:m.dinger@uq.edu.au>>
>
>
>
>            [[alternative HTML version deleted]]
>
>     _______________________________________________
>     Bioconductor mailing list
>     Bioconductor@stat.math.ethz.ch <mailto:Bioconductor@stat.math.ethz.ch>
>     https://stat.ethz.ch/mailman/listinfo/bioconductor
>     Search the archives:
>     http://news.gmane.org/gmane.science.biology.informatics.conductor
>
>

	[[alternative HTML version deleted]]

