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.
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!
Comments
You can follow this conversation by subscribing to the comment feed for this post.