[BioC] trouble hacking plotPCA

Jenny Drnevich drnevich at uiuc.edu
Wed Dec 13 23:37:40 CET 2006


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



More information about the Bioconductor mailing list