Highlights of the Milwaukee Workshop on R and Bioinformatics

(This article was first published on Revolutions, and kindly contributed to R-bloggers)
by Joseph Rickert
On May 10th and 11th, in honor of this being the International Year of Statistics, the Milwaukee Chapter of the American Statistical Association (MILWASA) held a workshop on cutting edge uses of R in Bioinformatics. One objective of the workshop was to show the "nuts and bolts" details of how R with C++ integration and the specialized capabilities of the Bioconductor Project provides an flexible, feature-rich platform for advanced Bioinfomatics applications. Featured speakers were: 
  • Denise Scholtens who gave talks on analyzing microarray data using R and Bioconductor, building graphs with R and Bioconductor, gene set enrichment analysis, and Expression Set objects.
  • Kwang-Youn Kim who spoke on the analysis of RNA sequencing data using R and Bioconductor and
  • Dirk Eddelbuettel gave a thorough, four-part introduction to Rcpp, his package for integrating R with C++.
A tremendous amount of material from this workshop (pdfs, slides, data and R code) is available online. And, if you are interested in R and C++ integration have a look at Dirk’s new book.
The following graph from Denise’s presentation on gene set enrichment analysis shows a portion of an induced gene ontology graph using using the classic Fisher elimination algorithm and gives an idea of the some of the sophisticated analyses you can do with her R code.
Gene_ontology_graph
Note if you want to run the code you will have to get some of the packages from Bioconductor. Here is some code from Kwang-Youn on how to get started.

# Install all the necessary packages if not on your system
source("http://bioconductor.org/biocLite.R")
## Bioconductor version 2.11 (BiocInstaller 1.8.3), ?biocLite for help
biocLite(c("TxDb.Dmelanogaster.UCSC.dm3.ensGene", "ShortRead", "edgeR", "cummeRbund"))
## BioC mirror: http://bioconductor.org
## Using Bioconductor version 2.11 (BiocInstaller 1.8.3), R version 2.15.
## Installing package(s) 'TxDb.Dmelanogaster.UCSC.dm3.ensGene' 'ShortRead'
## 'edgeR' 'cummeRbund'
##
## The downloaded binary packages are in
## /var/folders/nk/9bnzzk_152vg4wslcbxc5g_c0000gn/T//RtmpzkrvEW/downloaded_packages
Created by Pretty R at inside-R.org
And here is some sample code from Dirk's presentation on calling R plot functions from C++. 
#include <RInside.h> // embedded R via RInside
int main(int argc, char *argv[]) {
RInside R(argc, argv); // create an embedded R instance
// evaluate an R expression with curve()
std::string cmd = "tmpf <- tempfile(’curve’); "
"png(tmpf); curve(x^2, -10, 10, 200); "
"dev.off(); tmpf";
// by running parseEval, we get filename back
std::string tmpfile = R.parseEval(cmd);
std::cout << "Could use plot in " << tmpfile << std::endl;
unlink(tmpfile.c_str()); // cleaning up
// alternatively, by forcing a display we can plot to screen
cmd = "x11(); curve(x^2, -10, 10, 200); Sys.sleep(30);";
R.parseEvalQ(cmd);
exit(0);
}
Revolution Analytics is proud to have been a sponsor for this workshop. Congratulations to Rodney Sparapani of the Medical College of Wisconsin for making it happen!