Dear Experts,
I have single channel array data gpr files form GenePix custom.
I have successfully read the data into the data frame object and I'd like to perform, read the .gal file and would like to do some quality assessment. In order to do that, I've created a SpotTypes.txt file:
SpotType ID Name Color ncRNA * * black Blank *Blank* * pink PosControl *hsa* * blue NegControl *Randomer* * red
loaded it through readSpotTypes() and attempted to execute:
Red_Ch_Only_Data$genes$Status <- controlStatus(spottypes, Red_Ch_Only_Data)
But I got the following error:
Matching patterns for: Error in matrix(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr, : 'data' must be of a vector type, was 'NULL' >
And I cannot understand what the issue is all about...Is it something with the SpotTypes file or my data frame?
I'm a total newbie, so forgive me for the banal question should this be one. I appreciate any help you can provide!
Thank you!
~Dario
Yes, you're correct Dr. Smyth: "Red_Ch_Only_Data" is an EListRaw object that I have read using
Red_Ch_Only_Data <- read.maimages(targets, source="genepix.custom", path="/xx/xx/xxx", columns=list(G="F635 Mean", Gb="B635"), green.only = TRUE)
(Following the other post you answered me on for a work-around with red single channel data array).
Red_Ch_Only_Data$genes got the GAL file info and then I just followed, or attempted to follow, the directions as provided in chapter 5 of the user guide (revised the 9th of June 2015) to perform quality assessment, applying the code there to my array even though it's single channel and not two-color like the chapter shows. The code there is:
So I was missing the $genes when I tried to apply that code to my situation by executing:
Is that not necessary for RGList objects?
The short form (without $genes) is implemented for RGList objects but not yet for EList objects.
You can see this by reading the help page for controlStatus(). The User's Guide only gives example pipelines. You need to refer to the help pages for individual functions for complete documentation of all cases.
Will do. Thank you so much!
Additional question on the same array: is background correction via the function normalizeWithinArrays non intended for single channel? I attempted it and this is what I got:
Of course the function normalizeWithinArrays does not accept EListraw objects, but I wonder if background correction is then performed directly during normalization with normalizeBetweenArrays..
Forgive me for the basic questions, I am a newbie and I'm really trying to get this right and, given it's my first time, it's a bit confusing... Thanks for all the help!
Ok, I found this in the help section of the function normalizeBetweenArrays:
For single-channel arrays, within array normalization is not usually relevant and so normalizeBetweenArrays is the sole normalization step.
Does that mean that normalizeBetweenArrays performs background correction?
I don't quite understand why you would try to use normalizeWithinArrays() on your data. Clearly that function is intended for two color data.
To do background correction, simply use backgroundCorrect().
There are plenty of examples of single channel analyses in the limma User's Guide. Chapter 17 gives several of them. The case study in Section 17.4 with Agilent arrays would be particularly relevant to you.
Also, please, if you have more questions it is better to post a new question rather than just adding comments here to this thread.
Thank you again. I apologize for the improper use of the thread.