Hi Kristof,This has been fixed in both the release and devel versions of affy. Ideally we would change the API so the user has to tell plotLocation() what array they are using, so the number of rows can be extracted from a reputable source.
However, the current implementation is pretty fragile to begin with (e.g., it simply assumes the end user has already generated an image), and it took 12 years for anybody to notice a problem (which implies to me that this is an underused function), so I took the expedient of just getting the number of rows from the image itself.
The new version(s) should propagate through the build machines in a day or so.
Best, Jim On 6/16/2014 10:35 AM, James W. MacDonald wrote:
Hi Kristóf, On 6/16/2014 10:20 AM, Kristóf Jakab wrote:It seems I can't send attachments, I copy the codes here. test_plotLocation_affy.R #!/usr/bin/env Rscript #[email protected] # MAKE AFFYBATCH #---------------------------------------------------------- # download CEL file library(GEOquery) getGEOSuppFiles("GSM229005") #---------------------------------------------------------- # read CEL file library(affy) geoS <- ReadAffy(filenames=paste("GSM229005","GSM229005.CEL.gz", sep="/")) # PLOTTING TO PNG #---------------------------------------------------------- # raw png(filename="geo_testing_spot_locations_raw.png",height=744*10,width=744*10,res=1200) ## image (log scale intensities) image(geoS,transfo=log) ## perfectmatches l <- indexProbes(geoS, which="pm", geneNames(geoS)) lapply(l,function(li){ xy <- indices2xy(li, abatch=geoS) plotLocation(xy,col="tomato",pch=18,cex=0.075) }) ## missmatches l <- indexProbes(geoS, which="mm", geneNames(geoS)) lapply(l,function(li){ xy <- indices2xy(li, abatch=geoS) plotLocation(xy,col="aquamarine",pch=18,cex=0.075) }) dev.off() #---------------------------------------------------------- # mirrored png(filename="geo_testing_spot_locations_mirrored.png",height=744*10,width=744*10,res=1200) ## image (log scale intensities) image(geoS,transfo=log) ## perfectmatches l <- indexProbes(geoS, which="pm", geneNames(geoS)) lapply(l,function(li){ xy <- indices2xy(li, abatch=geoS) xy <- cbind(x=xy[,1],y=(743-xy[,2])) # mirroring plotLocation(xy,col="tomato",pch=18,cex=0.075) }) ## missmatches l <- indexProbes(geoS, which="mm", geneNames(geoS)) lapply(l,function(li){ xy <- indices2xy(li, abatch=geoS) xy <- cbind(x=xy[,1],y=(743-xy[,2])) # mirroring plotLocation(xy,col="aquamarine",pch=18,cex=0.075) }) dev.off() correction_for_plotLocation.R plotLocation <- function(x, col="green", pch=22, ...) { if (is.list(x)) { x <- cbind(unlist(lapply(x, function(x) x[,1])), unlist(lapply(x, function(x) x[,2]))) } points(x[,1], 743-x[,2] # mirroring 744Ã---744 matrix, numbered from 0 to 743 , pch=pch, col=col, ...) }Thanks for pointing this out. It's apparent almost nobody ever uses this code, as it has been in the affy package since pretty much the beginning (2002), and you are the first to notice this. Unfortunately, hard-coding the number of rows isn't the answer, since Affy arrays have different dimensions. Probably the best fix is to add an additional required argument 'affybatch' that we can use to extract the chip dimensions from. Best, JimOn 06/16/2014 10:59 AM, Kristóf Jakab wrote:Dear BiocDevelR! I'm working lot with the excelent *affy package* of Rafael A. Irizarry, I find it very useful. I have a bit strange experience with it's *plotLocation function*. It seems, *I have to mirror Y coordinates* to plot properly. Perhaps it's because the CEL file reading starts from the top, and plotting starts from the bottom. I'm not sure if I'm rigtht, can you check, that I haven't made mistake? If yes, I suggest a (simple) solution for this. I attach two plot made from a GEO GSM CEL file (see script). First I've plotted all gene name (ProbeSet) on the CEL file images, second I've plotted after mirroring the Y coordinates. As you can see on the raw plotting there are points on chip name (printed by BioB spots). I attach my plotting script too, and a potential correction for the affy::plotLocation. (I've tried it, it seems good.) Yours sincerly: Kristóf Jakab I've linked 2 files to this email: geo_testing_spot_locations_mirrored.png <https://www.box.com/shared/ow3q5sn3fpmyz3u8w533>(6.0 MB)Box <https://www.box.com/thunderbird>https://www.box.com/shared/ow3q5sn3fpmyz3u8w533 geo_testing_spot_locations_raw.png <https://www.box.com/shared/3sj9i3lpkixkq85qar0r>(6.1 MB)Box <https://www.box.com/thunderbird>https://www.box.com/shared/3sj9i3lpkixkq85qar0r Mozilla Thunderbird <http://www.getthunderbird.com> makes it easy to share large files over email.[[alternative HTML version deleted]] _______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel
-- James W. MacDonald, M.S. Biostatistician University of Washington Environmental and Occupational Health Sciences 4225 Roosevelt Way NE, # 100 Seattle WA 98105-6099 _______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel
