[BioC] trouble hacking plotPCA

James W. MacDonald jmacdon at med.umich.edu
Thu Dec 14 02:04:08 CET 2006


Hi Jenny,

Ha Ha, you can't foil my anti-hack barrier code! ;-D

Actually, I use a namespace, so when you hack plotPCA() and dump it into 
your .GlobalEnv, it is no longer part of the affycoretools namespace and 
thus can't find helper functions that are sealed in the namespace.

The alternatives are:
1.) Make the hacks to the source package and then install using R CMD 
INSTALL
2.) Wait until tomorrow when I can make the changes and send you the 
package. I would normally have you wait until it propagates through the 
build process, but annaffy is busted and keeping affycoretools from 
building, so no propagation for me ;-(

Let me know your preference.

Best,

Jim

Jenny Drnevich wrote:
> Hi Jim,
> 
> I was trying to modify 'plotPCA' so it could take a matrix instead of an 
> exprSet object, but in doing so somehow R can't find the function 
> 'pca.legend', even though it pulls up the documentation for it when I query 
> '?pca.legend". I didn't even touch the code that had to do with 
> 'pca.legend'! Any ideas why and/or what I can do to get the legend?  Code 
> and sessionInfo() below.
> 
> Thanks,
> Jenny
> 
> 
>  >plotPCA(rma.data)
> # no problem with this - the legend was fine
> 
>  > source("C:/Statistics/JDplotPCA.R")
> 
>  > JDplotPCA(exprs(rma.data))
> Error in JDplotPCA(exprs(rma.data)) : could not find function "pca.legend"
> 
>  > JDplotPCA
> function (eset, groups = NULL, groupnames = NULL, addtext = NULL,
>      x.coord = NULL, y.coord = NULL, screeplot = FALSE, squarepca = FALSE,
>      pch = NULL, col = NULL, ...)
> {
>      require(affycoretools)
>      if (is.null(groupnames))
>          groupnames <- colnames(eset)
>      if (is.factor(groupnames))
>          groupnames <- as.character(groupnames)
>      pca <- prcomp(t(eset))
>      if (screeplot) {
>          plot(pca, main = "Screeplot")
>      }
>      else {
>          if (squarepca) {
>              ylim <- max(abs(range(pca$x[, 1])))
>              ylim <- c(-ylim, ylim)
>          }
>          else ylim <- NULL
>          if (!is.null(groups)) {
>              if (is.null(pch))
>                  pch <- groups
>              if (is.null(col))
>                  col <- groups
>              plot(pca$x[, 1:2], pch = pch, col = col, ylab = "PC2",
>                  xlab = "PC1", main = "Principal Components Plot",
>                  ylim = ylim, ...)
>          }
>          else {
>              if (is.null(pch))
>                  pch <- 0:length(colnames(eset))
>              if (is.null(col))
>                  col <- 1:length(colnames(eset))
>              plot(pca$x[, 1:2], pch = pch, col = col, ylab = "PC2",
>                  xlab = "PC1", main = "Principal Components Plot",
>                  ylim = ylim, ...)
>          }
>          if (is.null(addtext)) {
>              pca.legend(pca, groupnames, pch, col, x.coord = x.coord,
>                  y.coord = y.coord, ...)
>          }
>          else {
>              smidge <- pca.legend(pca, groupnames, pch, col, x.coord = 
> x.coord,
>                  y.coord = y.coord, saveup = TRUE, ...)
>              text(pca$x[, 1], pca$x[, 2] + smidge, label = addtext,
>                  cex = 0.7)
>          }
>      }
> }
> 
>  > sessionInfo()
> R version 2.4.0 (2006-10-03)
> i386-pc-mingw32
> 
> locale:
> LC_COLLATE=English_United States.1252;LC_CTYPE=English_United 
> States.1252;LC_MONETARY=English_United 
> States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
> 
> attached base packages:
> [1] "splines"   "tools"     "methods"   "stats"     "graphics"  "grDevices"
> [7] "utils"     "datasets"  "base"
> 
> other attached packages:
>   affyQCReport    simpleaffy         made4 scatterplot3d          ade4
>       "1.12.0"       "2.8.0"       "1.8.0"      "0.3-24"       "1.4-2"
>        affyPLM         gcrma   matchprobes      affydata affycoretools
>       "1.10.0"       "2.6.0"       "1.6.0"      "1.10.0"       "1.6.0"
>        biomaRt         RCurl           XML       GOstats      Category
>        "1.8.0"       "0.7-0"       "1.2-0"       "2.0.3"       "2.0.3"
>     genefilter      survival          KEGG          RBGL      annotate
>       "1.12.0"        "2.29"      "1.14.1"      "1.10.0"      "1.12.0"
>             GO         graph         limma          affy        affyio
>       "1.14.1"      "1.12.0"       "2.9.1"      "1.12.1"       "1.2.0"
>        Biobase       RWinEdt
>       "1.12.2"       "1.7-5"
> 
> Jenny Drnevich, Ph.D.
> 
> Functional Genomics Bioinformatics Specialist
> W.M. Keck Center for Comparative and Functional Genomics
> Roy J. Carver Biotechnology Center
> University of Illinois, Urbana-Champaign
> 
> 330 ERML
> 1201 W. Gregory Dr.
> Urbana, IL 61801
> USA
> 
> ph: 217-244-7355
> fax: 217-265-5066
> e-mail: drnevich at uiuc.edu
> 
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor


-- 
James W. MacDonald
University of Michigan
Affymetrix and cDNA Microarray Core
1500 E Medical Center Drive
Ann Arbor MI 48109
734-647-5623



**********************************************************
Electronic Mail is not secure, may not be read every day, and should not be used for urgent or sensitive issues.



More information about the Bioconductor mailing list