Search
Question: New Package: annaffy
0
15.8 years ago by
Colin A. Smith20 wrote:
This summer I've written a new package that makes extensive use of the Bioconductor data packages to create annotated HTML and text files. It will take a vector or Affymetrix probe ids and generate a table with quite a bit of useful annotation data. It was mostly inspired by Robert Gentlemen's challenge found in the "ll.htmlpage" documentation: "Details: A simple markup is used to provide clickable entries. Anyone that is energetic could greatly improve this." The usefulness of the package essentially boils down to the function "aaf.summary". For an overview of what the package does, see the documentation for that function. For a quick example, run example(aaf.summary). There may be novel uses for the other functions in the package but they're mainly just slaves to the master function. In this version I haven't officially declared any of the functions private but I think I'll do that at some point soon. annaffy depends on three Bioconductor packages: Biobase (only for the multiget function), GO, and KEGG (for second level annotation). Also, to really be useful for anything, it needs one of the other full annotation data packages available on the Bioconductor web site. I've tested it with the rgu34a package but I haven't gotten around to the other data packages yet. To my knowledge, annaffy is Bioconductor compliant with the exception that I haven't written a vignette yet. It does pass R CMD check. There are most certainly still bugs, typos, and misspellings in the code/documentation. There is one big optimization I know of that still needs to be done. I would greatly appreciate any comments/suggestions/complaints. I haven't implemented functions that handle all the annotation data provided with the annotation packages. I am especially interested in finding out which of the other data sources would be useful and worth implementing. -Colin Source package: http://homepages.nyu.edu/~cas277/annaffy_0.5.tar.gz HTML page produced by example(aaf.summary): http://homepages.nyu.edu/~cas277/affy.html -- Colin Alexander Smith cas277@nyu.edu PGP Public Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x0B159DFF
modified 15.8 years ago by Laurent Gautier2.2k • written 15.8 years ago by Colin A. Smith20
0
15.8 years ago by
Laurent Gautier2.2k
Laurent Gautier2.2k wrote:
--Q68bSM7Ycu6FN28Q Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, Aug 01, 2002 at 05:29:15PM -0700, Colin A. Smith wrote: > This summer I've written a new package that makes extensive use of > the Bioconductor data packages to create annotated HTML and text > files. It will take a vector or Affymetrix probe ids and generate a > table with quite a bit of useful annotation data. It was mostly > inspired by Robert Gentlemen's challenge found in the "ll.htmlpage" > documentation: It looks very nice... thanks... > > "Details: A simple markup is used to provide clickable entries. > Anyone that is energetic could greatly improve this." > > The usefulness of the package essentially boils down to the function > "aaf.summary". For an overview of what the package does, see the > documentation for that function. For a quick example, run > example(aaf.summary). There may be novel uses for the other functions > in the package but they're mainly just slaves to the master function. > In this version I haven't officially declared any of the functions > private but I think I'll do that at some point soon. > > annaffy depends on three Bioconductor packages: Biobase (only for the > multiget function), GO, and KEGG (for second level annotation). Also, > to really be useful for anything, it needs one of the other full > annotation data packages available on the Bioconductor web site. I've > tested it with the rgu34a package but I haven't gotten around to the > other data packages yet. > > To my knowledge, annaffy is Bioconductor compliant with the exception > that I haven't written a vignette yet. It does pass R CMD check. > There are most certainly still bugs, typos, and misspellings in the > code/documentation. There is one big optimization I know of that > still needs to be done. I would greatly appreciate any > comments/suggestions/complaints. I haven't implemented functions that > handle all the annotation data provided with the annotation packages. > I am especially interested in finding out which of the other data > sources would be useful and worth implementing. > I thought of a tiny option to aaf.summary (displays the output produced in a browser...). and I couldn't help adding it... You'll find the code and the doc attached... (if one has any use for it). L. > -Colin > > Source package: > > http://homepages.nyu.edu/~cas277/annaffy_0.5.tar.gz > > HTML page produced by example(aaf.summary): > > http://homepages.nyu.edu/~cas277/affy.html > -- > > Colin Alexander Smith > cas277@nyu.edu > > PGP Public Key: > http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x0B159DFF > _______________________________________________ > Bioconductor mailing list > Bioconductor@stat.math.ethz.ch > http://www.stat.math.ethz.ch/mailman/listinfo/bioconductor --Q68bSM7Ycu6FN28Q Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="aaf.summary.R" aaf.summary <- function (probeids, chip, filename, userdata, columns, sort, decreasing = FALSE, format = "html", title = "BioConductor Affymetrix Probe Listing", browser = getOption("browser"), display = FALSE) { anncols <- aaf.handler() if (missing(userdata)) usercols <- NULL else { userdata <- aaf.checkTable(userdata, length(probeids)) usercols <- names(userdata) } if (missing(columns)) columns <- c(anncols, usercols) else for(item in columns) if (is.null(indexTo(c(anncols, usercols), item))) stop(paste("Column \"", item, "\" does not exist", sep = "")) if (! missing(sort)) for(item in sort) if (is.null(indexTo(c(anncols, usercols), item))) stop(paste("Sort column \"", item, "\" does not exist", sep = "")) table <- aaf.table(probeids, chip, columns) if (! missing(userdata)) table <- c(table, userdata) if (! missing(sort)) table <- sortTable(table, sort, decreasing) switch(format, html = aaf.HTML(table, columns, filename, title), text = aaf.text(table, columns, filename), "Error: Unsupported format") if (display) { url <- paste("file://", getwd(), Platform()$file.sep, filename, sep="") o.browser <- options()$browser on.exit(options(browser=o.browser)) ## wild copy/paste from the function 'help.search' ## DEBUG: not quite sure about "/dev/null" and windows or Mac ports... if (browser != getOption("browser")) { msg <- paste("Changing the default browser", "(as specified by the `browser' option)", "to the given browser.") writeLines(strwrap(msg, exdent = 4)) options(browser = browser) } system(paste(browser, " -remote \"openURL(", url, ")\" 2>/dev/null || ", browser, " ", url, " &", sep = "")) } } --Q68bSM7Ycu6FN28Q Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="aaf.summary.Rd" \name{aaf.summary} \alias{aaf.summary} \title{Summarize annotation for Affymetrix probes} \description{ Given a set of Affymetrix probe ids and a standard BioConductor Affymetrix annotation package, output a summary file. } \usage{ aaf.summary(probeids, chip, filename, userdata, columns, sort, decreasing = FALSE, format = "html", title = "BioConductor Affymetrix Probe Listing") } \arguments{ \item{probeids}{character vector containing probe ids} \item{chip}{name of chip, see details} \item{filename}{filename for output file} \item{userdata}{named list of vectors the same length as \code{probeids}} \item{columns}{character vector with column names to be output} \item{sort}{character vector with order of columns used for sorting} \item{decreasing}{sort by decreasing value (\code{TRUE}) or increasing value (\code{FALSE})} \item{format}{\code{html} or \code{text}, format of output file, either HTML or tab-delimited text (excluding any hypertext links)} \item{title}{title of HTML page} \item{browser}{the browser to use to disply the results (See \code{display} below).} \item{display}{a logical to indicate whether display in a browser is wished or not.} } \details{ The core workings of this function depend on an (informal) protocol used in creating the BioConductor Affymetrix annotation data packages. Based on currently published (and unpublished) data packages, the current protocol includes the following features: The package is named after the chip, \code{<chip name="">} \cr The package contains datasets named \code{<chip name=""><data type="">} This function will map the following datasets into the corresponding column names: \code{Probe} - a column containing the contents of \code{probeids} \cr \code{<chip name="">SYMBOL} - \code{Symbol} - Gene symbol \cr \code{<chip name="">GENENAME} - \code{Description} - Gene description \cr \code{<chip name="">ACCNUM} - \code{GenBank} - GenBank accession number including a hypertext link \cr \code{<chip name="">LOCUSID} - \code{LocusLink} - LocusLink ID including a hypertext link \cr \code{<chip name="">UNIGENE} - \code{UniGene} - UniGene cluster ID including a hypertext link \cr \code{<chip name="">PMID} - \code{PubMed} - Number of PubMed abstracts including a hypertext link to the corresponding abstracts \cr \code{<chip name="">GO} - \code{Gene Ontology} - Gene Ontology classes including hypertext link and descriptive JavaScript rollover \cr \code{<chip name="">PATH} - \code{Pathway} - KEGG Pathway names including hypertext link \cr \code{userdata} allows users to provide their own data to be displayed in the table. For clarity, the vectors in the list should be named. However, generic names will be generated if they are omitted. \code{columns} changes the order in which the columns are displayed. Additionally, columns may be omitted in the same way. User columns must be included in this vector for their display. If \code{columns} is omitted, all of the above columns will be displayed followed by the user columns. } \value{ No value is returned. The function is evaluated solely for the side effect of producing the file \code{filename}. } \note{ Written at the NASA Center for Computational Astrobiology \cr \url{http://cca.arc.nasa.gov/} } \author{Colin A. Smith, \email{cas277@nyu.edu}} \examples{ probes <- ls(annaffySYMBOL) aaf.summary(probes, "annaffy", "affy.html") } \keyword{ file } --Q68bSM7Ycu6FN28Q--