Setting up
The following block may be used to set up required libraries and make sure everything is ready to run.
## First ensure that devtools is installed
devp <- try(library(devtools))
if (class(devp) == "try-error") {
install.packages("devtools")
}
## Once that is installed, grab a fresh copy of my analysis code:
devtools::install_github("abelew/hpgltools")
pander::pander(sessionInfo())
R version 3.3.3 RC (2017-02-27 r72279)
**Platform:** x86_64-pc-linux-gnu (64-bit)
locale: LC_CTYPE=en_US.UTF-8, LC_NUMERIC=C, LC_TIME=en_US.UTF-8, LC_COLLATE=en_US.UTF-8, LC_MONETARY=en_US.UTF-8, LC_MESSAGES=en_US.UTF-8, LC_PAPER=en_US.UTF-8, LC_NAME=C, LC_ADDRESS=C, LC_TELEPHONE=C, LC_MEASUREMENT=en_US.UTF-8 and LC_IDENTIFICATION=C
attached base packages: stats, graphics, grDevices, utils, datasets and base
other attached packages: hpgltools(v.2017.01) and rmarkdown(v.1.3)
loaded via a namespace (and not attached): Rcpp(v.0.12.9), xml2(v.1.1.1), roxygen2(v.6.0.1), knitr(v.1.15.1), magrittr(v.1.5), BiocGenerics(v.0.20.0), devtools(v.1.12.0), munsell(v.0.4.3), colorspace(v.1.3-2), R6(v.2.2.0), foreach(v.1.4.3), stringr(v.1.2.0), plyr(v.1.8.4), tools(v.3.3.3), parallel(v.3.3.3), grid(v.3.3.3), Biobase(v.2.34.0), data.table(v.1.10.4), gtable(v.0.2.0), withr(v.1.0.2), commonmark(v.1.1), htmltools(v.0.3.5), iterators(v.1.0.8), yaml(v.2.1.14), lazyeval(v.0.2.0), rprojroot(v.1.2), digest(v.0.6.12), assertthat(v.0.1), tibble(v.1.2), crayon(v.1.3.2), ggplot2(v.2.2.1), base64enc(v.0.1-3), codetools(v.0.2-15), testthat(v.1.0.2), memoise(v.1.0.0), evaluate(v.0.10), stringi(v.1.1.2), pander(v.0.6.0), methods(v.3.3.3), scales(v.0.4.1) and backports(v.1.0.5)
LS0tCnRpdGxlOiAiUk5Bc2VxIG9mIFQuY3J1emkgQ0wtQnJlbmVyIGFuZCBDTC0xNC4iCmF1dGhvcjogImF0YiBhYmVsZXdAZ21haWwuY29tIgpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiCm91dHB1dDoKIGh0bWxfZG9jdW1lbnQ6CiAgY29kZV9kb3dubG9hZDogdHJ1ZQogIGNvZGVfZm9sZGluZzogc2hvdwogIGZpZ19jYXB0aW9uOiB0cnVlCiAgZmlnX2hlaWdodDogNwogIGZpZ193aWR0aDogNwogIGhpZ2hsaWdodDogdGFuZ28KICBrZWVwX21kOiBmYWxzZQogIG1vZGU6IHNlbGZjb250YWluZWQKICBudW1iZXJfc2VjdGlvbnM6IHRydWUKICBzZWxmX2NvbnRhaW5lZDogdHJ1ZQogIHRoZW1lOiBjb3NtbwogIHRvYzogdHJ1ZQogIHRvY19mbG9hdDoKICAgY29sbGFwc2VkOiBmYWxzZQogICBzbW9vdGhfc2Nyb2xsOiBmYWxzZQotLS0KCjxzdHlsZT4KICA8IS0tIERvY3VtZW50IHByZWx1ZGUgcmV2aXNpb24gMjAxNi0xMCAtLT4KICBib2R5IC5tYWluLWNvbnRhaW5lciB7CiAgICBtYXgtd2lkdGg6IDE2MDBweDsKICB9Cjwvc3R5bGU+CgpgYGB7ciBvcHRpb25zLCBpbmNsdWRlPUZBTFNFfQpsaWJyYXJ5KCJocGdsdG9vbHMiKQpkZXZ0b29sczo6bG9hZF9hbGwoIn4vaHBnbHRvb2xzIikKa25pdHI6Om9wdHNfa25pdCRzZXQocHJvZ3Jlc3M9VFJVRSwKICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZT1UUlVFLAogICAgICAgICAgICAgICAgICAgICB3aWR0aD05MCwKICAgICAgICAgICAgICAgICAgICAgZWNobz1UUlVFKQprbml0cjo6b3B0c19jaHVuayRzZXQoZXJyb3I9VFJVRSwKICAgICAgICAgICAgICAgICAgICAgIGZpZy53aWR0aD04LAogICAgICAgICAgICAgICAgICAgICAgZmlnLmhlaWdodD04LAogICAgICAgICAgICAgICAgICAgICAgZHBpPTk2KQpvbGRfb3B0aW9ucyA8LSBvcHRpb25zKGRpZ2l0cz00LAogICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NBc0ZhY3RvcnM9RkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICAga25pdHIuZHVwbGljYXRlLmxhYmVsPSJhbGxvdyIpCmdncGxvdDI6OnRoZW1lX3NldChnZ3Bsb3QyOjp0aGVtZV9idyhiYXNlX3NpemU9MTApKQpzZXQuc2VlZCgxKQpybWRfZmlsZSA8LSAiaW5kZXguUm1kIgpgYGAKCmBgYHtyIHJlbmRlcmluZywgaW5jbHVkZT1GQUxTRSwgZXZhbD1GQUxTRX0KIyMgVGhpcyBibG9jayBpcyB1c2VkIHRvIHJlbmRlciBhIGRvY3VtZW50IGZyb20gd2l0aGluIGl0LgpybWFya2Rvd246OnJlbmRlcihybWRfZmlsZSkKCnJtYXJrZG93bjo6cmVuZGVyKHJtZF9maWxlLCBvdXRwdXRfZm9ybWF0PSJwZGZfZG9jdW1lbnQiLCBvdXRwdXRfb3B0aW9ucz1jKCJza2lwX2h0bWwiKSkKIyMgT3IgdG8gc2F2ZS9sb2FkIGxhcmdlIFJkYXRhIGZpbGVzLgpocGdsdG9vbHM6OjpzYXZlbWUoKQpocGdsdG9vbHM6Ojpsb2FkbWUoKQpybShsaXN0PWxzKCkpCmBgYAoKIyBPdXRsaW5lCgpUaGVyZSBhcmUgYSBmZXcgc3RlcHMgaW52b2x2ZWQgaW4gdGhpcyBwcm9jZXNzOgoKKiBbcHJlcHJvY2Vzc2luZy5odG1sXShwcmVwcm9jZXNzaW5nLmh0bWwpICBQZXJmb3JtaW5nIHNlcXVlbmNlIHRyaW1taW5nLCBlc3RpbWF0aW9uLCBtYXBwaW5nLCBhbmQKICBjb3VudGluZy4KKiBbYW5ub3RhdGlvbi5odG1sXShhbm5vdGF0aW9uLmh0bWwpICBEYXRhIHNoYXJlZCBhY3Jvc3MgYW5hbHlzZXMgKGFubm90YXRpb25zLCBnZW5vbWVzLCBldGMpLgoqIFtzYW1wbGVfZXN0aW1hdGlvbnMuaHRtbF0oc2FtcGxlX2VzdGltYXRpb25zLmh0bWwpICBWaXN1YWxpemUgYW5kIGV4cGxvcmUgdGhlIHNhbXBsZXMsIGxvb2tpbmcgZm9yCiAgb3V0bGllcnMuCiogW2RpZmZlcmVudGlhbF9leHByZXNzaW9uLmh0bWxdKGRpZmZlcmVudGlhbF9leHByZXNzaW9uLmh0bWwpICBQZXJmb3JtIGRpZmZlcmVudGlhbCBleHByZXNzaW9uCiAgYW5hbHlzZXMuCiogW2dlbmVfZmFtaWxpZXMuaHRtbF0oZ2VuZV9mYW1pbGllcy5odG1sKSAgVmlzdWFsaXplIHNwZWNpZmljIGdlbmUgZmFtaWxpZXMuCiogW2dlbmVfb250b2xvZ3kuaHRtbF0oZ2VuZV9vbnRvbG9neS5odG1sKSAgUGVyZm9ybSBvbnRvbG9neSBhbmFseXNlcy4KKiBbZ2VuZV9vbnRvbG9neV9yZWxheGVkX3BfaW5wdXQuaHRtbF0oZ2VuZV9vbnRvbG9neV9yZWxheGVkX3BfaW5wdXQuaHRtbCkgIFBlcmZvcm0gb250b2xvZ3kKICBhbmFseXNlcyB3aXRoIHJlbGF4ZWQgaW5wdXQuCiogW2dlbmVfb250b2xvZ3lfcmVsYXhlZF9mY19pbnB1dC5odG1sXShnZW5lX29udG9sb2d5X3JlbGF4ZWRfZmNfaW5wdXQuaHRtbCkgIFBlcmZvcm0gb250b2xvZ3kKICBhbmFseXNlcyB3aXRoIHJlbGF4ZWQgaW5wdXQuCiogW2tlZ2cuaHRtbF0oa2VnZy5odG1sKSBLRUdHIGFuYWx5c2VzCgpUaGlzIGRvY3VtZW50IGlzIGNvbmNlcm5lZCB3aXRoIGFuYWx5emluZyBSTkFTZXEgZGF0YSBvZiBodW1hbiBhbmQgcGFyYXNpdGVzIGR1cmluZyBpbmZlY3Rpb24uClR3byBkaWZmZXJlbnQgY3J1emkgc3RyYWlucyB3ZXJlIHVzZWQ6IENMLTE0IGFuZCBDTC1CcmVuZXIuICBJIGFtIG5vdCBjZXJ0YWluIHRoZSBpbmZlY3Rpb24KY29uZGl0aW9ucywgdW5mb3J0dW5hdGVseSAtLSBJIHRoaW5rICh0aGFuayB5b3UsIEVkc29uISkgdGhhdCB0aGV5IGFyZSBodW1hbiBmb3Jlc2tpbiBmaWJyb2JsYXN0cy4KCiMgVE9ETyBsaXN0CgojIyAyMDE2LTExLTE2CgoxLiAgSW5jbHVkZSB3aXRoIHRoZSBzaWduaWZpY2FuY2UgYmFyIHBsb3RzIHRoZSB0YWJsZSBkZXNjcmliaW5nIHRoZSBudW1iZXIgb2YgZ2VuZXMgYXQgZWFjaCBjdXRvZmYKICAgIGFuZCBwdXQgaXQgdG8gdGhlIHJpZ2h0IG9mIHRoZSBncmFwaC4KMi4gIFJlZG8gc2lnbmlmaWNhbmNlIGJhciBwbG90cyB3aXRoIHRoZSBmb2xsb3dpbmcgMyBjb250cmFzdHM6CiAgICB0cnlwIHRvIGE2MCwgYTYwIHRvIGE5NiwgYW5kIGE5NiB0byB0cnlwCgojIyAyMDE2LTEwLTI0CgoxLiAgRGlmZmVyZW50IGNvbG9yZWQgbWEgcGxvdHMgd2l0aCBnZW5lIGZhbWlsaWVzIGhhdmluZyBmdW4gY29sb3JzLgoyLgoKIyMgMjAxNi0xMC0wNQoKMS4gIEJhciBwbG90IG9mIERFIGdlbmVzIHVwL2Rvd24gYXMgcGVyIGZpZ3VyZSA0IG9mIHRoZSBsZWlzaG1hbmlhIHBhcGVyLgoKIyMgMjAxNi0wOS0yNQoKMS4gIERpc3RhbmNlL0NvcnJlbGF0aW9uIGhlYXRtYXAocykgZm9yIHNhbXBsZSBlc3RpbWF0aW9uCiAgICAqIERvIHRoZXNlIGluY2x1ZGUgQ0wxNCBlcGltYXN0aWdvdGUgc2FtcGxlcz8gIElmIG5vdCwgd2h5PwogICAgKiBKdXN0IGluIGNhc2UsIHBlcmZvcm0gb25lIHdpdGggYW5kIG9uZSB3aXRob3V0LgoyLiAgUENBIGFuYWx5c2lzIGliaWQuCjMuICBNQSBwbG90cyBvZiBsaW1tYSBERSBjb250cmFzdHM6CiAgICAqIGVwaS90cnlwIENMQnIKICAgICogYTYwL3RyeXAgQ0xCcgogICAgKiBhOTYvYTYwIENMQnIKICAgICogdHJ5cC9hOTYgQ0xCcgo0LiAgSSB0aGluayBTYW50dXphIHNlbnQgYW4gZW1haWwgd2l0aCBmdXJ0aGVyIGluc3RydWN0aW9ucy4KCiMjIyBUaGUgYWJvdmUgZnJvbSBhbiBlbWFpbCBJIGp1c3Qgd3JvdGUKCjEuIGZpZ3VyZXNfYXRiL2ZpZ3VyZV8wMgogICAgYS4gIDEgc3ZnIGltYWdlIGZvciBlYWNoIGhlYXRtYXAgYXMgSSB0aGluayB5b3UgcHJlZmVyIChkb25lKQogICAgYi4gIDEgcG93ZXJwb2ludCBzbGlkZSBjb250YWluaW5nIHRoZSBzYW1lIGltYWdlcyBsYWlkIG91dCBhcyBwZXIgKGRvbmUpCiAgICAgICAgdGhlIGV4aXN0aW5nIEZpZzIucHB0eAoyLiB0YWJsZXNfYXRiL3RhYmxlX3MwMwogICAgYS4gMSB4bHN4IGltaXRhdGluZyB0aGF0IGZvdW5kIGluIFMzIFRhYmxlLnhsc3ggYnV0IGluY2x1ZGluZwogICAgICAgZXBpL3RyeXAgQ0xCciBhbmQgbGFja2luZyBuY1JOQSBmZWF0dXJlcy4KMy4gZmlndXJlc19hdGIvZmlndXJlXzAzCiAgICBhLiAxIHN2ZyBpbWFnZSBmb3IgZWFjaCBtYSBwbG90CiAgICBiLiAxIHBvd2VycG9pbnQgLi4uIGFzIHBlciAxYiBhYm92ZS4KNC4gZmlndXJlc19hdGIvZmlndXJlXzA1CiAgICBhLiBpYmlkLgo1LiB3b3Jrc2hlZXRzX2F0Yi8KICAgIGEuIGFubm90YXRpb25zLmh0bWw6IEFjdGlvbnMgcGVyZm9ybWVkIHRvIGNyZWF0ZSBhIHNldCBvZgogICAgICAgYW5ub3RhdGlvbnMgZm9yICMyIGxhY2tpbmcgbmNSTkFzLgogICAgYi4gc2FtcGxlX2VzdGltYXRpb25zLmh0bWw6IEFjdGlvbnMgcGVyZm9ybWVkIGZvciAjMS4KICAgIGMuIGRpZmZlcmVudGlhbF9leHByZXNzaW9uLmh0bWw6ICBBY3Rpb25zIHBlcmZvcm1lZCBmb3IgIzIsMyw0LgoKIyMgUHJldmlvdXMKCjEuICBTUkEgc3VibWlzc2lvbiBmb3IgQ0wxNC9DTEJyIHNhbXBsZXMKMi4gIFJlYWQgdGhyb3VnaCBtZXRob2RzIGFuZCBlbnN1cmUgbWFwcGluZyBwYXJhbWV0ZXJzIGV0YyBtYWtlIHNlbnNlLgoKIyBSTkFzZXF1ZW5jaW5nIG9mIENMMTQgYW5kIENMQnJlbmVyCgpUaGlzIGRvY3VtZW50IGF0dGVtcHRzIHRvIHBlcmZvcm0gYW5hbHlzZXMgb2YgYW4gUk5BIHNlcXVlbmNpbmcgZXhwZXJpbWVudCB0bwpjb21wYXJlIHRoZSBSTkEgZXhwcmVzc2lvbiBwcm9maWxlcyBvZiB0aGUgVC4gY3J1emkgc3RyYWluczogQ0wxNCBhbmQgQ0xCcmVuZXIuClRoZXNlIGNvbGxlY3Rpb25zIHdlcmUgcGVyZm9ybWVkIHdpdGggRXBpbWFzdGlnb3RlcywgVHJ5cG9tYXN0aWdvdGVzLCBhbmQKQW1hc3RpZ290ZXMgYXQgdGltZXMgNjAgYW5kIDk2IGhvdXJzIGFmdGVyIGluZmVjdGlvbi4KCiMgU2V0dGluZyB1cAoKVGhlIGZvbGxvd2luZyBibG9jayBtYXkgYmUgdXNlZCB0byBzZXQgdXAgcmVxdWlyZWQgbGlicmFyaWVzIGFuZCBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyByZWFkeSB0bwpydW4uCgpgYGB7ciBzZXR1cF9yLCBldmFsPUZBTFNFfQojIyBGaXJzdCBlbnN1cmUgdGhhdCBkZXZ0b29scyBpcyBpbnN0YWxsZWQKZGV2cCA8LSB0cnkobGlicmFyeShkZXZ0b29scykpCmlmIChjbGFzcyhkZXZwKSA9PSAidHJ5LWVycm9yIikgewogICAgaW5zdGFsbC5wYWNrYWdlcygiZGV2dG9vbHMiKQp9CgojIyBPbmNlIHRoYXQgaXMgaW5zdGFsbGVkLCBncmFiIGEgZnJlc2ggY29weSBvZiBteSBhbmFseXNpcyBjb2RlOgpkZXZ0b29sczo6aW5zdGFsbF9naXRodWIoImFiZWxldy9ocGdsdG9vbHMiKQpgYGAKCgpgYGB7ciBzeXNpbmZvLCByZXN1bHRzPSdhc2lzJ30KcGFuZGVyOjpwYW5kZXIoc2Vzc2lvbkluZm8oKSkKYGBgCg==