[BioC] namespace and other developer tools
Naomi Altman
naomi at stat.psu.edu
Thu Dec 14 15:35:07 CET 2006
I have also been foiled by the sophistication of Bioconductor code.
Is there a manual that explains namespace and other code-hiding tools
(.e.g generic functions) that would provide some guidance.
The beauty of R is that I can hack - when I can find the code.
Thanks,
Naomi
At 08:04 PM 12/13/2006, James W. MacDonald wrote:
>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.
>
>_______________________________________________
>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
Naomi S. Altman 814-865-3791 (voice)
Associate Professor
Dept. of Statistics 814-863-7114 (fax)
Penn State University 814-865-1348 (Statistics)
University Park, PA 16802-2111
More information about the Bioconductor
mailing list