To illustrate the ease of combining data from multiple projects included in recount
as part of a cross-study meta-analysis, we present here a cross-tissue differential expression (DE) analysis comparing gene expression between colon and whole blood. We perform an initial analysis on samples from a variety of studies found in the recount
project and then compare the results we obtain to those from analysis of GTEx data in the same tissues.
library('dplyr')
library('recount')
library('magrittr')
library('limma')
library('edgeR')
library('ffpe')
library('RSkittleBrewer')
library('SummarizedExperiment')
library('devtools')
trop <- RSkittleBrewer::RSkittleBrewer('tropical')
As an initial analysis, colon samples labeled as controls were taken from studies SRP029880
(a study of colorectal cancer (Kim, Kim, Kim, Roh, et al., 2014), n=19) and SRP042228
(a study of Crohn’s disease (Denson, 2014), n=41). Whole blood samples labeled as controls were taken from SRP059039
(a study of virus-caused diarrhea, unpublished, n=24), SRP059172
(a study of blood biomarkers for brucellosis, unpublished, n=47) and SRP062966
(a study of lupus, unpublished, n=18).
We start by downloading .Rdata
files containing SummarizedExperiment
objects for each of these studies, which contain RNA-seq counts at the gene level for each individual in the study, as well as accompanying sample-specific phenotype data.
colon_proj <- c('SRP029880', 'SRP042228')
if(any(!file.exists(file.path(colon_proj, 'rse_gene.Rdata')))) {
sapply(colon_proj, download_study)
}
blood_proj <- c('SRP059039', 'SRP059172', 'SRP062966')
if(any(!file.exists(file.path(blood_proj, 'rse_gene.Rdata')))) {
sapply(blood_proj, download_study)
}
proj <- c(colon_proj,blood_proj)
Once the data has been downloaded, we load all five data sets into R
and calculate the number of genes (number of rows) and samples (number of columns) for each data set.
dat <- lapply(proj, function(x) {
load(file.path(x, 'rse_gene.Rdata'))
return(rse_gene)
})
proj
## [1] "SRP029880" "SRP042228" "SRP059039" "SRP059172" "SRP062966"
sapply(dat, dim)
## [,1] [,2] [,3] [,4] [,5]
## [1,] 58037 58037 58037 58037 58037
## [2,] 54 314 205 169 117
Since the data contained in the SummarizedExperiment
objects for each study are somewhat limited, we also load a data frame containing metadata for each sample, including Gene Expression Omnibus (GEO) sample identifiers. We will use this in order to identify and extract the control subjects from each study for analysis.
metadata <- all_metadata('sra')
## 2017-05-15 13:10:24 downloading the metadata to /var/folders/cx/n9s558kx6fb7jf5z_pgszgb80000gn/T//RtmpIlquGX/metadata_clean_sra.Rdata
Now we go through and collect GEO information for the samples. We label them with their respective tissue and identify which samples are supposed to be normal controls, with labels varying from data set to data set. We also label the data sets with their tissue of origin.
if(!file.exists('charvec.Rdata')) {
charvec <- vector('list', 5)
dir.create('geoinfo', showWarnings = FALSE)
for(i in 1:5){
index <- match(colData(dat[[i]])$run, metadata$run)
colData(dat[[i]])$geo <- metadata$geo_accession[index]
info <- sapply(colData(dat[[i]])$geo, geo_info, destdir = 'geoinfo')
charvec[[i]] <- sapply(info, geo_characteristics)
}
save(charvec, file = 'charvec.Rdata')
} else {
load('charvec.Rdata')
}
## first data set - normals called 'normal-looking surrounding colonic epithelium'
colData(dat[[1]])$normal <- grepl('normal', unlist(charvec[1])[(1:54) * 2 - 1])
colData(dat[[1]])$tissue <- 'colon'
## second data set - normals called 'not ibd'
colData(dat[[2]])$normal <- grepl('not ibd', tolower(unlist(charvec[[2]][5, ])))
colData(dat[[2]])$tissue <- 'colon'
## third data set - normals called 'Control'
colData(dat[[3]])$normal <- grepl('Control', unlist(charvec[[3]][2, ]))
colData(dat[[3]])$tissue <- 'blood'
## fourth data set - normals called 'Control'
colData(dat[[4]])$normal <- grepl('Control', unlist(charvec[[4]][1, ]))
colData(dat[[4]])$tissue <- 'blood'
## fifth data set - normals called 'healthy'
colData(dat[[5]])$normal <- grepl('healthy', unlist(charvec[[5]][1, ]))
colData(dat[[5]])$tissue <- 'blood'
We merge the data sets into one ranged SummarizedExperiment
.
mdat <- do.call(cbind, dat)
Using the label determined above, we find out how many samples are normal in each study and subset to just the normal samples for further analysis.
table(colData(mdat)$normal, colData(mdat)$project)
##
## SRP029880 SRP042228 SRP059039 SRP059172 SRP062966
## FALSE 35 273 181 122 99
## TRUE 19 41 24 47 18
ndat <- mdat[, colData(mdat)$normal]
Here we do a differential expression analysis comparing blood to colon using voom
(Law, Chen, Shi, and Smyth, 2014). We start by normalizing the counts and then consider only the genes that have an average normalized count of at least 5 across the data set.
ndat <- scale_counts(ndat)
ndat_counts <- assays(ndat)[[1]]
keep <- rowMeans(ndat_counts) > 5
ndat_counts = ndat_counts[keep, ]
design <- model.matrix(~colData(ndat)$tissue)
dge <- DGEList(counts = ndat_counts)
dge <- calcNormFactors(dge)
v <- voom(dge, design, plot=FALSE)
fit <- lmFit(v, design)
fit <- eBayes(fit)
topTable(fit)
## Removing intercept from test coefficients
## logFC AveExpr t P.Value
## ENSG00000164318.17 7.529724 -3.06463060 80.36671 2.831746e-126
## ENSG00000006611.15 13.371932 -0.75728329 75.76053 1.768905e-122
## ENSG00000127324.8 15.539959 0.08913163 75.61819 2.335941e-122
## ENSG00000126785.12 8.823754 -2.29940093 74.33356 2.938672e-121
## ENSG00000237187.8 7.355825 -3.08459539 74.51823 2.036866e-121
## ENSG00000101825.7 11.228958 -1.57276438 71.87321 4.221307e-119
## ENSG00000151617.15 7.904513 -2.91782300 70.75199 4.283362e-118
## ENSG00000173702.7 15.051876 0.25301464 70.31748 1.061250e-117
## ENSG00000118526.6 10.537333 -1.83523586 68.77996 2.746173e-116
## ENSG00000183580.9 8.579915 -2.49579830 68.87721 2.230948e-116
## adj.P.Val B
## ENSG00000164318.17 7.849883e-122 272.6540
## ENSG00000006611.15 2.158488e-118 265.7404
## ENSG00000127324.8 2.158488e-118 265.4671
## ENSG00000126785.12 1.629258e-117 262.8825
## ENSG00000237187.8 1.411599e-117 262.4106
## ENSG00000101825.7 1.950314e-115 258.4736
## ENSG00000151617.15 1.696273e-114 255.6127
## ENSG00000173702.7 3.677364e-114 255.5598
## ENSG00000118526.6 7.612666e-113 252.3701
## ENSG00000183580.9 6.871567e-113 252.2846
In order to have something to compare to the results generated on the data sets selected above, we do a differential expression analysis comparing blood to colon samples from GTEx, project SRP012682
. We carry out the same steps as above for the analysis, but in this case we also control for batch as included in the GTEx metadata.
## Download the GTEx data
if(!file.exists(file.path('SRP012682', 'rse_gene.Rdata'))) {
download_study('SRP012682')
}
load(file.path('SRP012682', 'rse_gene.Rdata'))
## Download GTEx metadata
gtex_metadata <- all_metadata('gtex')
## 2017-05-15 13:11:18 downloading the metadata to /var/folders/cx/n9s558kx6fb7jf5z_pgszgb80000gn/T//RtmpIlquGX/metadata_clean_gtex.Rdata
## Subset to samples from tissues of interest
gtex_blood <- rse_gene[, subset(gtex_metadata, smtsd == 'Whole Blood')$run]
colData(gtex_blood)$tissue <- 'wholeblood'
gtex_colon <- rse_gene[, subset(gtex_metadata, smts == 'Colon')$run]
colData(gtex_colon)$tissue <- 'colon'
## Combine tissue subsets and include batch label
gtex_both <- do.call(cbind, list(gtex_blood, gtex_colon))
colData(gtex_both)$batch <- gtex_metadata[match(colData(gtex_both)$run,
gtex_metadata$run), 'smgebtch']
## Scale and filter data to the same genes kept in initial analysis
gtex_both <- scale_counts(gtex_both)
gtex_both_counts <- assays(gtex_both)[[1]]
gtex_both_counts <- gtex_both_counts[keep, ]
## Carry out differential expression analysis
design_gtex <- model.matrix(~colData(gtex_both)$tissue +
colData(gtex_both)$batch)
dge_gtex <- DGEList(counts = gtex_both_counts)
dge_gtex <- calcNormFactors(dge_gtex)
v_gtex <- voom(dge_gtex, design_gtex, plot=FALSE)
fit_gtex <- lmFit(v_gtex, design_gtex)
fit_gtex <- eBayes(fit_gtex)
topTable(fit_gtex, coef = 2)
## logFC AveExpr t P.Value adj.P.Val B
## ENSG00000072786.12 4.595693 6.484796 87.13601 0 0 852.9246
## ENSG00000150760.12 -5.426947 2.636342 -85.76042 0 0 842.4991
## ENSG00000104894.11 5.428923 6.456112 85.31817 0 0 839.5314
## ENSG00000198752.10 -3.524774 4.592607 -84.15769 0 0 830.8078
## ENSG00000141480.17 5.798289 7.545908 83.97986 0 0 829.5412
## ENSG00000083857.13 -7.000981 2.562796 -83.19560 0 0 823.2757
## ENSG00000136167.13 7.773033 8.014350 83.15074 0 0 823.2608
## ENSG00000142347.16 7.257857 6.974144 81.95287 0 0 814.1077
## ENSG00000116701.14 8.176832 6.252451 80.64959 0 0 803.9663
## ENSG00000151651.15 7.258016 5.728969 80.47561 0 0 802.6214
To have a way of gauguing how much overlap we expect to see between the results from the five combined data sets and those from GTEx data, we also carry out a differential analysis using GTEx data comparing blood to lung. We expect to see much less concordance between our initial results and the GTEx blood-lung comparison than we see between our initial results and the GTEx blood-colon comparison.
## Subset lung data
gtex_lung <- rse_gene[, subset(gtex_metadata, smts=='Lung')$run]
colData(gtex_lung)$tissue <- 'lung'
## Combine lung and blood data and label with batch
gtex_both_lung <- do.call(cbind, list(gtex_blood, gtex_lung))
colData(gtex_both_lung)$batch <- gtex_metadata[
match(
colData(gtex_both_lung)$run,
gtex_metadata$run
), 'smgebtch']
## Scale and filter to correct gene set
gtex_both_lung <- scale_counts(gtex_both_lung)
gtex_both_lung_counts <- assays(gtex_both_lung)[[1]]
gtex_both_lung_counts <- gtex_both_lung_counts[keep,]
## Carry out differential expression analysis
design_gtex_lung <- model.matrix(~colData(gtex_both_lung)$tissue +
colData(gtex_both_lung)$batch)
dge_gtex_lung <- DGEList(counts = gtex_both_lung_counts)
dge_gtex_lung <- calcNormFactors(dge_gtex_lung)
v_gtex_lung <- voom(dge_gtex_lung, design_gtex_lung, plot = FALSE)
fit_gtex_lung <- lmFit(v_gtex_lung, design_gtex_lung)
fit_gtex_lung <- eBayes(fit_gtex_lung)
topTable(fit_gtex_lung, coef = 2)
## logFC AveExpr t P.Value adj.P.Val
## ENSG00000069122.18 -7.834493 3.1073837 -109.38749 0 0
## ENSG00000118526.6 -8.943232 1.4057694 -104.47541 0 0
## ENSG00000175899.14 -8.082122 7.0747207 -102.37996 0 0
## ENSG00000129473.9 -2.823777 4.0137367 -100.97719 0 0
## ENSG00000121068.13 -8.283958 2.6788408 -100.14008 0 0
## ENSG00000128567.16 -6.259427 3.7794436 -100.06553 0 0
## ENSG00000112655.15 -5.255477 2.6448203 -99.02082 0 0
## ENSG00000091136.13 -6.245406 4.6398510 -98.42636 0 0
## ENSG00000225383.7 -8.370107 -0.8413745 -96.93016 0 0
## ENSG00000227954.6 -8.626676 0.6834325 -96.88464 0 0
## B
## ENSG00000069122.18 1011.7457
## ENSG00000118526.6 981.1413
## ENSG00000175899.14 968.0088
## ENSG00000129473.9 958.9134
## ENSG00000121068.13 953.1886
## ENSG00000128567.16 952.8221
## ENSG00000112655.15 945.8699
## ENSG00000091136.13 941.9876
## ENSG00000225383.7 931.7232
## ENSG00000227954.6 931.4207
To look for overlap among the most differentially expressed genes across the three analyses, we construct concordance at the top (CAT) plots. We make three comparisons: our five-study results compared to GTEx blood-colon results (same tissue comparison), our five-study results compared to GTEx blood-lung results (different tissue comparison) and our five-study results compared to a ranked set of coefficients for the batch variable in the GTEx blood-lung results (which should not show any biologically meaningful correspondence).
## Comparison of initial analysis to GTEx, same tissues
cat_sra_gtex <- CATplot(
-rank(fit$coefficients[, 2]),
-rank(-fit_gtex$coefficients[, 2]), maxrank = 1000, ylim = c(0,1), make.plot=FALSE)
## Comparison of initial analysis to GTEx, different tissues
cat_sra_gtex_lung = CATplot(
-rank(fit$coefficients[, 2]),
-rank(-fit_gtex_lung$coefficients[, 2]), maxrank = 1000, ylim = c(0,1), make.plot=FALSE)
## Comparison of initial analysis to GTEx, coefficient of batch in model
cat_sra_gtex_batch = CATplot(
-rank(fit$coefficients[, 2]),
-rank(-fit_gtex_lung$coefficients[, 3]), maxrank = 1000, ylim = c(0,1), make.plot=FALSE)
plot(cat_sra_gtex, type = 'l', col = trop[1], lwd = 3)
lines(cat_sra_gtex_lung, type = 'l', col = trop[2], lwd = 3)
lines(cat_sra_gtex_batch, type = 'l', col = trop[3], lwd = 3)
legend(0, 0.5, legend=c('Same Tissue', 'Different Tissues',
'Tissue vs. Batch'), col = trop[1:3], lwd = 3)
From the figure above, we can see that the best concordance is for the comparison to GTEx where we analyzed the same pair of tissues. The GTEx analysis with lung looks considerably less overlapping, with the overlap with the batch coefficient well below the other two.
This analysis report was made possible thanks to:
[1] J. Allaire, J. Cheng, Y. Xie, J. McPherson, et al. rmarkdown: Dynamic Documents for R. R package version 1.5. 2017. URL: https://CRAN.R-project.org/package=rmarkdown.
[2] S. M. Bache and H. Wickham. magrittr: A Forward-Pipe Operator for R. R package version 1.5. 2014. URL: https://CRAN.R-project.org/package=magrittr.
[3] C. Boettiger. knitcitations: Citations for ‘Knitr’ Markdown Files. R package version 1.0.7. 2015. URL: https://CRAN.R-project.org/package=knitcitations.
[4] L. Collado-Torres, A. Nellore, A. C. Frazee, C. Wilks, et al. “Flexible expressed region analysis for RNA-seq with derfinder”. In: Nucl. Acids Res. (2016). DOI: 10.1093/nar/gkw852. URL: http://nar.oxfordjournals.org/content/early/2016/09/29/nar.gkw852.
[5] L. Collado-Torres, A. Nellore, K. Kammers, S. E. Ellis, et al. “Reproducible RNA-seq analysis using recount2”. In: Nature Biotechnology (2017). DOI: 10.1038/nbt.3838. URL: http://www.nature.com/nbt/journal/v35/n4/full/nbt.3838.html.
[6] Y. H. A. T. L. T. A. P. J. D. A. M. K. A. D. T. A. R. K. A. R. N. B. A. J. D. N. A. J. R. A. J. M. A. M. B. H. A. A. M. G. A. W. V. C. A. D. R. M. A. S. S. B. A. C. H. A. D. J. K. A. J. S. H. A. S. K. A. T. D. W. A. B. A. A. R. J. X. A. D. G. A. L. A. Denson. “Pediatric Crohn disease patients exhibit specific ileal transcriptome and microbiome signature”. In: The Journal of Clinical Investigation 124 (2014), pp. 3617-3633.
[7] A. Frazee. RSkittleBrewer: Fun with R Colors. R package version 1.1. 2017. URL: https://github.com/alyssafrazee/RSkittleBrewer.
[8] S. Kim, S. Kim, J. Kim, S. A. Roh, et al. “A nineteen gene-based risk score classifier predicts prognosis of colorectal cancer patients”. In: Molecular Oncology 8 (2014), pp. 1653 - 1666.
[9] C. Law, Y. Chen, W. Shi and G. Smyth. “Voom: precision weights unlock linear model analysis tools for RNA-seq read counts”. In: Genome Biology 15 (2014), p. R29.
[10] M. Morgan, V. Obenchain, J. Hester and H. Pagès. SummarizedExperiment: SummarizedExperiment container. R package version 1.6.1. 2017.
[11] A. Oleś, M. Morgan and W. Huber. BiocStyle: Standard styles for vignettes and other Bioconductor documents. R package version 2.4.0. 2017. URL: https://github.com/Bioconductor/BiocStyle.
[12] R Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. Vienna, Austria, 2017. URL: https://www.R-project.org/.
[13] M. D. Robinson, D. J. McCarthy and G. K. Smyth. “edgeR: a Bioconductor package for differential expression analysis of digital gene expression data”. In: Bioinformatics 26 (2010), pp. -1.
[14] Waldron, L, Ogino, Shuji, Hoshida, Yujin, Shima, Kaori, et al. “Expression profiling of archival tumors for long-term health studies”. In: Clinical Cancer Research 18.22 (2012). PMID: 23136189, pp. 6136–6146. DOI: 10.1158/1078-0432.CCR-12-1915.
[15] H. Wickham and W. Chang. devtools: Tools to Make Developing R Packages Easier. R package version 1.13.0. 2017. URL: https://CRAN.R-project.org/package=devtools.
[16] H. Wickham and R. Francois. dplyr: A Grammar of Data Manipulation. R package version 0.5.0. 2016. URL: https://CRAN.R-project.org/package=dplyr.
## Time spent creating this report:
diff(c(timestart, Sys.time()))
## Time difference of 20.38565 mins
## Date this report was generated
message(Sys.time())
## 2017-05-15 13:30:26
## Reproducibility info
options(width = 120)
devtools::session_info()
## Session info ----------------------------------------------------------------------------------------------------------
## setting value
## version R version 3.4.0 (2017-04-21)
## system x86_64, darwin15.6.0
## ui X11
## language (EN)
## collate en_US.UTF-8
## tz America/New_York
## date 2017-05-15
## Packages --------------------------------------------------------------------------------------------------------------
## package * version date source
## acepack 1.4.1 2016-10-29 CRAN (R 3.4.0)
## affy 1.54.0 2017-04-25 Bioconductor
## affyio 1.46.0 2017-04-25 Bioconductor
## annotate 1.54.0 2017-04-25 Bioconductor
## AnnotationDbi 1.38.0 2017-04-25 Bioconductor
## assertthat 0.2.0 2017-04-11 CRAN (R 3.4.0)
## backports 1.0.5 2017-01-18 CRAN (R 3.4.0)
## base * 3.4.0 2017-04-21 local
## base64 2.0 2016-05-10 CRAN (R 3.4.0)
## base64enc 0.1-3 2015-07-28 CRAN (R 3.4.0)
## beanplot 1.2 2014-09-19 CRAN (R 3.4.0)
## bibtex 0.4.0 2014-12-31 CRAN (R 3.4.0)
## Biobase * 2.36.2 2017-05-04 Bioconductor
## BiocGenerics * 0.22.0 2017-04-25 Bioconductor
## BiocInstaller 1.26.0 2017-04-25 Bioconductor
## BiocParallel 1.10.1 2017-05-03 Bioconductor
## BiocStyle * 2.4.0 2017-04-25 Bioconductor
## biomaRt 2.32.0 2017-04-26 Bioconductor
## Biostrings 2.44.0 2017-04-25 Bioconductor
## bitops 1.0-6 2013-08-17 CRAN (R 3.4.0)
## BSgenome 1.44.0 2017-04-25 Bioconductor
## bumphunter 1.17.2 2017-05-09 Bioconductor
## checkmate 1.8.2 2016-11-02 CRAN (R 3.4.0)
## cluster 2.0.6 2017-03-10 CRAN (R 3.4.0)
## codetools 0.2-15 2016-10-05 CRAN (R 3.4.0)
## colorout * 1.1-2 2016-11-15 Github (jalvesaq/colorout@6d84420)
## colorspace 1.3-2 2016-12-14 CRAN (R 3.4.0)
## compiler 3.4.0 2017-04-21 local
## data.table 1.10.4 2017-02-01 CRAN (R 3.4.0)
## datasets * 3.4.0 2017-04-21 local
## DBI 0.6-1 2017-04-01 CRAN (R 3.4.0)
## DelayedArray * 0.2.2 2017-05-07 Bioconductor
## derfinder 1.10.3 2017-05-09 Bioconductor
## derfinderHelper 1.10.0 2017-04-25 Bioconductor
## devtools * 1.13.0 2017-05-08 CRAN (R 3.4.0)
## digest 0.6.12 2017-01-27 CRAN (R 3.4.0)
## doRNG 1.6.6 2017-04-10 CRAN (R 3.4.0)
## downloader 0.4 2015-07-09 CRAN (R 3.4.0)
## dplyr * 0.5.0 2016-06-24 CRAN (R 3.4.0)
## edgeR * 3.18.1 2017-05-06 Bioconductor
## evaluate 0.10 2016-10-11 CRAN (R 3.4.0)
## ffpe * 1.20.0 2017-04-25 Bioconductor
## foreach 1.4.3 2015-10-13 CRAN (R 3.4.0)
## foreign 0.8-68 2017-04-24 CRAN (R 3.4.0)
## Formula 1.2-1 2015-04-07 CRAN (R 3.4.0)
## genefilter 1.58.1 2017-05-06 Bioconductor
## GenomeInfoDb * 1.12.0 2017-04-25 Bioconductor
## GenomeInfoDbData 0.99.0 2017-02-14 Bioconductor
## GenomicAlignments 1.12.0 2017-04-25 Bioconductor
## GenomicFeatures 1.28.0 2017-04-26 Bioconductor
## GenomicFiles 1.12.0 2017-04-26 Bioconductor
## GenomicRanges * 1.28.1 2017-05-03 Bioconductor
## GEOquery 2.42.0 2017-04-25 Bioconductor
## ggplot2 2.2.1 2016-12-30 CRAN (R 3.4.0)
## graphics * 3.4.0 2017-04-21 local
## grDevices * 3.4.0 2017-04-21 local
## grid 3.4.0 2017-04-21 local
## gridExtra 2.2.1 2016-02-29 CRAN (R 3.4.0)
## gtable 0.2.0 2016-02-26 CRAN (R 3.4.0)
## Hmisc 4.0-3 2017-05-02 CRAN (R 3.4.0)
## htmlTable 1.9 2017-01-26 CRAN (R 3.4.0)
## htmltools 0.3.6 2017-04-28 CRAN (R 3.4.0)
## htmlwidgets 0.8 2016-11-09 CRAN (R 3.4.0)
## httr 1.2.1 2016-07-03 CRAN (R 3.4.0)
## illuminaio 0.18.0 2017-04-25 Bioconductor
## IRanges * 2.10.0 2017-04-25 Bioconductor
## iterators 1.0.8 2015-10-13 CRAN (R 3.4.0)
## jsonlite 1.4 2017-04-08 CRAN (R 3.4.0)
## KernSmooth 2.23-15 2015-06-29 CRAN (R 3.4.0)
## knitcitations * 1.0.7 2015-10-28 CRAN (R 3.4.0)
## knitr 1.15.1 2016-11-22 CRAN (R 3.4.0)
## lattice 0.20-35 2017-03-25 CRAN (R 3.4.0)
## latticeExtra 0.6-28 2016-02-09 CRAN (R 3.4.0)
## lazyeval 0.2.0 2016-06-12 CRAN (R 3.4.0)
## limma * 3.32.2 2017-05-02 Bioconductor
## locfit 1.5-9.1 2013-04-20 CRAN (R 3.4.0)
## lubridate 1.6.0 2016-09-13 CRAN (R 3.4.0)
## lumi 2.28.0 2017-04-25 Bioconductor
## magrittr * 1.5 2014-11-22 CRAN (R 3.4.0)
## MASS 7.3-47 2017-02-26 CRAN (R 3.4.0)
## Matrix 1.2-10 2017-04-28 CRAN (R 3.4.0)
## matrixStats * 0.52.2 2017-04-14 CRAN (R 3.4.0)
## mclust 5.2.3 2017-03-13 CRAN (R 3.4.0)
## memoise 1.1.0 2017-04-21 CRAN (R 3.4.0)
## methods * 3.4.0 2017-04-21 local
## methylumi 2.22.0 2017-04-25 Bioconductor
## mgcv 1.8-17 2017-02-08 CRAN (R 3.4.0)
## minfi 1.22.1 2017-05-02 Bioconductor
## multtest 2.32.0 2017-04-25 Bioconductor
## munsell 0.4.3 2016-02-13 CRAN (R 3.4.0)
## nleqslv 3.2 2017-03-04 CRAN (R 3.4.0)
## nlme 3.1-131 2017-02-06 CRAN (R 3.4.0)
## nnet 7.3-12 2016-02-02 CRAN (R 3.4.0)
## nor1mix 1.2-2 2016-08-25 CRAN (R 3.4.0)
## openssl 0.9.6 2016-12-31 CRAN (R 3.4.0)
## parallel * 3.4.0 2017-04-21 local
## pkgmaker 0.22 2014-05-14 CRAN (R 3.4.0)
## plyr 1.8.4 2016-06-08 CRAN (R 3.4.0)
## preprocessCore 1.38.1 2017-05-06 Bioconductor
## quadprog 1.5-5 2013-04-17 CRAN (R 3.4.0)
## qvalue 2.8.0 2017-04-25 Bioconductor
## R6 2.2.1 2017-05-10 CRAN (R 3.4.0)
## RColorBrewer 1.1-2 2014-12-07 CRAN (R 3.4.0)
## Rcpp 0.12.10 2017-03-19 CRAN (R 3.4.0)
## RCurl 1.95-4.8 2016-03-01 CRAN (R 3.4.0)
## recount * 1.2.1 2017-05-06 Bioconductor
## RefManageR 0.13.1 2016-11-13 CRAN (R 3.4.0)
## registry 0.3 2015-07-08 CRAN (R 3.4.0)
## rentrez 1.0.4 2016-10-26 CRAN (R 3.4.0)
## reshape 0.8.6 2016-10-21 CRAN (R 3.4.0)
## reshape2 1.4.2 2016-10-22 CRAN (R 3.4.0)
## RJSONIO 1.3-0 2014-07-28 CRAN (R 3.4.0)
## rmarkdown * 1.5 2017-04-26 CRAN (R 3.4.0)
## rngtools 1.2.4 2014-03-06 CRAN (R 3.4.0)
## rpart 4.1-11 2017-03-13 CRAN (R 3.4.0)
## rprojroot 1.2 2017-01-16 CRAN (R 3.4.0)
## Rsamtools 1.28.0 2017-04-25 Bioconductor
## RSkittleBrewer * 1.1 2016-11-15 Github (alyssafrazee/RSkittleBrewer@0088112)
## RSQLite 1.1-2 2017-01-08 CRAN (R 3.4.0)
## rtracklayer 1.36.0 2017-04-25 Bioconductor
## S4Vectors * 0.14.0 2017-04-25 Bioconductor
## scales 0.4.1 2016-11-09 CRAN (R 3.4.0)
## sfsmisc 1.1-0 2016-02-23 CRAN (R 3.4.0)
## siggenes 1.50.0 2017-04-25 Bioconductor
## splines 3.4.0 2017-04-21 local
## stats * 3.4.0 2017-04-21 local
## stats4 * 3.4.0 2017-04-21 local
## stringi 1.1.5 2017-04-07 CRAN (R 3.4.0)
## stringr 1.2.0 2017-02-18 CRAN (R 3.4.0)
## SummarizedExperiment * 1.6.1 2017-05-03 Bioconductor
## survival 2.41-3 2017-04-04 CRAN (R 3.4.0)
## tibble 1.3.0 2017-04-01 CRAN (R 3.4.0)
## tools 3.4.0 2017-04-21 local
## TTR * 0.23-1 2016-03-21 CRAN (R 3.4.0)
## utils * 3.4.0 2017-04-21 local
## VariantAnnotation 1.22.0 2017-04-25 Bioconductor
## withr 1.0.2 2016-06-20 CRAN (R 3.4.0)
## XML 3.98-1.7 2017-05-03 CRAN (R 3.4.0)
## xtable 1.8-2 2016-02-05 CRAN (R 3.4.0)
## xts 0.9-7 2014-01-02 CRAN (R 3.4.0)
## XVector 0.16.0 2017-04-25 Bioconductor
## yaml 2.1.14 2016-11-12 CRAN (R 3.4.0)
## zlibbioc 1.22.0 2017-04-25 Bioconductor
## zoo 1.8-0 2017-04-12 CRAN (R 3.4.0)