<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>Fellgernon Bit - rstats</title>
    <link>https://lcolladotor.github.io/categories/rstats/</link>
      <atom:link href="https://lcolladotor.github.io/categories/rstats/index.xml" rel="self" type="application/rss+xml"/>
    <description>Fellgernon Bit posts from the rstats category</description>
    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><copyright>© 2011-2022. All thoughts and opinions here are my own. The icon was designed by [Mauricio Guzmán](https://www.linkedin.com/in/mauricio-guzman-6529b551/) and is inspired by [Huichol culture](https://en.wikipedia.org/wiki/Huichol); it represents my community building interests</copyright><lastBuildDate>Tue, 03 Nov 2020 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://lcolladotor.github.io/images/icon_hu2b32c4ab415f12f472f73c7b0301b0d1_19400_512x512_fill_lanczos_center_3.png</url>
      <title>rstats</title>
      <link>https://lcolladotor.github.io/categories/rstats/</link>
    </image>
    
    <item>
      <title>Cleaning up my R packages and config files</title>
      <link>https://lcolladotor.github.io/2020/11/03/cleaning-up-my-r-packages-and-config-files/</link>
      <pubDate>Tue, 03 Nov 2020 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2020/11/03/cleaning-up-my-r-packages-and-config-files/</guid>
      <description>
&lt;script src="https://lcolladotor.github.io/rmarkdown-libs/header-attrs/header-attrs.js"&gt;&lt;/script&gt;
&lt;link href="https://lcolladotor.github.io/rmarkdown-libs/anchor-sections/anchor-sections.css" rel="stylesheet" /&gt;
&lt;script src="https://lcolladotor.github.io/rmarkdown-libs/anchor-sections/anchor-sections.js"&gt;&lt;/script&gt;


&lt;p&gt;Today was an unusual day at work given the US Elections. This meant that I had fewer meetings than what I’ve had lately. Earlier in the day I noticed an email announcing that the Bioconductor 3.13 docker image had been released for the next 6 month development cycle, which was a reminder of the recent &lt;a href="http://bioconductor.org/news/bioc_3_12_release/"&gt;Bioconductor 3.12 release&lt;/a&gt;. This prompted me to start updating my R packages.&lt;/p&gt;
&lt;p&gt;In the past, I’ve updated all my currently installed R packages using the framework I described in a &lt;a href="http://lcolladotor.github.io/2017/05/04/updating-r/#.X6ICiIhKguU"&gt;2017 blog post&lt;/a&gt;. I remember seeing a tweet by &lt;a href="https://twitter.com/hadleywickham"&gt;Hadley Wickham&lt;/a&gt; not so long ago &lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; that for him, a new R version was an opportunity to start with a clean slate. I like having everything I need ready to use, but well, my list of installed R packages was getting pretty long. Given that 4 year windows of time are in our minds, it felt like a good opportunity to clean my house. Or well, my R packages.&lt;/p&gt;
&lt;p&gt;Thus, I started writing down which are the packages I want to have installed. At this point for me, that includes several R/Bioconductor packages I’ve made and their dependencies in case I need to work on them to resolve bugs or add new features. My R packages already use many of my favorite R packages, so I took advantage of this in order to avoid having to list every single R package I like using. In order to achieve this, I used the &lt;code&gt;dependencies = TRUE&lt;/code&gt; argument that you can use with &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=remotes"&gt;remotes&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=BiocManager"&gt;BiocManager&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;## Install from scratch
if (!requireNamespace(&amp;quot;remotes&amp;quot;, quietly = TRUE))
    install.packages(&amp;quot;remotes&amp;quot;)
remotes::install_cran(&amp;quot;BiocManager&amp;quot;)
BiocManager::version()

## Rprofile packages
remotes::install_github(c(
    &amp;quot;jalvesaq/colorout&amp;quot;
))
remotes::install_cran(c(
    &amp;quot;devtools&amp;quot;,
    &amp;quot;usethis&amp;quot;
))

## Main packages
BiocManager::install(c(
    &amp;quot;biocthis&amp;quot;,
    &amp;quot;brainflowprobes&amp;quot;,
    &amp;quot;derfinder&amp;quot;,
    &amp;quot;derfinderPlot&amp;quot;,
    &amp;quot;GenomicState&amp;quot;,
    &amp;quot;megadepth&amp;quot;,
    &amp;quot;recount&amp;quot;,
    &amp;quot;recountWorkflow&amp;quot;,
    &amp;quot;recount3&amp;quot;,
    &amp;quot;regutools&amp;quot;,
    &amp;quot;regionReport&amp;quot;,
    &amp;quot;spatialLIBD&amp;quot;
), dependencies = TRUE, update = FALSE)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once I had my main packages, I started adding some from LIBD, some from CRAN, and other ones from Bioconductor. You can see the full list at my team’s website under &lt;a href="https://lcolladotor.github.io/bioc_team_ds/config-files.html#r-packages"&gt;Config files: R setup; R packages&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I was curious about how these changes affected my list of installed R packages and used my older &lt;a href="http://lcolladotor.github.io/2017/05/04/updating-r/#.X6ICiIhKguU"&gt;2017 blog post&lt;/a&gt; code to check this. That resulted in &lt;a href="https://gist.github.com/lcolladotor/d0af9b22e3806af196233655dce54fde"&gt;this list&lt;/a&gt; which shows 423 installed R packages and 589 that I used to have installed. I suspect that several of them will come back. For example, I needed to install &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; to work on this blog post. Some of the 423 packages are new, like &lt;em&gt;&lt;a href="https://github.com/gadenbuie/rsthemes"&gt;rsthemes&lt;/a&gt;&lt;/em&gt; which we recently learned about at the LIBD rstats club.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;Today &lt;a href="https://twitter.com/lcolladotor?ref_src=twsrc%5Etfw"&gt;@lcolladotor&lt;/a&gt; went over new &lt;a href="https://twitter.com/rstudio?ref_src=twsrc%5Etfw"&gt;@rstudio&lt;/a&gt; &amp;amp; &lt;a href="https://twitter.com/Bioconductor?ref_src=twsrc%5Etfw"&gt;@Bioconductor&lt;/a&gt; developments that was started by tweets by &lt;a href="https://twitter.com/apreshill?ref_src=twsrc%5Etfw"&gt;@apreshill&lt;/a&gt; &amp;amp; &lt;a href="https://twitter.com/grrrck?ref_src=twsrc%5Etfw"&gt;@grrrck&lt;/a&gt; + new &lt;a href="https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstats&lt;/a&gt; &#128230;s &lt;a href="https://twitter.com/hashtag/recount3?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#recount3&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/megadepth?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#megadepth&lt;/a&gt; involving &lt;a href="https://twitter.com/chrisnwilks?ref_src=twsrc%5Etfw"&gt;@chrisnwilks&lt;/a&gt; &lt;a href="https://twitter.com/dyzhang32?ref_src=twsrc%5Etfw"&gt;@dyzhang32&lt;/a&gt; et al&lt;br&gt;&lt;br&gt;&#128249;&lt;a href="https://t.co/E0DZ9Ej5qV"&gt;https://t.co/E0DZ9Ej5qV&lt;/a&gt;&lt;br&gt;&#128211; &lt;a href="https://t.co/FnDvcUmyUO"&gt;https://t.co/FnDvcUmyUO&lt;/a&gt;&lt;br&gt;&#128064;&lt;a href="https://t.co/mEbQirhkF6"&gt;https://t.co/mEbQirhkF6&lt;/a&gt; &lt;a href="https://t.co/BWByp9W7Wh"&gt;pic.twitter.com/BWByp9W7Wh&lt;/a&gt;&lt;/p&gt;&amp;mdash; LIBD rstats club (@LIBDrstats) &lt;a href="https://twitter.com/LIBDrstats/status/1312187753371561984?ref_src=twsrc%5Etfw"&gt;October 3, 2020&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;div id="config-files" class="section level3"&gt;
&lt;h3&gt;Config files&lt;/h3&gt;
&lt;p&gt;Since I was doing all this work on both my macOS and Windows laptops for my R setup, I also went ahead and cleaned up a bit my configuration files. I have several of them with settings that I recommend others to use. That’s why I wrote a little “chapter” about them on my &lt;a href="https://lcolladotor.github.io/bioc_team_ds/config-files.html#config-files"&gt;team’s website&lt;/a&gt;. The list includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Software I use (including R and RStudio)&lt;/li&gt;
&lt;li&gt;R packages&lt;/li&gt;
&lt;li&gt;R configuration files such as &lt;code&gt;~/.Rprofile&lt;/code&gt; and &lt;code&gt;~/.Renviron&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Git configuration files &lt;code&gt;~/.gitconfig&lt;/code&gt; and &lt;code&gt;~/.gitignore_global&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;JHPCE (linux) configuration files such as &lt;code&gt;~/.bashrc&lt;/code&gt;, &lt;code&gt;~/.inputrc&lt;/code&gt;, &lt;code&gt;~/.bash_profile&lt;/code&gt; and &lt;code&gt;~/.sge_request&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="wrapping-up" class="section level3"&gt;
&lt;h3&gt;Wrapping up&lt;/h3&gt;
&lt;p&gt;I’m hoping that all this information will be useful to both current and new team members, but it could be useful also to you. Though you might need to adapt some things. Earlier on in my career I learned from how others use configuration files to speed up their work or make their work experience more enjoyable. I’m still learning, but now I have a decent bag of tricks to share too.&lt;/p&gt;
&lt;p&gt;Have fun!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2020-11-03-cleaning-up-my-r-packages-and-config-files/Bag-of-Tricks-1.jpg" width="400" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://criticalhitgamingsupplies.com/product/bag-of-tricks/"&gt;Image source&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.12/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oles, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/cboettig/knitcitations'&gt;Boettiger, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2020"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2020.
URL: &lt;a href="https://github.com/cboettig/knitcitations"&gt;https://github.com/cboettig/knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. CsÃ¡rdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oles, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.18.0.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## - Session info -------------------------------------------------------------------------------------------------------
##  setting  value                       
##  version  R version 4.0.3 (2020-10-10)
##  os       Windows 10 x64              
##  system   x86_64, mingw32             
##  ui       RTerm                       
##  language (EN)                        
##  collate  English_United States.1252  
##  ctype    English_United States.1252  
##  tz       America/New_York            
##  date     2020-11-03                  
## 
## - Packages -----------------------------------------------------------------------------------------------------------
##  package       * version date       lib source                                 
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 4.0.3)                         
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 4.0.3)                         
##  BiocStyle     * 2.18.0  2020-10-27 [1] Bioconductor                           
##  blogdown        0.21    2020-10-11 [1] CRAN (R 4.0.3)                         
##  bookdown        0.21    2020-10-13 [1] CRAN (R 4.0.3)                         
##  cli             2.1.0   2020-10-12 [1] CRAN (R 4.0.3)                         
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 4.0.3)                         
##  digest          0.6.27  2020-10-24 [1] CRAN (R 4.0.3)                         
##  evaluate        0.14    2019-05-28 [1] CRAN (R 4.0.3)                         
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 4.0.3)                         
##  generics        0.1.0   2020-10-31 [1] CRAN (R 4.0.3)                         
##  glue            1.4.2   2020-08-27 [1] CRAN (R 4.0.3)                         
##  htmltools       0.5.0   2020-06-16 [1] CRAN (R 4.0.3)                         
##  httr            1.4.2   2020-07-20 [1] CRAN (R 4.0.3)                         
##  jsonlite        1.7.1   2020-09-07 [1] CRAN (R 4.0.3)                         
##  knitcitations * 1.0.10  2020-11-03 [1] Github (cboettig/knitcitations@ea5d202)
##  knitr           1.30    2020-09-22 [1] CRAN (R 4.0.3)                         
##  lubridate       1.7.9   2020-06-08 [1] CRAN (R 4.0.3)                         
##  magrittr        1.5     2014-11-22 [1] CRAN (R 4.0.3)                         
##  plyr            1.8.6   2020-03-03 [1] CRAN (R 4.0.3)                         
##  R6              2.5.0   2020-10-28 [1] CRAN (R 4.0.3)                         
##  Rcpp            1.0.5   2020-07-06 [1] CRAN (R 4.0.3)                         
##  RefManageR      1.3.0   2020-11-03 [1] Github (ropensci/RefManageR@ab8fe60)   
##  rlang           0.4.8   2020-10-08 [1] CRAN (R 4.0.3)                         
##  rmarkdown       2.5     2020-10-21 [1] CRAN (R 4.0.3)                         
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 4.0.3)                         
##  stringi         1.5.3   2020-09-09 [1] CRAN (R 4.0.3)                         
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 4.0.3)                         
##  withr           2.3.0   2020-09-22 [1] CRAN (R 4.0.3)                         
##  xfun            0.19    2020-10-30 [1] CRAN (R 4.0.3)                         
##  xml2            1.3.2   2020-04-23 [1] CRAN (R 4.0.3)                         
##  yaml            2.2.1   2020-02-01 [1] CRAN (R 4.0.3)                         
## 
## [1] D:/R/R-4.0.3/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;I couldn’t find the tweet right now.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>The start of a new phase for me</title>
      <link>https://lcolladotor.github.io/2020/09/21/the-start-of-a-new-phase-for-me/</link>
      <pubDate>Mon, 21 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2020/09/21/the-start-of-a-new-phase-for-me/</guid>
      <description>


&lt;p&gt;Today I have accepted a new role at the &lt;a href="https://www.libd.org/"&gt;Lieber Institute for Brain Development&lt;/a&gt; (LIBD) as an &lt;strong&gt;Investigator&lt;/strong&gt;. Since LIBD is affiliated with Johns Hopkins University (JHU), LIBD will support me on becoming a JHU faculty member &lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;. This change means that I’ll now be leading a team at LIBD, which is why I’m actively working on a new website &lt;a href="#fn2" class="footnote-ref" id="fnref2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt; called &lt;a href="https://lcolladotor.github.io/bioc_team_ds/"&gt;R/Bioconductor-powered Team Data Science&lt;/a&gt;. On that website I’m implementing the ideas I recently proposed on &lt;a href="https://speakerdeck.com/lcolladotor/another-ds-group-type"&gt;&lt;em&gt;another type of data science group&lt;/em&gt;&lt;/a&gt; which involve &lt;a href="https://lcolladotor.github.io/bioc_team_ds/data-science-guidance-sessions.html"&gt;Data Science guidance sessions&lt;/a&gt; based on my three year experience as a teaching assistant for the MPH capstone at JHBSPH.&lt;/p&gt;
&lt;script async class="speakerdeck-embed" data-id="c6c779d808e142d4999bf1c0bbe4e2ee" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;p&gt;I also plan to make publicly available as much material as we can. This will include a &lt;a href="https://lcolladotor.github.io/bioc_team_ds/rbioconductor-data-science-bootcamps.html"&gt;series of bootcamps&lt;/a&gt; that I’m going to start running today for my team members and guests. It will also include our team &lt;a href="https://lcolladotor.github.io/bioc_team_ds/team-meetings.html#papers-software"&gt;journal/software club presentations&lt;/a&gt; as well as the &lt;a href="http://research.libd.org/rstatsclub/#.X2jRxGdKiuo"&gt;LIBD rstats club&lt;/a&gt; presentations. The &lt;a href="https://lcolladotor.github.io/bioc_team_ds/rbioconductor-data-science-bootcamps.html#bootcamp-source-materials"&gt;material that I’ll be using&lt;/a&gt; was made by many collaborators and friends at JHU, Harvard, WEHI, RStudio and the &lt;a href="https://twitter.com/search?q=%23rstats&amp;amp;src=typed_query"&gt;rstats&lt;/a&gt; community in general. I’m really thankful that so many people have shared their educational materials in ways that can be re-used and for making it easier for all of us to learn from them. Thank you!&lt;/p&gt;
&lt;p&gt;Beyond the 20% education and data science guidance efforts, my team will be working with our LIBD peers, JHU collaborators, and external allies on interesting research projects such as the &lt;strong&gt;teamSpatial&lt;/strong&gt; &lt;a href="#fn3" class="footnote-ref" id="fnref3"&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt; that developed &lt;a href="https://twitter.com/search?q=%23spatialLIBD&amp;amp;src=typed_query"&gt;#spatialLIBD&lt;/a&gt;, &lt;a href="https://twitter.com/search?q=%23recount3&amp;amp;src=typed_query"&gt;#recount3&lt;/a&gt;, and many other upcoming projects in the realms of RNA-seq, R/Bioconductor, and genomics. We will be developing methods and software, analyzing data, and aim to build a stronger bridge between LIBD and JHU.&lt;/p&gt;
&lt;p&gt;I’m really thankful to everyone who has been a part of my journey: mentors, colleagues, allies, sponsors, and many friends. I want to highlight my mentors &lt;a href="https://twitter.com/jtleek"&gt;Jeff Leek&lt;/a&gt; and &lt;a href="https://twitter.com/andrewejaffe"&gt;Andrew Jaffe&lt;/a&gt; without whom I wouldn’t be where I am right now. They’ve always been my fiercest advocates and have looked out for me all these years. It’s now my turn to try have a positive influence in others, though they set a very high bar! I have a lot to learn and work to do, but I’m looking forward to it. At LIBD, JHU and elsewhere I have many people I can ask for support, which I’m grateful for.&lt;/p&gt;
&lt;p&gt;Finally, after reading Jeff Leek’s &lt;em&gt;How to be a modern scientist&lt;/em&gt; book in preparation for the &lt;a href="https://lcolladotor.github.io/bioc_team_ds/how-to-be-a-modern-scientist.html"&gt;first bootcamp today&lt;/a&gt;, I’ve updated my Twitter username to match my GitHub one. That is, I’ve gone from &lt;code&gt;fellgernon&lt;/code&gt; to &lt;code&gt;lcolladotor&lt;/code&gt;. See you around &lt;a href="https://twitter.com/lcolladotor"&gt;on Twitter&lt;/a&gt; and elsewhere!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://lcolladotor.github.io/img/Leo_transparente.png" width="200px" /&gt;&lt;/p&gt;
&lt;p&gt;P.S. If you find this type of team and the work that we do appealing, let me know and we’ll evaluate what options are available =)&lt;/p&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.12/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://lcolladotor.github.io/bioc_team_ds/"&gt;R/Bioconductor-powered Team Data Science&lt;/a&gt; was made possible thanks to &lt;code&gt;bookdown&lt;/code&gt; and a GitHub Actions workflow that depends on &lt;a href="http://bioconductor.org/help/docker/"&gt;Bioconductor’s docker image&lt;/a&gt;, which in turn depends on the &lt;a href="https://www.rocker-project.org/"&gt;Rocker Project&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=bookdown"&gt;bookdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2016'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/bookdown'&gt;Xie, 2016&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.17.0.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2016'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2016"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie.
&lt;em&gt;bookdown: Authoring Books and Technical Documents with R Markdown&lt;/em&gt;.
ISBN 978-1138700109.
Boca Raton, Florida: Chapman and Hall/CRC, 2016.
URL: &lt;a href="https://github.com/rstudio/bookdown"&gt;https://github.com/rstudio/bookdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[5]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 4.0.2 (2020-06-22)
##  os       macOS Catalina 10.15.6      
##  system   x86_64, darwin17.0          
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-09-21                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 4.0.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 4.0.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 4.0.0)                    
##  BiocStyle     * 2.17.0  2020-05-14 [1] Bioconductor                      
##  blogdown        0.20    2020-06-23 [1] CRAN (R 4.0.2)                    
##  bookdown        0.20    2020-06-23 [1] CRAN (R 4.0.2)                    
##  cli             2.0.2   2020-02-28 [1] CRAN (R 4.0.0)                    
##  colorout      * 1.2-2   2020-05-18 [1] Github (jalvesaq/colorout@726d681)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 4.0.0)                    
##  digest          0.6.25  2020-02-23 [1] CRAN (R 4.0.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 4.0.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 4.0.0)                    
##  generics        0.0.2   2018-11-29 [1] CRAN (R 4.0.0)                    
##  glue            1.4.2   2020-08-27 [1] CRAN (R 4.0.2)                    
##  htmltools       0.5.0   2020-06-16 [1] CRAN (R 4.0.2)                    
##  httr            1.4.2   2020-07-20 [1] CRAN (R 4.0.2)                    
##  jsonlite        1.7.1   2020-09-07 [1] CRAN (R 4.0.2)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 4.0.0)                    
##  knitr           1.29    2020-06-23 [1] CRAN (R 4.0.2)                    
##  lubridate       1.7.9   2020-06-08 [1] CRAN (R 4.0.2)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 4.0.0)                    
##  plyr            1.8.6   2020-03-03 [1] CRAN (R 4.0.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 4.0.0)                    
##  Rcpp            1.0.5   2020-07-06 [1] CRAN (R 4.0.2)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 4.0.0)                    
##  rlang           0.4.7   2020-07-09 [1] CRAN (R 4.0.2)                    
##  rmarkdown       2.3     2020-06-18 [1] CRAN (R 4.0.2)                    
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 4.0.0)                    
##  stringi         1.5.3   2020-09-09 [1] CRAN (R 4.0.2)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 4.0.0)                    
##  withr           2.2.0   2020-04-20 [1] CRAN (R 4.0.0)                    
##  xfun            0.17    2020-09-09 [1] CRAN (R 4.0.2)                    
##  xml2            1.3.2   2020-04-23 [1] CRAN (R 4.0.0)                    
##  yaml            2.2.1   2020-02-01 [1] CRAN (R 4.0.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/4.0branch/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;The rules are Department and School specific at JHU, which is something that I have yet to explore in detail.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn2"&gt;&lt;p&gt;It’s technically a book made using &lt;code&gt;bookdown&lt;/code&gt;.&lt;a href="#fnref2" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn3"&gt;&lt;p&gt;&lt;a href="https://twitter.com/martinowk"&gt;Keri Martinowich&lt;/a&gt;, &lt;a href="https://twitter.com/kr_maynard"&gt;Kristen Maynard&lt;/a&gt;, &lt;a href="https://twitter.com/stephaniehicks"&gt;Stephanie Hicks&lt;/a&gt;, and their team members.&lt;a href="#fnref3" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Research Scientist: an academic career launch pad</title>
      <link>https://lcolladotor.github.io/2020/03/16/research-scientist-an-academic-career-launch-pad/</link>
      <pubDate>Mon, 16 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2020/03/16/research-scientist-an-academic-career-launch-pad/</guid>
      <description>


&lt;p&gt;&lt;img src="http://lcolladotor.github.io/authors/admin/avatar_hub730ffb954e879fe0ab174cacb839b41_1326712_270x270_fill_lanczos_center_2.png" align="center" /&gt;&lt;/p&gt;
&lt;p&gt;After a long start to 2020 including the past four very busy weeks, I’m happy to announce that today March 16th 2020 I accepted a position as &lt;strong&gt;Research Scientist&lt;/strong&gt; at the &lt;a href="https://www.libd.org/"&gt;Lieber Institute for Brain Development&lt;/a&gt; in Baltimore, MD, USA.&lt;/p&gt;
&lt;iframe src="https://giphy.com/embed/jRZXsVd7xbBAIF08eH" width="480" height="270" frameBorder="0" class="giphy-embed" allowFullScreen&gt;
&lt;/iframe&gt;
&lt;p&gt;
&lt;a href="https://giphy.com/gifs/basketsfx-sign-autograph-there-jRZXsVd7xbBAIF08eH"&gt;via GIPHY&lt;/a&gt;
&lt;/p&gt;
&lt;div id="what-will-i-do-as-a-research-scientist-at-libd" class="section level3"&gt;
&lt;h3&gt;What will I do as a Research Scientist at LIBD?&lt;/h3&gt;
&lt;p&gt;At LIBD we currently have the following scientific ranks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Research Technician&lt;/li&gt;
&lt;li&gt;Research Assistant&lt;/li&gt;
&lt;li&gt;Research Associate&lt;/li&gt;
&lt;li&gt;Staff Scientist I, II and III&lt;/li&gt;
&lt;li&gt;Research Scientist (+ Lead and Senior)&lt;/li&gt;
&lt;li&gt;Investigator (+ Lead and Senior)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Research Scientists carry out research, do so scholarly, are tasked with being creative, are encouraged to seek funding, and can have supervisory and mentor roles.&lt;/p&gt;
&lt;p&gt;In my agreement with LIBD, I will remain affiliated with the Data Science Team I led by &lt;a href="http://aejaffe.com/"&gt;Andrew E Jaffe&lt;/a&gt; while also having the opportunity to interact with and collaborate with fantastic biologists, data scientists, and researchers at LIBD, Johns Hopkins University, and beyond. Furthermore, I will officially help mentor LIBD scientists in data science and R tools. LIBD will support me while I build a small team around my research interests and prepare my first set of grant submissions. There will be a transition period and many things I need to learn: from requesting a budget to writing a job ad, as well as many details about grant requests. But ultimately, LIBD offered me a launch pad for an academic career.&lt;/p&gt;
&lt;iframe src="https://giphy.com/embed/xiN0BXMETVsx0AxTXt" width="315" height="480" frameBorder="0" class="giphy-embed" allowFullScreen&gt;
&lt;/iframe&gt;
&lt;p&gt;
&lt;a href="https://giphy.com/gifs/usnationalarchives-night-nasa-xiN0BXMETVsx0AxTXt"&gt;via GIPHY&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="details" class="section level3"&gt;
&lt;h3&gt;Details&lt;/h3&gt;
&lt;p&gt;One of my first tasks will be to refine the details of my role. For example, right now on the teaching side of things I’m imagining doing the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lead a weekly &lt;a href="http://research.libd.org/rstatsclub/"&gt;LIBD rstats club&lt;/a&gt; meeting where I can go over topics common to several users.&lt;/li&gt;
&lt;li&gt;Hold one-on-one data science guidance sessions, similar to the MPH capstone sessions I did during my teaching assistant years at JHBSPH.&lt;/li&gt;
&lt;li&gt;Occasionally lead internal workshops, which could benefit from workshops I prepare for &lt;a href="https://comunidadbioinfo.github.io/"&gt;CDSB&lt;/a&gt; and elsewhere.&lt;/li&gt;
&lt;li&gt;Get &lt;a href="https://education.rstudio.com/trainers/#info"&gt;certified by RStudio&lt;/a&gt; and attend more R conferences &amp;amp; workshops.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From the scientific side, I will also learn more about the biological questions my LIBD colleagues are working on. These hypothesis-driven projects will provide me a new set of challenges and I will perform what me and my &lt;a href="https://www.lcg.unam.mx/"&gt;LCG-UNAM&lt;/a&gt; classmates were trained to do: to function as a bridge between multiple fields. I will also keep learning from my JHU colleagues and working with them as I refine my ideas. Currently, this is how I have framed my research interests:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My research aims to better understand the roots and signatures of disease (particularly psychiatric disorders) by zooming in across dimensions of gene activity: from studying gene expression at all feature levels (genes to exons to exon-exon junctions and un-annotated regions of expression), to using different gene expression measurement technologies (bulk RNA-seq, single cell/nuclei RNA-seq to spatial transcriptomics) that provide finer biological resolution and localization of gene expression. I’m interested in both hypothesis-driven projects as well as building general resources such as &lt;a href="https://jhubiostatistics.shinyapps.io/recount/"&gt;recount2&lt;/a&gt; that enable us to contextualize our findings across all of the public human gene expression landscape. I use the &lt;a href="https://cran.r-project.org/"&gt;R programming language&lt;/a&gt; for nearly all my work and like to organize my code in R packages that I share mostly through the &lt;a href="http://bioconductor.org/"&gt;Bioconductor project&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2020-03-16-research-scientist-an-academic-career-launch-pad_files/marvin-meyer-SYTO3xs06fU-unsplash.jpg" width="800" /&gt;&lt;/p&gt;
&lt;a style="background-color:black;color:white;text-decoration:none;padding:4px 6px;font-family:-apple-system, BlinkMacSystemFont, &amp;quot;San Francisco&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Ubuntu, Roboto, Noto, &amp;quot;Segoe UI&amp;quot;, Arial, sans-serif;font-size:12px;font-weight:bold;line-height:1.2;display:inline-block;border-radius:3px" href="https://unsplash.com/@marvelous?utm_medium=referral&amp;amp;utm_campaign=photographer-credit&amp;amp;utm_content=creditBadge" target="_blank" rel="noopener noreferrer" title="Download free do whatever you want high-resolution photos from Marvin Meyer"&gt;&lt;span style="display:inline-block;padding:2px 3px"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" style="height:12px;width:auto;position:relative;vertical-align:middle;top:-2px;fill:white" viewBox="0 0 32 32"&gt;
&lt;title&gt;
unsplash-logo
&lt;/title&gt;
&lt;p&gt;&lt;path d="M10 9V0h12v9H10zm12 5h10v18H0V14h10v9h12v-9z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;span style="display:inline-block;padding:2px 3px"&gt;Marvin Meyer&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As for building my team, I know that overall one of the challenges everyone faces is recruiting talent. I’ll give this complicated process a shot by tapping into my network which includes many immigrants. I will also expand my network online and through conferences. Furthermore, I am committed to my outreach projects such as &lt;a href="https://comunidadbioinfo.github.io/"&gt;CDSB&lt;/a&gt; but will synergize them even more: re-use training materials, potentially recruit team members, and help me expand my network. In the meantime, if you are interested in working with me or my colleagues, please let me know!&lt;/p&gt;
&lt;/div&gt;
&lt;div id="final-decision" class="section level3"&gt;
&lt;h3&gt;Final decision&lt;/h3&gt;
&lt;p&gt;The decision I had to make was challenging, but in the end, I decided to stay at LIBD because they offered me a path to become a principal investigator in academia which it’s something I want to explore and see where it leads me. I will also formally be someone’s boss and gain managerial experience, work much closer with biologists in hypothesis-driven projects, and overall gain more experience and skills. My brother’s job tasks changed last week, to which I told him: “welcome to the real world”. Well, I guess that’s how it’ll be for me too.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;I want to thank everyone that helped me through this decision-making process, provided me with information, asked me questions, answered questions, expanded my universe, advocated for me, advised me, cheered for me, and supported me. Thank you! I look forward to working with you!&lt;/p&gt;
&lt;iframe src="https://giphy.com/embed/jafcQpzkQK8HX58GKj" width="480" height="270" frameBorder="0" class="giphy-embed" allowFullScreen&gt;
&lt;/iframe&gt;
&lt;p&gt;
&lt;a href="https://giphy.com/gifs/pbs-season-5-gbbo-jafcQpzkQK8HX58GKj"&gt;via GIPHY&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.3 (2020-02-29)
##  os       macOS Catalina 10.15.3      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-03-17                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.18    2020-03-04 [1] CRAN (R 3.6.0)                    
##  bookdown        0.18    2020-03-05 [1] CRAN (R 3.6.0)                    
##  cli             2.0.2   2020-02-28 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  digest          0.6.25  2020-02-23 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  glue            1.3.2   2020-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6.1   2020-02-02 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.28    2020-02-06 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.6   2020-03-03 [1] CRAN (R 3.6.2)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.5   2020-03-01 [1] CRAN (R 3.6.0)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.6   2020-02-17 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.5   2020-03-11 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.1   2020-02-01 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Diving together into the unknown world of spatial transcriptomics</title>
      <link>https://lcolladotor.github.io/2020/02/29/diving-together-into-the-unknown-world-of-spatial-transcriptomics/</link>
      <pubDate>Sat, 29 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2020/02/29/diving-together-into-the-unknown-world-of-spatial-transcriptomics/</guid>
      <description>


&lt;p&gt;Yesterday was an extremely exciting day for me and my colleagues. We finished a project we had been working on and shared it with the world. Meaning, it’s done and we can relax for a little bit while we wait for feedback from our peers.&lt;/p&gt;
&lt;p&gt;But this was not any project, at least not for me. Why do you ask? In general terms, it involved an analysis that you could not search on Google and find the answer for. That is, it involved diving into the unknown!&lt;/p&gt;
&lt;iframe src="https://giphy.com/embed/5dY4XX5ZCvjZ3AENUu" width="480" height="201" frameBorder="0" class="giphy-embed" allowFullScreen&gt;
&lt;/iframe&gt;
&lt;p&gt;
&lt;a href="https://giphy.com/gifs/disneystudios-disney-frozen-2-5dY4XX5ZCvjZ3AENUu"&gt;via GIPHY&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;The unknown is scary and as the lyrics say:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I’ve had my adventure, I don’t need something new
I’m afraid of what I’m risking if I follow you
Into the unknown&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;All of us have been building our careers with other types of data and/or experiments, and taking on a new type of data knowing we had an &lt;a href="https://www.biospace.com/article/10x-genomics-begins-shipments-of-visium-spatial-gene-expression-solution/"&gt;early access advantage&lt;/a&gt; over others was quite the challenge. I don’t know about my co-authors, but maybe some of them shared thoughts like mine that were along the lines: can I do this? can I make it work? do my analysis choices make sense? what will experts think of doing once they have access to this data? All while racing against time, even if it was just an illusion in our minds.&lt;/p&gt;
&lt;p&gt;But it’s not my first adventure and I’ve picked up skills and confidence along the way. In particular, I’ve written &lt;a href="https://bioconductor.org"&gt;Bioconductor&lt;/a&gt; R packages, dealt with &lt;code&gt;pkgdown&lt;/code&gt;/&lt;code&gt;travis&lt;/code&gt; issues like &lt;a href="https://github.com/r-lib/pkgdown/issues/1206"&gt;#1206&lt;/a&gt;, made &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=shiny"&gt;shiny&lt;/a&gt;&lt;/em&gt; web applications, analyzed large RNA-seq data, &lt;a href="http://lcolladotor.github.io/2019/04/02/how-to-write-academic-documents-with-googledocs/#.XlnnqJNKg0o"&gt;written papers using GoogleDocs&lt;/a&gt;, gotten better at asking for help, among other skills.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;It&amp;#39;s Thurs but here&amp;#39;s the &amp;quot;more&amp;quot; I promised &lt;a href="https://t.co/4gahvWDbWE"&gt;https://t.co/4gahvWDbWE&lt;/a&gt; &lt;a href="https://twitter.com/travisci?ref_src=twsrc%5Etfw"&gt;@travisci&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/pkgdown?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#pkgdown&lt;/a&gt;&lt;br&gt;&lt;br&gt;+my fam of &lt;a href="https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstats&lt;/a&gt; issues today &lt;a href="https://t.co/iGFfHLtasM"&gt;https://t.co/iGFfHLtasM&lt;/a&gt; &lt;a href="https://t.co/M8DZEHryJZ"&gt;https://t.co/M8DZEHryJZ&lt;/a&gt; &lt;a href="https://t.co/FU8qq3f5p6"&gt;https://t.co/FU8qq3f5p6&lt;/a&gt;&lt;br&gt;&lt;br&gt;I&amp;#39;m the pest that visits your GH issues here &amp;amp; there&#128517;Nah, I put lots of &#128104;&#127998;‍&#128187;into them!&#128522; &lt;a href="https://t.co/1G0nd5ZwUJ"&gt;https://t.co/1G0nd5ZwUJ&lt;/a&gt;&lt;/p&gt;&amp;mdash; &#127474;&#127485; Leonardo Collado-Torres (@lcolladotor) &lt;a href="https://twitter.com/lcolladotor/status/1233186931590123522?ref_src=twsrc%5Etfw"&gt;February 28, 2020&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;I’ve also gotten more comfortable with the idea that I can’t do it all. Others will shortly develop new methods for this type of data, or proper infrastructure to handle this data, or faster visualizations, and so goes on the list. But I’m proud and really happy to say that we built quite the robust prototype. Plus maybe we’ll be involved in shaping this future.&lt;/p&gt;
&lt;p&gt;And you noticed that I mentioned &lt;em&gt;we&lt;/em&gt;. That’s because I have been learning over the years how to foster collaborations. This particular project involved working with two other members of my workplace who are awesome and that I didn’t know that well. It also involved a new collaboration with someone I’ve known for a while now (we initially met through Twitter in 2014) but hadn’t had the chance to work with. Thus we dove into the unknown together &#128105;‍&#128640;&#129489;‍&#128640;.&lt;/p&gt;
&lt;iframe src="https://giphy.com/embed/Ph0nUfRpbMcQvA7ue8" width="480" height="199" frameBorder="0" class="giphy-embed" allowFullScreen&gt;
&lt;/iframe&gt;
&lt;p&gt;
&lt;a href="https://giphy.com/gifs/disneystudios-disney-frozen-2-Ph0nUfRpbMcQvA7ue8"&gt;via GIPHY&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I feel like we complemented each other quite well and all I can confidently say that our new adventure so far has been very stimulating, even it cost me some sleep.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;Woke up at 3:30 am dreaming about code &#128104;&#127995;‍&#128187; &#128564; and on an off till 5:30. Gave up and went to work early... hopefully I can remember the dreams &#128517;&lt;a href="https://twitter.com/hashtag/CodeWhileDreaming?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#CodeWhileDreaming&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/RestFuelsIdeas?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#RestFuelsIdeas&lt;/a&gt; &lt;a href="https://t.co/h0mYHAaL5W"&gt;pic.twitter.com/h0mYHAaL5W&lt;/a&gt;&lt;/p&gt;&amp;mdash; &#127474;&#127485; Leonardo Collado-Torres (@lcolladotor) &lt;a href="https://twitter.com/lcolladotor/status/1230107491372912641?ref_src=twsrc%5Etfw"&gt;February 19, 2020&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;div id="spatial-transcriptomics" class="section level3"&gt;
&lt;h3&gt;Spatial transcriptomics&lt;/h3&gt;
&lt;p&gt;So, where does &lt;em&gt;spatial transcriptomics&lt;/em&gt; come into play and what does it mean? I work with gene &lt;em&gt;activity&lt;/em&gt; data which we formally refer to as &lt;em&gt;gene expression&lt;/em&gt; &#129516;. That is, we measure &#128269;&#129518; the activity levels of genes for a particular biological condition or tissue sample. For several years now (about since 2007-2009) we have been able to measure many genes from a tissue sample, called bulk RNA-sequencing and abbreviated as RNA-seq.&lt;/p&gt;
&lt;p&gt;That’s great! But biology is complicated and a single tissue sample is composed of multiple cells of various types. For example, in the brain there are cells that send signals around (neurons) and others that give structure to the brain. That is why technologies for measuring the gene expression at the single cell level were developed, abbreviated as scRNA-seq. scRNA-seq has been used widely to study mouse brains to live tissue samples.&lt;/p&gt;
&lt;p&gt;In recent years I’ve been working with data from the human brain &#129504;. The &lt;a href="http://libd.org"&gt;Lieber Institute for Brain Development&lt;/a&gt; has about two thousand brain samples. To preserve them for years to come, the brains are frozen &#129398;. Cells are a bit fragile and freezing them breaks them. This fact has made it challenging to study data from frozen human brains. Several of my colleagues work on adapting research protocols to handle frozen human brain tissue. The research field overall has been able to generate single nucleus RNA sequencing (snRNA-seq) data and we are all generating some more.&lt;/p&gt;
&lt;p&gt;snRNA-seq and scRNA-seq are great because you can measure what genes (pieces of the cell) are active, classify them into groups, and use prior knowledge to label these groups. However, you lose information about what part of the tissue they come from. That’s where technologies for &lt;em&gt;spatial transcriptomics&lt;/em&gt;, that is, measuring gene expression &#129516; as close a possible to the single cell level yet retaining spatial coordinates are being actively developed. Thus, you end up with two main sources of data: the gene expression measurements but also images from the tissue (&lt;em&gt;histology&lt;/em&gt; information). &lt;a href="https://doi.org/10.1038/s41386-019-0484-7"&gt;My coworkers anticipated&lt;/a&gt; what could these technologies be used for and what type of research questions they help us answer.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;oh hey, that&amp;#39;s us! stay tuned for a biorxiv preprint!  &lt;a href="https://twitter.com/LieberInstitute?ref_src=twsrc%5Etfw"&gt;@LieberInstitute&lt;/a&gt; &lt;a href="https://twitter.com/martinowk?ref_src=twsrc%5Etfw"&gt;@martinowk&lt;/a&gt; &lt;a href="https://twitter.com/kr_maynard?ref_src=twsrc%5Etfw"&gt;@kr_maynard&lt;/a&gt; &lt;a href="https://twitter.com/fellgernon?ref_src=twsrc%5Etfw"&gt;@fellgernon&lt;/a&gt; &lt;a href="https://twitter.com/stephaniehicks?ref_src=twsrc%5Etfw"&gt;@stephaniehicks&lt;/a&gt; &lt;a href="https://twitter.com/lmwebr?ref_src=twsrc%5Etfw"&gt;@lmwebr&lt;/a&gt; &lt;a href="https://t.co/uYpwQu52pS"&gt;https://t.co/uYpwQu52pS&lt;/a&gt;&lt;/p&gt;&amp;mdash; Andrew Jaffe (@andrewejaffe) &lt;a href="https://twitter.com/andrewejaffe/status/1232009768006344704?ref_src=twsrc%5Etfw"&gt;February 24, 2020&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;/div&gt;
&lt;div id="our-projects-history" class="section level3"&gt;
&lt;h3&gt;Our project’s history&lt;/h3&gt;
&lt;p&gt;My coworkers got early access to a specific new type of spatial transcriptomics technology called &lt;a href="https://wp.10xgenomics.com/spatial-transcriptomics/"&gt;Visium from the 10x Genomics company&lt;/a&gt; and started piloting it on human brain tissue. They recruited me to their project in early November 2019 (11th) and I recruited more colleagues in early December (4th). Today on February 28th 2020 we made public our research advances, code, and software we built for this project.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;How do you keep your documentation concise, friendly, and updated, and stop it from exploding into a giant tangled word mess of multiple files spread across GitHub repos? Asking for a friend.&lt;/p&gt;&amp;mdash; Monica Gerber (@mwgerber) &lt;a href="https://twitter.com/mwgerber/status/1232468210886144000?ref_src=twsrc%5Etfw"&gt;February 26, 2020&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;Given that we have many potential websites others can find us through, we decided to unify as much as possible the documentation even if that meant repeating it. The basic start of our documentation is included further below.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="spatiallibd" class="section level3"&gt;
&lt;h3&gt;&lt;code&gt;spatialLIBD&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://research.libd.org/spatialLIBD/reference/figures/logo.png" align="right" /&gt;&lt;/p&gt;
&lt;p&gt;Welcome to the &lt;code&gt;spatialLIBD&lt;/code&gt; project! It is composed of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a &lt;a href="https://shiny.rstudio.com/"&gt;shiny&lt;/a&gt; web application that we are hosting at &lt;a href="http://spatial.libd.org/spatialLIBD/"&gt;spatial.libd.org/spatialLIBD/&lt;/a&gt; that can handle a &lt;a href="https://github.com/LieberInstitute/spatialLIBD/issues/2"&gt;limited&lt;/a&gt; set of concurrent users,&lt;/li&gt;
&lt;li&gt;a Bioconductor package at &lt;a href="http://bioconductor.org/packages/spatialLIBD"&gt;bioconductor.org/packages/spatialLIBD&lt;/a&gt; (or from &lt;a href="http://research.libd.org/spatialLIBD/"&gt;here&lt;/a&gt;) that lets you analyze the data and run a local version of our web application (with our data or yours),&lt;/li&gt;
&lt;li&gt;and a &lt;a href="https://www.biorxiv.org/content/10.1101/2020.02.28.969931v1"&gt;research article&lt;/a&gt; with the scientific knowledge we drew from this dataset. The analysis code for our project is available &lt;a href="https://github.com/LieberInstitute/HumanPilot/"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The web application allows you to browse the LIBD human dorsolateral pre-frontal cortex (DLPFC) spatial transcriptomics data generated with the 10x Genomics Visium platform. Through the &lt;a href="https://bioconductor.org/packages/spatialLIBD"&gt;R/Bioconductor package&lt;/a&gt; you can also download the data as well as visualize your own datasets using this web application. Please check the &lt;a href="https://www.biorxiv.org/search/maynard%252Bcollado%252Bweber%252Bhicks%252Bmartinowich%252Bjaffe"&gt;bioRxiv pre-print&lt;/a&gt; for more details about this project.&lt;/p&gt;
If you tweet about this website, the data or the R package please use the &lt;code&gt;#spatialLIBD&lt;/code&gt; hashtag. You can find previous tweets that way as shown &lt;a href="https://twitter.com/search?q=%23spatialLIBD&amp;src=typed_query"&gt;here&lt;/a&gt;. Thank you! &lt;a href="https://twitter.com/intent/tweet?button_hashtag=spatialLIBD&amp;ref_src=twsrc%5Etfw" class="twitter-hashtag-button" data-show-count="false"&gt;Tweet #spatialLIBD&lt;/a&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;div id="study-design" class="section level3"&gt;
&lt;h3&gt;Study design&lt;/h3&gt;
&lt;p&gt;As a quick overview, the data presented here is from portion of the DLPFC that spans six neuronal layers plus white matter (&lt;strong&gt;A&lt;/strong&gt;) for a total of three subjects with two pairs of spatially adjacent replicates (&lt;strong&gt;B&lt;/strong&gt;). Each dissection of DLPFC was designed to span all six layers plus white matter (&lt;strong&gt;C&lt;/strong&gt;). Using this web application you can explore the expression of known genes such as &lt;em&gt;SNAP25&lt;/em&gt; (&lt;strong&gt;D&lt;/strong&gt;, a neuronal gene), &lt;em&gt;MOBP&lt;/em&gt; (&lt;strong&gt;E&lt;/strong&gt;, an oligodendrocyte gene), and known layer markers from mouse studies such as &lt;em&gt;PCP4&lt;/em&gt; (&lt;strong&gt;F&lt;/strong&gt;, a known layer 5 marker gene).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://research.libd.org/spatialLIBD/reference/figures/paper_figure1.jpg" align="center" width="800px" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="shiny-website-mirrors" class="section level3"&gt;
&lt;h3&gt;Shiny website mirrors&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://spatial.libd.org/spatialLIBD"&gt;Main shiny application website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jhubiostatistics.shinyapps.io/spatialLIBD/"&gt;Shinyapps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jhubiostatistics.shinyapps.io/spatialLIBD_mirror01/"&gt;Shinyapps Mirror 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jhubiostatistics.shinyapps.io/spatialLIBD_mirror02/"&gt;Shinyapps Mirror 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="rbioconductor-package" class="section level3"&gt;
&lt;h3&gt;R/Bioconductor package&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;spatialLIBD&lt;/code&gt; package contains functions for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Accessing the spatial transcriptomics data from the LIBD Human Pilot project (&lt;a href="https://github.com/LieberInstitute/HumanPilot"&gt;code on GitHub&lt;/a&gt;) generated with the Visium platform from 10x Genomics. The data is retrieved from &lt;a href="http://bioconductor.org/"&gt;Bioconductor&lt;/a&gt;’s &lt;code&gt;ExperimentHub&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Visualizing the spot-level spatial gene expression data and clusters.&lt;/li&gt;
&lt;li&gt;Inspecting the data interactively either on your computer or through &lt;a href="http://spatial.libd.org/spatialLIBD/"&gt;spatial.libd.org/spatialLIBD/&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more details, please check the &lt;a href="http://lieberinstitute.github.io/spatialLIBD"&gt;documentation website&lt;/a&gt; or the Bioconductor package landing page &lt;a href="https://bioconductor.org/packages/spatialLIBD"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="installation-instructions" class="section level3"&gt;
&lt;h3&gt;Installation instructions&lt;/h3&gt;
&lt;p&gt;Get the latest stable &lt;code&gt;R&lt;/code&gt; release from &lt;a href="http://cran.r-project.org/"&gt;CRAN&lt;/a&gt;. Then install &lt;code&gt;spatialLIBD&lt;/code&gt; from &lt;a href="http://bioconductor.org/"&gt;Bioconductor&lt;/a&gt; using the following code:&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;if (!requireNamespace(&amp;quot;BiocManager&amp;quot;, quietly = TRUE))
    install.packages(&amp;quot;BiocManager&amp;quot;)

BiocManager::install(&amp;quot;spatialLIBD&amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="access-the-data" class="section level3"&gt;
&lt;h3&gt;Access the data&lt;/h3&gt;
&lt;p&gt;Through the &lt;code&gt;spatialLIBD&lt;/code&gt; package you can access the processed data in it’s final R format. However, we also provide a table of links so you can download the raw data we received from 10x Genomics.&lt;/p&gt;
&lt;div id="processed-data" class="section level4"&gt;
&lt;h4&gt;Processed data&lt;/h4&gt;
&lt;p&gt;Using &lt;code&gt;spatialLIBD&lt;/code&gt; you can access the Human DLPFC spatial transcriptomics data from the 10x Genomics Visium platform. For example, this is the code you can use to access the layer-level data. For more details, check the help file for &lt;code&gt;fetch_data()&lt;/code&gt;.&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;## Load the package
library(&amp;#39;spatialLIBD&amp;#39;)

## Download the spot-level data
sce &amp;lt;- fetch_data(type = &amp;#39;sce&amp;#39;)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Loading objects:
##   sce&lt;/code&gt;&lt;/pre&gt;
&lt;pre class="r"&gt;&lt;code&gt;## This is a SingleCellExperiment object
sce&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## class: SingleCellExperiment 
## dim: 33538 47681 
## metadata(1): image
## assays(2): counts logcounts
## rownames(33538): ENSG00000243485 ENSG00000237613 ... ENSG00000277475
##   ENSG00000268674
## rowData names(9): source type ... gene_search is_top_hvg
## colnames(47681): AAACAACGAATAGTTC-1 AAACAAGTATCTCCCA-1 ...
##   TTGTTTCCATACAACT-1 TTGTTTGTGTAAATTC-1
## colData names(73): barcode sample_name ... pseudobulk_UMAP_spatial
##   markers_UMAP_spatial
## reducedDimNames(6): PCA TSNE_perplexity50 ... TSNE_perplexity80
##   UMAP_neighbors15
## spikeNames(0):
## altExpNames(0):&lt;/code&gt;&lt;/pre&gt;
&lt;pre class="r"&gt;&lt;code&gt;## Note the memory size
pryr::object_size(sce)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## 2.08 GB&lt;/code&gt;&lt;/pre&gt;
&lt;pre class="r"&gt;&lt;code&gt;## Remake the logo image with histology information
sce_image_clus(
    sce = sce,
    clustervar = &amp;#39;layer_guess_reordered&amp;#39;,
    sampleid = &amp;#39;151673&amp;#39;,
    colors = libd_layer_colors,
    ... = &amp;#39; DLPFC Human Brain Layers\nMade with github.com/LieberInstitute/spatialLIBD&amp;#39;
)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2020-02-29-diving-together-into-the-unknown-world-of-spatial-transcriptomics_files/figure-html/access_data-1.png" width="864" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="citation" class="section level3"&gt;
&lt;h3&gt;Citation&lt;/h3&gt;
&lt;p&gt;Below is the citation output from using &lt;code&gt;citation('spatialLIBD')&lt;/code&gt; in R. Please
run this yourself to check for any updates on how to cite &lt;strong&gt;spatialLIBD&lt;/strong&gt;.&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;citation(&amp;#39;spatialLIBD&amp;#39;)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## 
## Collado-Torres L, Maynard KR, Jaffe AE (2020). _LIBD Visium spatial
## transcriptomics human pilot data inspector_. doi:
## 10.18129/B9.bioc.spatialLIBD (URL:
## https://doi.org/10.18129/B9.bioc.spatialLIBD),
## https://github.com/LieberInstitute/spatialLIBD - R package version
## 0.99.9, &amp;lt;URL: http://www.bioconductor.org/packages/spatialLIBD&amp;gt;.
## 
## Maynard KR, Collado-Torres L, Weber LM, Uytingco C, Barry BK, Williams
## SR, II JLC, Tran MN, Besich Z, Tippani M, Chew J, Yin Y, Kleinman JE,
## Hyde TM, Rao N, Hicks SC, Martinowich K, Jaffe AE (2020).
## &amp;quot;Transcriptome-scale spatial gene expression in the human dorsolateral
## prefrontal cortex.&amp;quot; _bioRxiv_. doi: 10.1101/2020.02.28.969931 (URL:
## https://doi.org/10.1101/2020.02.28.969931), &amp;lt;URL:
## https://www.biorxiv.org/content/10.1101/2020.02.28.969931v1&amp;gt;.
## 
## To see these entries in BibTeX format, use &amp;#39;print(&amp;lt;citation&amp;gt;,
## bibtex=TRUE)&amp;#39;, &amp;#39;toBibtex(.)&amp;#39;, or set
## &amp;#39;options(citation.bibtex.max=999)&amp;#39;.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Please note that the &lt;code&gt;spatialLIBD&lt;/code&gt; was only made possible thanks to many other R and bioinformatics software authors. We have cited their work either in the pre-print or the vignette of the R package.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.libd.org/"&gt;&lt;img src="http://lcolladotor.github.io/img/LIBD_logo.jpg" width="250px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="closing-remarks" class="section level3"&gt;
&lt;h3&gt;Closing remarks&lt;/h3&gt;
&lt;p&gt;Overall, this project has everything that I like: R code, a Bioconductor package, challenging and interest biological data, excellent collaborator team, open communication, and so on.&lt;/p&gt;
&lt;p&gt;Now, these are early days of the 10x Genomics Visium platform and there’s much we and others want to learn. So if you have the chance to hear anyone in our team talk more in detail about the project or you simply want to chat with them, here are some opportunities for you to do so as we’d love to collaborate with you or even hire you. Check &lt;a href="https://twitter.com/stephaniehicks/status/1229448057462382597?s=20"&gt;Stephanie’s tweet&lt;/a&gt; and the &lt;a href="https://www.libd.org/careers"&gt;LIBD career website&lt;/a&gt; for more details or simply get in touch with us.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kristen R Maynard and me will present a &lt;a href="https://www.the-scientist.com/"&gt;The Scientist&lt;/a&gt; webinar on March 19th&lt;/li&gt;
&lt;li&gt;Keri Martinowich will be at &lt;a href="https://twitter.com/VirginiaNeuro/status/1214256625290240000"&gt;CVCSN 2020&lt;/a&gt; March 26-27th&lt;/li&gt;
&lt;li&gt;I’ll present a seminar at &lt;a href="https://twitter.com/LIIGH_UNAM"&gt;LIIGH-UNAM&lt;/a&gt; on March 30th&lt;/li&gt;
&lt;li&gt;Kristen R Maynard will be at the 2020 Single Cell Symposium on April 20th&lt;/li&gt;
&lt;li&gt;Likely Andrew E Jaffe and others will be at &lt;a href="https://meetings.cshl.edu/meetings.aspx?meet=GENOME&amp;amp;year=20"&gt;The Biology of Genomes 2020&lt;/a&gt; May 5-9th&lt;/li&gt;
&lt;li&gt;Stephanie Hicks will present at &lt;a href="https://twitter.com/erum2020_conf"&gt;eRum 2020&lt;/a&gt; May 27-30&lt;/li&gt;
&lt;li&gt;Likely some of us will attend &lt;a href="https://bioc2020.bioconductor.org/"&gt;BioC2020&lt;/a&gt; July 29-31&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2020-02-29-diving-together-into-the-unknown-world-of-spatial-transcriptomics_files/IMG_3284.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Finally, here’s the pre-print twitter thread:&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;&#128293;off the press! &#128064; our &lt;a href="https://twitter.com/biorxivpreprint?ref_src=twsrc%5Etfw"&gt;@biorxivpreprint&lt;/a&gt; on human &#129504;brain &lt;a href="https://twitter.com/LieberInstitute?ref_src=twsrc%5Etfw"&gt;@LieberInstitute&lt;/a&gt; spatial &#127756;&#128300;transcriptomics data &#129516;using Visium &lt;a href="https://twitter.com/10xGenomics?ref_src=twsrc%5Etfw"&gt;@10xGenomics&lt;/a&gt;&#127881;&lt;a href="https://twitter.com/hashtag/spatialLIBD?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#spatialLIBD&lt;/a&gt;&lt;br&gt;&lt;br&gt;&#128269;&lt;a href="https://t.co/RTW0VscUKR"&gt;https://t.co/RTW0VscUKR&lt;/a&gt; &lt;br&gt;&#128105;&#127998;‍&#128187;&lt;a href="https://t.co/bsg04XKONr"&gt;https://t.co/bsg04XKONr&lt;/a&gt;&lt;br&gt;&#128218;&lt;a href="https://t.co/FJDOOzrAJ6"&gt;https://t.co/FJDOOzrAJ6&lt;/a&gt;&lt;br&gt;&#128230;&lt;a href="https://t.co/Au5jwADGhY"&gt;https://t.co/Au5jwADGhY&lt;/a&gt;&lt;a href="https://t.co/PiWEDN9q2N"&gt;https://t.co/PiWEDN9q2N&lt;/a&gt; &lt;a href="https://t.co/aWy0yLlR50"&gt;pic.twitter.com/aWy0yLlR50&lt;/a&gt;&lt;/p&gt;&amp;mdash; &#127474;&#127485; Leonardo Collado-Torres (@lcolladotor) &lt;a href="https://twitter.com/lcolladotor/status/1233661576433061888?ref_src=twsrc%5Etfw"&gt;February 29, 2020&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;Thank you for getting this far!&lt;/p&gt;
&lt;iframe src="https://giphy.com/embed/26FxykLpuDxQiFbnG" width="480" height="256" frameBorder="0" class="giphy-embed" allowFullScreen&gt;
&lt;/iframe&gt;
&lt;p&gt;
&lt;a href="https://giphy.com/gifs/veep-26FxykLpuDxQiFbnG"&gt;via GIPHY&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-29                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package                * version  date       lib source                                      
##  AnnotationDbi            1.48.0   2019-10-29 [1] Bioconductor                                
##  AnnotationHub            2.18.0   2019-10-29 [1] Bioconductor                                
##  assertthat               0.2.1    2019-03-21 [1] CRAN (R 3.6.0)                              
##  attempt                  0.3.0    2019-04-08 [1] CRAN (R 3.6.0)                              
##  backports                1.1.5    2019-10-02 [1] CRAN (R 3.6.0)                              
##  beeswarm                 0.2.3    2016-04-25 [1] CRAN (R 3.6.0)                              
##  bibtex                   0.4.2.2  2020-01-02 [1] CRAN (R 3.6.0)                              
##  Biobase                * 2.46.0   2019-10-29 [1] Bioconductor                                
##  BiocFileCache            1.10.2   2019-11-08 [1] Bioconductor                                
##  BiocGenerics           * 0.32.0   2019-10-29 [1] Bioconductor                                
##  BiocManager              1.30.10  2019-11-16 [1] CRAN (R 3.6.1)                              
##  BiocNeighbors            1.4.1    2019-11-01 [1] Bioconductor                                
##  BiocParallel           * 1.20.1   2019-12-21 [1] Bioconductor                                
##  BiocSingular             1.2.2    2020-02-14 [1] Bioconductor                                
##  BiocStyle              * 2.14.4   2020-01-09 [1] Bioconductor                                
##  BiocVersion              3.10.1   2019-06-06 [1] Bioconductor                                
##  bit                      1.1-15.2 2020-02-10 [1] CRAN (R 3.6.0)                              
##  bit64                    0.9-7    2017-05-08 [1] CRAN (R 3.6.0)                              
##  bitops                   1.0-6    2013-08-17 [1] CRAN (R 3.6.0)                              
##  blob                     1.2.1    2020-01-20 [1] CRAN (R 3.6.0)                              
##  blogdown                 0.17     2019-11-13 [1] CRAN (R 3.6.1)                              
##  bookdown                 0.17     2020-01-11 [1] CRAN (R 3.6.0)                              
##  cli                      2.0.1    2020-01-08 [1] CRAN (R 3.6.0)                              
##  codetools                0.2-16   2018-12-24 [1] CRAN (R 3.6.2)                              
##  colorout               * 1.2-1    2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)          
##  colorspace               1.4-1    2019-03-18 [1] CRAN (R 3.6.0)                              
##  cowplot                  1.0.0    2019-07-11 [1] CRAN (R 3.6.0)                              
##  crayon                   1.3.4    2017-09-16 [1] CRAN (R 3.6.0)                              
##  curl                     4.3      2019-12-02 [1] CRAN (R 3.6.0)                              
##  data.table               1.12.8   2019-12-09 [1] CRAN (R 3.6.1)                              
##  DBI                      1.1.0    2019-12-15 [1] CRAN (R 3.6.0)                              
##  dbplyr                   1.4.2    2019-06-17 [1] CRAN (R 3.6.0)                              
##  DelayedArray           * 0.12.2   2020-01-06 [1] Bioconductor                                
##  DelayedMatrixStats       1.8.0    2019-10-29 [1] Bioconductor                                
##  desc                     1.2.0    2018-05-01 [1] CRAN (R 3.6.0)                              
##  digest                   0.6.25   2020-02-23 [1] CRAN (R 3.6.0)                              
##  dotCall64                1.0-0    2018-07-30 [1] CRAN (R 3.6.0)                              
##  dplyr                    0.8.4    2020-01-31 [1] CRAN (R 3.6.0)                              
##  DT                       0.12     2020-02-05 [1] CRAN (R 3.6.0)                              
##  evaluate                 0.14     2019-05-28 [1] CRAN (R 3.6.0)                              
##  ExperimentHub            1.12.0   2019-10-29 [1] Bioconductor                                
##  fansi                    0.4.1    2020-01-08 [1] CRAN (R 3.6.0)                              
##  farver                   2.0.3    2020-01-16 [1] CRAN (R 3.6.0)                              
##  fastmap                  1.0.1    2019-10-08 [1] CRAN (R 3.6.0)                              
##  fields                   10.3     2020-02-04 [1] CRAN (R 3.6.0)                              
##  fs                       1.3.1    2019-05-06 [1] CRAN (R 3.6.0)                              
##  GenomeInfoDb           * 1.22.0   2019-10-29 [1] Bioconductor                                
##  GenomeInfoDbData         1.2.2    2019-10-31 [1] Bioconductor                                
##  GenomicRanges          * 1.38.0   2019-10-29 [1] Bioconductor                                
##  ggbeeswarm               0.6.0    2017-08-07 [1] CRAN (R 3.6.0)                              
##  ggplot2                  3.2.1    2019-08-10 [1] CRAN (R 3.6.0)                              
##  glue                     1.3.1    2019-03-12 [1] CRAN (R 3.6.0)                              
##  golem                    0.1      2019-08-05 [1] CRAN (R 3.6.0)                              
##  gridExtra                2.3      2017-09-09 [1] CRAN (R 3.6.0)                              
##  gtable                   0.3.0    2019-03-25 [1] CRAN (R 3.6.0)                              
##  htmltools                0.4.0    2019-10-04 [1] CRAN (R 3.6.0)                              
##  htmlwidgets              1.5.1    2019-10-08 [1] CRAN (R 3.6.0)                              
##  httpuv                   1.5.2    2019-09-11 [1] CRAN (R 3.6.0)                              
##  httr                     1.4.1    2019-08-05 [1] CRAN (R 3.6.0)                              
##  interactiveDisplayBase   1.24.0   2019-10-29 [1] Bioconductor                                
##  IRanges                * 2.20.2   2020-01-13 [1] Bioconductor                                
##  irlba                    2.3.3    2019-02-05 [1] CRAN (R 3.6.0)                              
##  jsonlite                 1.6.1    2020-02-02 [1] CRAN (R 3.6.0)                              
##  knitcitations          * 1.0.10   2019-09-15 [1] CRAN (R 3.6.0)                              
##  knitr                    1.27     2020-01-16 [1] CRAN (R 3.6.0)                              
##  labeling                 0.3      2014-08-23 [1] CRAN (R 3.6.0)                              
##  later                    1.0.0    2019-10-04 [1] CRAN (R 3.6.0)                              
##  lattice                  0.20-38  2018-11-04 [1] CRAN (R 3.6.2)                              
##  lazyeval                 0.2.2    2019-03-15 [1] CRAN (R 3.6.0)                              
##  lifecycle                0.1.0    2019-08-01 [1] CRAN (R 3.6.0)                              
##  lubridate                1.7.4    2018-04-11 [1] CRAN (R 3.6.0)                              
##  magrittr                 1.5      2014-11-22 [1] CRAN (R 3.6.0)                              
##  maps                     3.3.0    2018-04-03 [1] CRAN (R 3.6.0)                              
##  Matrix                   1.2-18   2019-11-27 [1] CRAN (R 3.6.2)                              
##  matrixStats            * 0.55.0   2019-09-07 [1] CRAN (R 3.6.0)                              
##  memoise                  1.1.0    2017-04-21 [1] CRAN (R 3.6.0)                              
##  mime                     0.9      2020-02-04 [1] CRAN (R 3.6.0)                              
##  munsell                  0.5.0    2018-06-12 [1] CRAN (R 3.6.0)                              
##  pillar                   1.4.3    2019-12-20 [1] CRAN (R 3.6.0)                              
##  pkgconfig                2.0.3    2019-09-22 [1] CRAN (R 3.6.1)                              
##  pkgload                  1.0.2    2018-10-29 [1] CRAN (R 3.6.0)                              
##  plotly                   4.9.2    2020-02-12 [1] CRAN (R 3.6.0)                              
##  plyr                     1.8.5    2019-12-10 [1] CRAN (R 3.6.0)                              
##  png                      0.1-7    2013-12-03 [1] CRAN (R 3.6.0)                              
##  Polychrome               1.2.4    2020-02-03 [1] CRAN (R 3.6.0)                              
##  promises                 1.1.0    2019-10-04 [1] CRAN (R 3.6.0)                              
##  pryr                     0.1.4    2018-02-18 [1] CRAN (R 3.6.0)                              
##  purrr                    0.3.3    2019-10-18 [1] CRAN (R 3.6.0)                              
##  R6                       2.4.1    2019-11-12 [1] CRAN (R 3.6.1)                              
##  rappdirs                 0.3.1    2016-03-28 [1] CRAN (R 3.6.0)                              
##  RColorBrewer             1.1-2    2014-12-07 [1] CRAN (R 3.6.0)                              
##  Rcpp                     1.0.3    2019-11-08 [1] CRAN (R 3.6.0)                              
##  RCurl                    1.98-1.1 2020-01-19 [1] CRAN (R 3.6.0)                              
##  RefManageR               1.2.12   2019-04-03 [1] CRAN (R 3.6.0)                              
##  rlang                    0.4.4    2020-01-28 [1] CRAN (R 3.6.0)                              
##  rmarkdown                2.1      2020-01-20 [1] CRAN (R 3.6.0)                              
##  roxygen2                 7.0.2    2019-12-02 [1] CRAN (R 3.6.0)                              
##  rprojroot                1.3-2    2018-01-03 [1] CRAN (R 3.6.0)                              
##  RSQLite                  2.2.0    2020-01-07 [1] CRAN (R 3.6.0)                              
##  rstudioapi               0.11     2020-02-07 [1] CRAN (R 3.6.0)                              
##  rsvd                     1.0.3    2020-02-17 [1] CRAN (R 3.6.0)                              
##  S4Vectors              * 0.24.3   2020-01-18 [1] Bioconductor                                
##  scales                   1.1.0    2019-11-18 [1] CRAN (R 3.6.1)                              
##  scater                   1.14.6   2019-12-16 [1] Bioconductor                                
##  scatterplot3d            0.3-41   2018-03-14 [1] CRAN (R 3.6.0)                              
##  sessioninfo            * 1.1.1    2018-11-05 [1] CRAN (R 3.6.0)                              
##  shiny                    1.4.0    2019-10-10 [1] CRAN (R 3.6.0)                              
##  shinyWidgets             0.5.0    2019-11-18 [1] CRAN (R 3.6.0)                              
##  SingleCellExperiment   * 1.8.0    2019-10-29 [1] Bioconductor                                
##  spam                     2.5-1    2019-12-12 [1] CRAN (R 3.6.0)                              
##  spatialLIBD            * 0.99.9   2020-02-29 [1] Github (LieberInstitute/spatialLIBD@572e2a0)
##  stringi                  1.4.6    2020-02-17 [1] CRAN (R 3.6.0)                              
##  stringr                  1.4.0    2019-02-10 [1] CRAN (R 3.6.0)                              
##  SummarizedExperiment   * 1.16.1   2019-12-19 [1] Bioconductor                                
##  testthat                 2.3.1    2019-12-01 [1] CRAN (R 3.6.0)                              
##  tibble                   2.1.3    2019-06-06 [1] CRAN (R 3.6.0)                              
##  tidyr                    1.0.2    2020-01-24 [1] CRAN (R 3.6.2)                              
##  tidyselect               1.0.0    2020-01-27 [1] CRAN (R 3.6.0)                              
##  usethis                  1.5.1    2019-07-04 [1] CRAN (R 3.6.0)                              
##  vctrs                    0.2.3    2020-02-20 [1] CRAN (R 3.6.0)                              
##  vipor                    0.4.5    2017-03-22 [1] CRAN (R 3.6.0)                              
##  viridis                  0.5.1    2018-03-29 [1] CRAN (R 3.6.0)                              
##  viridisLite              0.3.0    2018-02-01 [1] CRAN (R 3.6.0)                              
##  withr                    2.1.2    2018-03-15 [1] CRAN (R 3.6.0)                              
##  xfun                     0.12     2020-01-13 [1] CRAN (R 3.6.0)                              
##  xml2                     1.2.2    2019-08-09 [1] CRAN (R 3.6.0)                              
##  xtable                   1.8-4    2019-04-21 [1] CRAN (R 3.6.0)                              
##  XVector                  0.26.0   2019-10-29 [1] Bioconductor                                
##  yaml                     2.2.1    2020-02-01 [1] CRAN (R 3.6.0)                              
##  yesno                    0.1.0    2018-04-14 [1] CRAN (R 3.6.0)                              
##  zlibbioc                 1.32.0   2019-10-29 [1] Bioconductor                                
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Learning from our search history</title>
      <link>https://lcolladotor.github.io/2020/02/12/learning-from-our-search-history/</link>
      <pubDate>Wed, 12 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2020/02/12/learning-from-our-search-history/</guid>
      <description>


&lt;div id="origin-of-the-idea" class="section level3"&gt;
&lt;h3&gt;Origin of the idea&lt;/h3&gt;
&lt;p&gt;Recently the team I work with has had a few new members and I’ve been thinking lately of ways we could try to help them. The team leader was traveling this week, which gave me the opportunity to come up with a new type of session and test it out. That’s the origin of this &lt;em&gt;learning from our search history&lt;/em&gt; idea. We tested it today and I’m quite happy with the results so far, so I thought it would be useful to document what we did and share it with others.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="motivation" class="section level3"&gt;
&lt;h3&gt;Motivation&lt;/h3&gt;
&lt;div id="the-theory" class="section level4"&gt;
&lt;h4&gt;The theory&lt;/h4&gt;
&lt;p&gt;As I show in the slides below, in our group we follow the &lt;a href="https://blogs.akamai.com/2013/10/you-must-try-and-then-you-must-ask.html"&gt;&lt;em&gt;you must try, and then you must ask&lt;/em&gt;&lt;/a&gt; framework although with a little different interpretation. The basic goal is to search independently for a period of time (say 15 minutes), but then ask others for help if you are still stuck beyond that point.&lt;/p&gt;
&lt;script async class="speakerdeck-embed" data-id="a99280d748df4a88bf328e1bcaa8e95b" data-ratio="1.29456384323641" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;p&gt;In other words, you have to be able to find some answers yourself since that’s part of our job using resources that range from &lt;a href="https://www.google.com/"&gt;Google Search&lt;/a&gt;, to the &lt;a href="https://support.bioconductor.org/"&gt;Bioconductor Support&lt;/a&gt;, to the &lt;a href="https://community.rstudio.com/"&gt;RStudio Community&lt;/a&gt;, among other websites. However, we also acknowledge that some questions have difficult answers. Maybe a Stack Overflow thread has multiple answers and not necessarily the top voted question has the answer you are looking for. So instead of spending too much energy, we also tell our members to avoid getting into a rabbit hole for hours. That’s where asking for help comes to play. And you can ask for help from any community you belong to: those involved in the project through Slack, our full team, other scientists in our university, communities we belong to like the &lt;a href="https://twitter.com/search?q=%23rstats&amp;amp;src=typed_query"&gt;&lt;em&gt;rstats&lt;/em&gt; community on Twitter&lt;/a&gt;, the Bioconductor users community at large, etc.&lt;/p&gt;
&lt;p&gt;I did mention that it’s ideal to think about the person who will be helping you answer your question. Small reproducible examples, versions of the software you used, sharing your code on GitHub &lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;, the commands you used and the order you used them in can all be valuable for resolving different types of problems. &lt;a href="https://twitter.com/JennyBryan"&gt;Jenny Bryan&lt;/a&gt; has talked much more about this subject, for example in this &lt;a href="https://resources.rstudio.com/webinars/help-me-help-you-creating-reproducible-examples-jenny-bryan"&gt;2018 webinar&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="in-practice" class="section level4"&gt;
&lt;h4&gt;In practice&lt;/h4&gt;
&lt;p&gt;Trying for a while then asking for help is all good in practice. However, &lt;strong&gt;asking for help is very challenging&lt;/strong&gt;. It’s scary, you open yourself because you show what you don’t know to other people, and sadly historically many questions have been met with negative feedback on the Internet. Thus, they can make you feel dumb, stupid and many other negative emotions.&lt;/p&gt;
&lt;p&gt;I do think that asking for help can be worth it and even wrote a &lt;a href="http://lcolladotor.github.io/2018/11/12/asking-for-help-is-challenging-but-is-typically-worth-it/"&gt;previous blog post on this subject&lt;/a&gt;. Some reasons why it’s worth it include being able to move on with your work &lt;a href="#fn2" class="footnote-ref" id="fnref2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;, you might learn something new, and if you follow the strategies for helping others help you, you might even figure out the answer yourself.&lt;/p&gt;
&lt;p&gt;Now, we all ask for help regardless of how long we have been writing code. Here’s an example tweet that conveys the same message. There are thousands of such tweets online.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;I conduct approximately 3948234 programming-related Google searches per day. So does every other developer I know, whether they have 5 weeks of experience or 5 years. Help normalize this practice by tweeting your daily searches with &lt;a href="https://twitter.com/hashtag/devgoogle?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#devgoogle&lt;/a&gt;! &lt;a href="https://t.co/XfNVUZlhC5"&gt;https://t.co/XfNVUZlhC5&lt;/a&gt;&lt;/p&gt;&amp;mdash; Lyzi Diamond (@lyzidiamond) &lt;a href="https://twitter.com/lyzidiamond/status/1085227527587561472?ref_src=twsrc%5Etfw"&gt;January 15, 2019&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;/div&gt;
&lt;div id="we-are-diverse" class="section level4"&gt;
&lt;h4&gt;We are diverse&lt;/h4&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/img/amy_mph.jpg" width="600" /&gt;&lt;/p&gt;
&lt;p&gt;The team (shown as of May 2018) we work at is very diverse because we all:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;have different backgrounds,&lt;/li&gt;
&lt;li&gt;have acquired different skills,&lt;/li&gt;
&lt;li&gt;are at different career stages (from rotation student up to associate professor),&lt;/li&gt;
&lt;li&gt;have different interests,&lt;/li&gt;
&lt;li&gt;use different operating systems (from Fedora to Ubuntu to macOS to Windows)&lt;/li&gt;
&lt;li&gt;use different tools (mobaxterm vs putty, TextMate vs RStudio, …).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But also because we seek help in different ways &lt;a href="#fn3" class="footnote-ref" id="fnref3"&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt; and we learn differently.&lt;/p&gt;
&lt;p&gt;This means that we have a lot to learn from each other &#128522;&#129299;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="learn-from-each-other-exercise" class="section level3"&gt;
&lt;h3&gt;Learn from each other exercise&lt;/h3&gt;
&lt;p&gt;At &lt;a href="http://bit.ly/learnfromsearch"&gt;bit.ly/learnfromsearch&lt;/a&gt; you can find a copy of the Google Spreadsheet with the information you need for your team.&lt;/p&gt;
&lt;div id="some-rules" class="section level4"&gt;
&lt;h4&gt;Some rules&lt;/h4&gt;
&lt;p&gt;First, we need to make sure that everyone will feel save to ask questions. That’s why I:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reminded others about our code of conduct,&lt;/li&gt;
&lt;li&gt;invited everyone to practice their empathy and be mindful that language matters &lt;a href="#fn4" class="footnote-ref" id="fnref4"&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;to keep everyone’s time in their mind as a question could lead to a longer discussion which is best to take another occasion. &lt;a href="#fn5" class="footnote-ref" id="fnref5"&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="main-steps" class="section level4"&gt;
&lt;h4&gt;Main steps&lt;/h4&gt;
&lt;p&gt;The idea is that you pick a problem you solved recently and share:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;what you were trying to solve,&lt;/li&gt;
&lt;li&gt;the actual text you searched for in Google or elsewhere &lt;a href="#fn6" class="footnote-ref" id="fnref6"&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;the link of the website where you find your answer or that guided in this process.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;We improved the steps as we were testing this!&lt;/em&gt; &#128588;&#127997;&#128578;&lt;/p&gt;
&lt;p&gt;Once everyone has contributed their information to the spreadsheet, we then proceed to go around the table showing and explaining our search use cases.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="goals" class="section level4"&gt;
&lt;h4&gt;Goals&lt;/h4&gt;
&lt;p&gt;Ultimately the goals of this exercise are to&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;empower ourselves with the knowledge from our teammates,&lt;/li&gt;
&lt;li&gt;learn from how we all find help,&lt;/li&gt;
&lt;li&gt;build a supportive environment where we feel comfortable asking for help.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thus in the end, we are enabling our team to fully follow the &lt;a href="https://blogs.akamai.com/2013/10/you-must-try-and-then-you-must-ask.html"&gt;&lt;em&gt;you must try, and then you must ask&lt;/em&gt;&lt;/a&gt; framework.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="test-session" class="section level3"&gt;
&lt;h3&gt;Test session&lt;/h3&gt;
&lt;p&gt;The first and only session so far went approximately like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min 0-5: get settled in the room.&lt;/li&gt;
&lt;li&gt;Min 5-22: presentation about the idea to get members to buy into it.&lt;/li&gt;
&lt;li&gt;Min 22-26: demonstration.&lt;/li&gt;
&lt;li&gt;Min 26-33: members prepared their information to share with the team.&lt;/li&gt;
&lt;li&gt;Min 33-58: members presented their problems, the searches the did, and the solution(s) they found.&lt;/li&gt;
&lt;li&gt;Min 58-60: quick wrap up.&lt;/li&gt;
&lt;/ul&gt;
&lt;div id="my-search-example" class="section level4"&gt;
&lt;h4&gt;My search example&lt;/h4&gt;
&lt;p&gt;At &lt;a href="http://bit.ly/learnfromsearch"&gt;bit.ly/learnfromsearch&lt;/a&gt; I left some examples (anonymized). Mine was about increasing the point size of the output of a plot made with &lt;code&gt;scater::plotReducedDim()&lt;/code&gt; which returns a &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=ggplot2"&gt;ggplot2&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Wickham_2016'&gt;&lt;/a&gt;(&lt;a href='https://ggplot2.tidyverse.org'&gt;Wickham, 2016&lt;/a&gt;) object. Hence why I searched in Google for &lt;code&gt;ggplot2 increase point size&lt;/code&gt; which lead me to the &lt;a href="https://ggplot2.tidyverse.org/reference/geom_point.html"&gt;&lt;code&gt;geom_point()&lt;/code&gt;&lt;/a&gt; reference website. I then tried using &lt;code&gt;+ geom_point(size = 20)&lt;/code&gt; but that broke the color mapping. I was about to dive into the GitHub code for &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/scater"&gt;scater&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-McCarthy_2017'&gt;&lt;/a&gt;(&lt;a href='https://doi.org/10.1093/bioinformatics/btw777'&gt;McCarthy, Campbell, Lun, and Willis, 2017&lt;/a&gt;) as this my go-to behavior for many similar quests, but I decided to check the help page using &lt;code&gt;?scater::plotReducedDim&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;… Additional arguments for visualization, see ?“scater-plot-args” for details.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The documentation for &lt;code&gt;...&lt;/code&gt; lead me to &lt;code&gt;?"scater-plot-args"&lt;/code&gt; where I finally found the &lt;code&gt;point_size&lt;/code&gt; argument&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;point_size: Numeric scalar, specifying the size of the points. Defaults to NULL.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;and that solved my problem.&lt;/p&gt;
&lt;p&gt;So what used to look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2020-02-12-learning-from-our-search-history_files/Screen%20Shot%202020-02-12%20at%209.54.41%20PM.png" width="400" /&gt;&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;library(&amp;#39;scater&amp;#39;)
library(&amp;#39;SummarizedExperiment&amp;#39;)

plotReducedDim(
    sce,
    dimred = &amp;#39;PCA&amp;#39;,
    colour_by = &amp;#39;my_cluster_variable&amp;#39;,
    theme_size = 20
)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;now looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2020-02-12-learning-from-our-search-history_files/Screen%20Shot%202020-02-12%20at%209.55.09%20PM.png" width="400" /&gt;&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;plotReducedDim(
    sce,
    dimred = &amp;#39;PCA&amp;#39;,
    colour_by = &amp;#39;my_cluster_variable&amp;#39;,
    theme_size = 20,
    point_size = 5
)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Other examples involve different websites and showcase the diversity of questions we have as a team.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="conclusions" class="section level3"&gt;
&lt;h3&gt;Conclusions&lt;/h3&gt;
&lt;p&gt;I hope that you like this idea and try it out yourselves. Maybe some of the lessons you learn trying it out could be useful to us as well. Ultimately, the information stored there could be useful for new team members as well as for current members since the spreadsheet becomes like an informal FAQ or team wiki.&lt;/p&gt;
&lt;iframe src="https://giphy.com/embed/MRwR1blxryNJm" width="315" height="480" frameBorder="0" class="giphy-embed" allowFullScreen&gt;
&lt;/iframe&gt;
&lt;p&gt;
&lt;a href="https://giphy.com/gifs/MRwR1blxryNJm"&gt;via GIPHY&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I was strongly encouraged by the feedback two members gave me individually after our trial session. Maybe this is not for everyone as we realized that it’s quite hard to be anonymous while participating &lt;a href="#fn7" class="footnote-ref" id="fnref7"&gt;&lt;sup&gt;7&lt;/sup&gt;&lt;/a&gt;. This idea could evolve into something else, but at least for today, I’m happy with the amount of people that bought into the trial and participated in it. We’ll see what happens next.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2020-02-12-learning-from-our-search-history_files/Screen%20Shot%202020-02-12%20at%203.56.43%20PM.png" width="600" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=ggplot2"&gt;ggplot2&lt;/a&gt;&lt;/em&gt; (&lt;a href='https://ggplot2.tidyverse.org'&gt;Wickham, 2016&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/scater"&gt;scater&lt;/a&gt;&lt;/em&gt; (&lt;a href='https://doi.org/10.1093/bioinformatics/btw777'&gt;McCarthy, Campbell, Lun, and Willis, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/SummarizedExperiment"&gt;SummarizedExperiment&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Morgan_2019'&gt;&lt;/a&gt;(&lt;a href='#bib-Morgan_2019'&gt;Morgan, Obenchain, Hester, and Pagès, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I would also like to acknowledge the general inspiration I’ve gotten from &lt;a href="https://twitter.com/apreshill"&gt;Alison Hill&lt;/a&gt;’s educational work. Once the &lt;code&gt;rstudio::conf(2020)&lt;/code&gt; videos are available, check the work her intern &lt;a href="https://twitter.com/dcossyle"&gt;Desirée de Leon&lt;/a&gt; showcased which is related to the following tweet.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;Ever seen a giraffe that can fit in a teacup? Time to share the first draft of the R and stats project that Hasse Wallum and I have been working on for some time. More to come! &lt;a href="https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstats&lt;/a&gt; &#129426; &lt;a href="https://t.co/SOlBzop8vz"&gt;https://t.co/SOlBzop8vz&lt;/a&gt;&lt;/p&gt;&amp;mdash; Desirée De Leon (@dcossyle) &lt;a href="https://twitter.com/dcossyle/status/1161679518777712641?ref_src=twsrc%5Etfw"&gt;August 14, 2019&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;P.S. &lt;em&gt;dinámica&lt;/em&gt; in Spanish is used for a set of exercises that have a specific purpose in mind. I now realize that &lt;em&gt;dynamic&lt;/em&gt; doesn’t hold the same meaning. Oh well &#129335;&#127998;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-McCarthy_2017'&gt;&lt;/a&gt;&lt;a href="#cite-McCarthy_2017"&gt;[3]&lt;/a&gt;&lt;cite&gt;
D. J. McCarthy, K. R. Campbell, A. T. L. Lun, and Q. F. Willis.
“Scater: pre-processing, quality control, normalisation and visualisation of single-cell RNA-seq data in R”.
In: &lt;em&gt;Bioinformatics&lt;/em&gt; 33 (8 2017), pp. 1179-1186.
DOI: &lt;a href="https://doi.org/10.1093/bioinformatics/btw777"&gt;10.1093/bioinformatics/btw777&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Morgan_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Morgan_2019"&gt;[4]&lt;/a&gt;&lt;cite&gt;
M. Morgan, V. Obenchain, J. Hester, and H. Pagès.
&lt;em&gt;SummarizedExperiment: SummarizedExperiment container&lt;/em&gt;.
R package version 1.16.1.
2019.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[5]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Wickham_2016'&gt;&lt;/a&gt;&lt;a href="#cite-Wickham_2016"&gt;[6]&lt;/a&gt;&lt;cite&gt;
H. Wickham.
&lt;em&gt;ggplot2: Elegant Graphics for Data Analysis&lt;/em&gt;.
Springer-Verlag New York, 2016.
ISBN: 978-3-319-24277-4.
URL: &lt;a href="https://ggplot2.tidyverse.org"&gt;https://ggplot2.tidyverse.org&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[7]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package              * version  date       lib source                            
##  assertthat             0.2.1    2019-03-21 [1] CRAN (R 3.6.0)                    
##  beeswarm               0.2.3    2016-04-25 [1] CRAN (R 3.6.0)                    
##  bibtex                 0.4.2.2  2020-01-02 [1] CRAN (R 3.6.0)                    
##  Biobase              * 2.46.0   2019-10-29 [1] Bioconductor                      
##  BiocGenerics         * 0.32.0   2019-10-29 [1] Bioconductor                      
##  BiocManager            1.30.10  2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocNeighbors          1.4.1    2019-11-01 [1] Bioconductor                      
##  BiocParallel         * 1.20.1   2019-12-21 [1] Bioconductor                      
##  BiocSingular           1.2.1    2019-12-23 [1] Bioconductor                      
##  BiocStyle            * 2.14.4   2020-01-09 [1] Bioconductor                      
##  bitops                 1.0-6    2013-08-17 [1] CRAN (R 3.6.0)                    
##  blogdown               0.17     2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown               0.17     2020-01-11 [1] CRAN (R 3.6.0)                    
##  cli                    2.0.1    2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout             * 1.2-1    2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  colorspace             1.4-1    2019-03-18 [1] CRAN (R 3.6.0)                    
##  crayon                 1.3.4    2017-09-16 [1] CRAN (R 3.6.0)                    
##  DelayedArray         * 0.12.2   2020-01-06 [1] Bioconductor                      
##  DelayedMatrixStats     1.8.0    2019-10-29 [1] Bioconductor                      
##  digest                 0.6.23   2019-11-23 [1] CRAN (R 3.6.0)                    
##  dplyr                  0.8.3    2019-07-04 [1] CRAN (R 3.6.0)                    
##  evaluate               0.14     2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi                  0.4.1    2020-01-08 [1] CRAN (R 3.6.0)                    
##  GenomeInfoDb         * 1.22.0   2019-10-29 [1] Bioconductor                      
##  GenomeInfoDbData       1.2.2    2019-10-31 [1] Bioconductor                      
##  GenomicRanges        * 1.38.0   2019-10-29 [1] Bioconductor                      
##  ggbeeswarm             0.6.0    2017-08-07 [1] CRAN (R 3.6.0)                    
##  ggplot2              * 3.2.1    2019-08-10 [1] CRAN (R 3.6.0)                    
##  glue                   1.3.1    2019-03-12 [1] CRAN (R 3.6.0)                    
##  gridExtra              2.3      2017-09-09 [1] CRAN (R 3.6.0)                    
##  gtable                 0.3.0    2019-03-25 [1] CRAN (R 3.6.0)                    
##  htmltools              0.4.0    2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr                   1.4.1    2019-08-05 [1] CRAN (R 3.6.0)                    
##  IRanges              * 2.20.2   2020-01-13 [1] Bioconductor                      
##  irlba                  2.3.3    2019-02-05 [1] CRAN (R 3.6.0)                    
##  jsonlite               1.6      2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations        * 1.0.10   2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr                  1.27     2020-01-16 [1] CRAN (R 3.6.0)                    
##  lattice                0.20-38  2018-11-04 [1] CRAN (R 3.6.2)                    
##  lazyeval               0.2.2    2019-03-15 [1] CRAN (R 3.6.0)                    
##  lifecycle              0.1.0    2019-08-01 [1] CRAN (R 3.6.0)                    
##  lubridate              1.7.4    2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr               1.5      2014-11-22 [1] CRAN (R 3.6.0)                    
##  Matrix                 1.2-18   2019-11-27 [1] CRAN (R 3.6.2)                    
##  matrixStats          * 0.55.0   2019-09-07 [1] CRAN (R 3.6.0)                    
##  munsell                0.5.0    2018-06-12 [1] CRAN (R 3.6.0)                    
##  pillar                 1.4.3    2019-12-20 [1] CRAN (R 3.6.0)                    
##  pkgconfig              2.0.3    2019-09-22 [1] CRAN (R 3.6.1)                    
##  plyr                   1.8.5    2019-12-10 [1] CRAN (R 3.6.0)                    
##  purrr                  0.3.3    2019-10-18 [1] CRAN (R 3.6.0)                    
##  R6                     2.4.1    2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp                   1.0.3    2019-11-08 [1] CRAN (R 3.6.0)                    
##  RCurl                  1.98-1.1 2020-01-19 [1] CRAN (R 3.6.0)                    
##  RefManageR             1.2.12   2019-04-03 [1] CRAN (R 3.6.0)                    
##  rlang                  0.4.3    2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown              2.1      2020-01-20 [1] CRAN (R 3.6.0)                    
##  rsvd                   1.0.2    2019-07-29 [1] CRAN (R 3.6.0)                    
##  S4Vectors            * 0.24.3   2020-01-18 [1] Bioconductor                      
##  scales                 1.1.0    2019-11-18 [1] CRAN (R 3.6.1)                    
##  scater               * 1.14.6   2019-12-16 [1] Bioconductor                      
##  sessioninfo          * 1.1.1    2018-11-05 [1] CRAN (R 3.6.0)                    
##  SingleCellExperiment * 1.8.0    2019-10-29 [1] Bioconductor                      
##  stringi                1.4.5    2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr                1.4.0    2019-02-10 [1] CRAN (R 3.6.0)                    
##  SummarizedExperiment * 1.16.1   2019-12-19 [1] Bioconductor                      
##  tibble                 2.1.3    2019-06-06 [1] CRAN (R 3.6.0)                    
##  tidyselect             0.2.5    2018-10-11 [1] CRAN (R 3.6.0)                    
##  vipor                  0.4.5    2017-03-22 [1] CRAN (R 3.6.0)                    
##  viridis                0.5.1    2018-03-29 [1] CRAN (R 3.6.0)                    
##  viridisLite            0.3.0    2018-02-01 [1] CRAN (R 3.6.0)                    
##  withr                  2.1.2    2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun                   0.12     2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2                   1.2.2    2019-08-09 [1] CRAN (R 3.6.0)                    
##  XVector                0.26.0   2019-10-29 [1] Bioconductor                      
##  yaml                   2.2.0    2018-07-25 [1] CRAN (R 3.6.0)                    
##  zlibbioc               1.32.0   2019-10-29 [1] Bioconductor                      
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;So you can link to specific lines and see things you changed through time that might be the source of the problem are among the main reasons why you should try to version control your code.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn2"&gt;&lt;p&gt;Potentially to a more interesting problem than the one you are stuck currently at.&lt;a href="#fnref2" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn3"&gt;&lt;p&gt;For example, some use a particular project Slack channel, others the lab one, others through direct messages.&lt;a href="#fnref3" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn4"&gt;&lt;p&gt;If you say that something is obvious or easy, you are telling the other person that it should be easy for them too, but we know that it isn’t the case and that’s why they are asking a question.&lt;a href="#fnref4" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn5"&gt;&lt;p&gt;If we want to incorporate this exercise into our weekly meetings (maybe once a month), we need to make sure that our team meeting will finish on time.&lt;a href="#fnref5" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn6"&gt;&lt;p&gt;The use of keywords can dramatically affect a search results, and this information is useful to convey among ourselves so we can learn to search for help more effectively.&lt;a href="#fnref6" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn7"&gt;&lt;p&gt;Basically, you can only be anonymous for those not in the room at the time the question was discussed.&lt;a href="#fnref7" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Conference feelings: from newbie to sponsor</title>
      <link>https://lcolladotor.github.io/2020/02/03/conference-feelings-from-newbie-to-sponsor/</link>
      <pubDate>Mon, 03 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2020/02/03/conference-feelings-from-newbie-to-sponsor/</guid>
      <description>


&lt;p&gt;In the summer of 2008, nearly 12 years ago, I attended my first R/Bioconductor conference: &lt;a href="https://bioconductor.org/help/course-materials/2008/BioC2008/"&gt;BioC2008&lt;/a&gt;. Just last week I went to my second &lt;a href="https://rstudio.com/conference/"&gt;rstudio::conf(2020)&lt;/a&gt; which I greatly enjoyed. After some &lt;a href="https://twitter.com/fellgernon/status/1224512627017244673?s=20"&gt;tweets exchanges today&lt;/a&gt;, I started reflecting on my journey and wanted to share my thoughts.&lt;/p&gt;
&lt;div id="why-i-like-going-to-conferences" class="section level3"&gt;
&lt;h3&gt;Why I like going to conferences&lt;/h3&gt;
&lt;p&gt;I typically enjoy going to conferences, though I also end up exhausted.&lt;/p&gt;
&lt;iframe src="https://giphy.com/embed/l3V0p1WFoSIrzPLW0" width="480" height="480" frameBorder="0" class="giphy-embed" allowFullScreen&gt;
&lt;/iframe&gt;
&lt;p&gt;
&lt;a href="https://giphy.com/gifs/l3V0p1WFoSIrzPLW0"&gt;via GIPHY&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Part of it could be the traveling and all that goes with it, but I think that conferences are mostly mentally taxing. There’s an information deluge which I typically find overwhelming. Sure, I love finding about new work but at some point it’s like collecting bookmarks of stuff to read or try out later &lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;. Yet the most exhausting component of going to a conference could be the networking aspect. Meeting others and catching up with friends is &lt;strong&gt;extremely&lt;/strong&gt; rewarding which is why I ultimately sign up for the next conference. How rewarding can it be? My most extreme example is when two professors invited me to apply to the Ph.D. program that I ended up studying. Though simply making friends and having friendly faces around you can go a long way. I’ll expand a bit on this later.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="as-a-newbie" class="section level3"&gt;
&lt;h3&gt;As a newbie&lt;/h3&gt;
&lt;p&gt;Across my career I have felt as a &lt;em&gt;newbie&lt;/em&gt; when attending many different conferences. I might be alone or maybe have a friend at the conference, or it could be my first time at a conference that I haven’t been to. Your mind, like mine, can be filled up with questions that later might seem simple like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How should I dress?&lt;/li&gt;
&lt;li&gt;Is it ok to drink alcohol? &lt;a href="#fn2" class="footnote-ref" id="fnref2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;How do I not feel alone?&lt;/li&gt;
&lt;li&gt;Am I the odd one here?&lt;/li&gt;
&lt;li&gt;How can I talk to X or Y person I’ve heard about before but never met?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My answers have likely changed over time and currently are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Comfortable, but remember that this is a work event. So look professional by getting a haircut and dressing up a bit &lt;a href="#fn3" class="footnote-ref" id="fnref3"&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Yes, but not too much and if I don’t want any, that’s ok too.&lt;/li&gt;
&lt;li&gt;Talk to whoever seems friendly: could be someone new or an old friend or acquaintance.&lt;/li&gt;
&lt;li&gt;Maybe, but &lt;em&gt;meh&lt;/em&gt; &#129335;&#127997;‍♂️. I do try talking to other latinos or foreigners specially when there’s not many of us around.&lt;/li&gt;
&lt;li&gt;This one is still hard, but maybe someone I know knows them and can introduce me. If so, I ask for the favor. Otherwise I try to approach them with a question about their work.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="as-a-sponsor" class="section level3"&gt;
&lt;h3&gt;As a… &lt;em&gt;sponsor&lt;/em&gt;?&lt;/h3&gt;
&lt;p&gt;The desire to avoid feeling alone is something that can still shape my behavior at a conference. If possible, I like having some close friends I can hang out with and be relaxed, almost as if we were not at the conference. They provide a zone that I can enter, recharge, and then head out of it again to continue networking.&lt;/p&gt;
&lt;p&gt;Yet recently, I’ve grown more conscious of the fact that I’ve been around longer than others. Meaning that I might be the person that knows X or Y that they want to meet or talk to. That is, I find myself more frequently in the position of introducing people and helping them make connections. Somehow asking X or Y: “hey, do you have a minute? Can I introduce you to someone?” is way less scary even if I’m not the closest acquaintance of X or Y. That is, becoming a &lt;em&gt;sponsor&lt;/em&gt;: mostly the &lt;em&gt;access&lt;/em&gt; portion as defined by &lt;a href="https://hookedondata.org/the-importance-of-sponsorship/"&gt;this blog post by Emily Robinson&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, while I still network like I used to, a portion of my time is spent checking on others I know so they are not alone and helping them when possible make the connections they want. Doing so also helps me strengthen my own connections as I detailed near the end of my &lt;a href="https://twitter.com/fellgernon/status/1224034242537119744?s=20"&gt;tweet series post-rstudio::conf(2020)&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;&lt;a href="https://twitter.com/hashtag/rstudioconf?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstudioconf&lt;/a&gt; + I also asked &amp;amp; appreciated their advise! Thanks!&lt;br&gt;&lt;br&gt;I&amp;#39;m just trying to emulate what others have done for me in the past (too many to list, thank youuu!), as I know that getting someone to answer the doorbell is the first step towards opening a door&#129303;&#128588;&#127998;&lt;a href="https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstats&lt;/a&gt; 11/11&lt;/p&gt;&amp;mdash; &#127474;&#127485; Leonardo Collado-Torres (@lcolladotor) &lt;a href="https://twitter.com/lcolladotor/status/1224034315429994502?ref_src=twsrc%5Etfw"&gt;February 2, 2020&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;/div&gt;
&lt;div id="feeling-empowered" class="section level3"&gt;
&lt;h3&gt;Feeling empowered&lt;/h3&gt;
&lt;p&gt;Reaching out and trying to meet someone is hard and scary. Something that helped me since BioC2008 was the fact that I had others in mind: I knew that I was going to teach R later that fall at LCG-UNAM, so any questions I could get through or people I could meet were huge wins for me. Thus, thinking about others empowered me to network. And that’s still true for me through our CDSB project at &lt;a href="https://comunidadbioinfo.github.io/"&gt;comunidadbioinfo.github.io&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If I’m still feeling shy or alone, I remember a story from my dad: he claims that without approaching others who were having dinner at a table, introducing himself and creating a social connection, his ideas would have not made the &lt;a href="https://www.ncbi.nlm.nih.gov/pubmed/9278503"&gt;&lt;em&gt;Escherichia coli&lt;/em&gt; genome paper&lt;/a&gt; that helped launch his career. Personally, once I break that barrier and start to feel comfortable, I feel like I can ask anything: specially feedback and support from others on how to advance some ideas of mine. Lately, that’s mostly been related to our &lt;a href="https://comunidadbioinfo.github.io/"&gt;CDSB&lt;/a&gt; project.&lt;/p&gt;
&lt;p&gt;I wish others could feel empowered too, yet it’s hard to get there. For now, I simply try to help others emulating what others have done for me. Ultimately, I know that getting someone to answer the doorbell is the first step towards opening a door &#129303;&#128588;&#127998; which motivates me and helps me overcome my shyness. Whatever they do after someone answers the doorbell is up to the person I’m helping. Yet in that moment, the satisfaction of helping others make connections fulfills me. Later on, it brings a smile to my face even if I’m exhausted after the conference.&lt;/p&gt;
&lt;iframe src="https://giphy.com/embed/jOyNf6zPoQ2UE" width="480" height="271" frameBorder="0" class="giphy-embed" allowFullScreen&gt;
&lt;/iframe&gt;
&lt;p&gt;
&lt;a href="https://giphy.com/gifs/soccer-angry-mash-up-jOyNf6zPoQ2UE"&gt;via GIPHY&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-04                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;Which is why I have recently taken to Twitter to take “notes”. Notes that I make public and not necessarily go back and revisit, but if I want to, I know where they are.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn2"&gt;&lt;p&gt;Or not drink alcohol. Whichever you want.&lt;a href="#fnref2" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn3"&gt;&lt;p&gt;I don’t wear suits or anything like that though.&lt;a href="#fnref3" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Windows user space issues with installing R packages</title>
      <link>https://lcolladotor.github.io/2019/09/18/windows-user-space-issues-with-installing-r-packages/</link>
      <pubDate>Wed, 18 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2019/09/18/windows-user-space-issues-with-installing-r-packages/</guid>
      <description>


&lt;p&gt;Are you a Microsoft Windows &lt;code&gt;R&lt;/code&gt; user? Does your Windows username include a space? Like &lt;code&gt;Firstname Lastname&lt;/code&gt;. Then you might occassionally run into issues installing packages due to spaces.&lt;/p&gt;
&lt;div id="solutions" class="section level3"&gt;
&lt;h3&gt;Solutions&lt;/h3&gt;
&lt;p&gt;You could either re-install Windows with a username that has no spaces such as &lt;code&gt;Lastname&lt;/code&gt; &lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;, but that’s probably not an easy option. Or you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Edit your &lt;code&gt;TMP&lt;/code&gt; and &lt;code&gt;TEMP&lt;/code&gt; environment variables to a location with no spaces, like &lt;code&gt;C:\TEMP&lt;/code&gt; following instructions like &lt;a href="https://www.howtogeek.com/285710/how-to-move-windows-temporary-folders-to-another-drive/"&gt;these ones&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Preferably install &lt;code&gt;R&lt;/code&gt; at a location with no spaces, like &lt;code&gt;C:\R&lt;/code&gt;, instead of the default &lt;code&gt;C:\Program Files&lt;/code&gt; &lt;a href="#fn2" class="footnote-ref" id="fnref2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="backstory" class="section level3"&gt;
&lt;h3&gt;Backstory&lt;/h3&gt;
&lt;p&gt;A co-worker wanted to install the &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/clusterprofiler"&gt;clusterprofiler&lt;/a&gt;&lt;/em&gt; Bioconductor package which depends on the &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/DO.db"&gt;DO.db&lt;/a&gt;&lt;/em&gt; Bioconductor package. This co-worker uses a Windows machine that has a username with a space. Let’s say it was me with &lt;code&gt;Leo Collado&lt;/code&gt; to keep them anonymous. The &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/DO.db"&gt;DO.db&lt;/a&gt;&lt;/em&gt; is only available as a “Source” package with no Windows binary as you can see &lt;a href="http://bioconductor.org/packages/release/data/annotation/html/DO.db.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2019-09-18-windows-user-space-issues-with-installing-r-packages_files/Screen%20Shot%202019-09-17%20at%2010.33.47%20PM.png" width="600" /&gt;&lt;/p&gt;
&lt;p&gt;This means that &lt;code&gt;R&lt;/code&gt; has to:&lt;/p&gt;
&lt;ol style="list-style-type: decimal"&gt;
&lt;li&gt;download a &lt;code&gt;tar.gz&lt;/code&gt; file,&lt;/li&gt;
&lt;li&gt;uncompress it,&lt;/li&gt;
&lt;li&gt;and then install it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In particular, we are talking about &lt;a href="http://bioconductor.org/packages/release/data/annotation/src/contrib/DO.db_2.9.tar.gz"&gt;&lt;code&gt;DO.db_2.9.tar.gz&lt;/code&gt;&lt;/a&gt; in this case.&lt;/p&gt;
&lt;p&gt;The installation instructions for &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/DO.db"&gt;DO.db&lt;/a&gt;&lt;/em&gt; are:&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;if (!requireNamespace(&amp;quot;BiocManager&amp;quot;, quietly = TRUE))
    install.packages(&amp;quot;BiocManager&amp;quot;)

BiocManager::install(&amp;quot;DO.db&amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;div id="uncompressing" class="section level4"&gt;
&lt;h4&gt;Uncompressing&lt;/h4&gt;
&lt;p&gt;Internally, &lt;code&gt;BiocManager::install()&lt;/code&gt; ends up using &lt;code&gt;utils::install.packages()&lt;/code&gt;. The first step, downloading, works well. Uncompressing a file in this scenario fails. Why?&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;&amp;gt; BiocManager::install(&amp;#39;DO.db&amp;#39;, lib = &amp;#39;C:/R/R-3.6.0/library&amp;#39;)
Bioconductor version 3.9 (BiocManager 1.30.4), R 3.6.0 (2019-04-26)
Installing package(s) &amp;#39;BiocVersion&amp;#39;, &amp;#39;DO.db&amp;#39;

## removed output

trying URL &amp;#39;https://bioconductor.org/packages/3.9/data/annotation/src/contrib/DO.db_2.9.tar.gz&amp;#39;
Content type &amp;#39;application/x-gzip&amp;#39; length 1769978 bytes (1.7 MB)
downloaded 1.7 MB

Error in untar2(tarfile, files, list, exdir, restore_times) :
  incomplete block on file

The downloaded source packages are in
        ‘C:\Users\Leo Collado\AppData\Local\Temp\RtmpqiBJ53\downloaded_packages’&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you search on Google the error message you’ll find links like &lt;a href="https://stackoverflow.com/questions/25487593/r-what-does-incomplete-block-on-file-mean"&gt;this one&lt;/a&gt; which hint towards an incomplete download. But the download works. You can even download the file and try to run &lt;code&gt;untar()&lt;/code&gt; manually and it will fail.&lt;/p&gt;
&lt;p&gt;We were told to try installing R at a location with no spaces, so by this point, R was installed at &lt;code&gt;C:\R\R-3.6.0\&lt;/code&gt;, hence the &lt;code&gt;lib&lt;/code&gt; specification you see above, though it’s irrelevant for these errors.&lt;/p&gt;
&lt;p&gt;Uncompressing the &lt;code&gt;tar.gz&lt;/code&gt; file is done by &lt;code&gt;utils::untar()&lt;/code&gt;. If you look at the code for &lt;code&gt;utils::untar()&lt;/code&gt; you’ll see:&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;## The function definition of utils::untar
function (tarfile, files = NULL, list = FALSE, exdir = &amp;quot;.&amp;quot;, compressed = NA, 
  extras = NULL, verbose = FALSE, restore_times = TRUE,
  support_old_tars = Sys.getenv(&amp;quot;R_SUPPORT_OLD_TARS&amp;quot;, 
    FALSE), tar = Sys.getenv(&amp;quot;TAR&amp;quot;)) 

## Inside utils::untar()
if (inherits(tarfile, &amp;quot;connection&amp;quot;) || identical(tar, &amp;quot;internal&amp;quot;)) {
  if (!missing(compressed)) 
    warning(&amp;quot;argument &amp;#39;compressed&amp;#39; is ignored for the internal method&amp;quot;)
  return(untar2(tarfile, files, list, exdir, restore_times))
}

## Further below
TAR &amp;lt;- tar
if (!nzchar(TAR) &amp;amp;&amp;amp; .Platform$OS.type == &amp;quot;windows&amp;quot; &amp;amp;&amp;amp; nzchar(Sys.which(&amp;quot;tar.exe&amp;quot;))) 
  TAR &amp;lt;- &amp;quot;tar.exe&amp;quot;
if (!nzchar(TAR) || TAR == &amp;quot;internal&amp;quot;) 
  return(untar2(tarfile, files, list, exdir))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this case, the first &lt;code&gt;untar2()&lt;/code&gt; call is called. That is: &lt;code&gt;return(untar2(tarfile, files, list, exdir, restore_times))&lt;/code&gt;. The error message &lt;code&gt;incomplete block on file&lt;/code&gt; is not really informative in this case because &lt;code&gt;untar2()&lt;/code&gt; is not happy when there’s a space in the path to the file &lt;a href="#fn3" class="footnote-ref" id="fnref3"&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We can get around this &lt;code&gt;untar2()&lt;/code&gt; issue by uncompressing the &lt;code&gt;tar.gz&lt;/code&gt; file ourselves in a path that has no spaces. For example, if we download &lt;code&gt;DO.db_2.9.tar.gz&lt;/code&gt; to &lt;code&gt;C:\R&lt;/code&gt; we can uncompress the &lt;code&gt;tar.gz&lt;/code&gt; file with:&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;utils::untar(&amp;#39;C:/R/DO.db_2.9.tar.gz&amp;#39;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="installation" class="section level4"&gt;
&lt;h4&gt;Installation&lt;/h4&gt;
&lt;p&gt;Let’s proceed to installing the package.&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;&amp;gt; install.packages(&amp;#39;C:/R/DO.db&amp;#39;, repos = NULL, type = &amp;#39;source&amp;#39;, lib = &amp;#39;C:/R/R-3.6.0/library&amp;#39;)
* installing *source* package &amp;#39;DO.db&amp;#39; ...
** using staged installation
** R
** inst
** byte-compile and prepare package for lazy loading
ARGUMENT &amp;#39;Collado\AppData\Local\Temp\Rtmp8EQDjB\Rin2ef05088650f&amp;#39; __ignored__

Error: object &amp;#39;ÿþ&amp;#39; not found
Execution halted

ERROR: lazy loading failed for package &amp;#39;DO.db&amp;#39;
* removing &amp;#39;C:/R/R-3.6.0/library/DO.db&amp;#39;

Warning message:
In install.packages(&amp;quot;C:/R/DO.db&amp;quot;, repos = NULL, type = &amp;quot;source&amp;quot;,  :
  installation of package ‘C:/R/DO.db’ had non-zero exit status
&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Oh noes! It didn’t work &#128534; What happened?&lt;/p&gt;
&lt;p&gt;If you look closely, you’ll see that it says &lt;code&gt;ARGUMENT 'Collado\AppData\Local\Temp\Rtmp8EQDjB\Rin2ef05088650f' __ignored__&lt;/code&gt;. Wait! &lt;code&gt;Collado&lt;/code&gt; is the &lt;code&gt;Lastname&lt;/code&gt; portion of the username! So we have another space issue &lt;a href="#fn4" class="footnote-ref" id="fnref4"&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt;. That structure though looks very familiar, it’s from &lt;code&gt;base::tempdir()&lt;/code&gt;!&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;&amp;gt; tempdir()

[1] &amp;quot;C:\\Users\\Leo Collado\\AppData\\Local\\Temp\\RtmpqiBJ53&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The help file for &lt;code&gt;?tempdir&lt;/code&gt; contained the clues to solving this issue.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;By default, tmpdir will be the directory given by tempdir().
This will be a subdirectory of the per-session temporary directory
found by the following rule when the R session is started.
The environment variables TMPDIR, TMP and TEMP are checked in turn
and the first found which points to a writable directory is used:
if none succeeds ‘/tmp’ is used. The path should not contain spaces.
Note that setting any of these environment variables in the R session
has no effect on tempdir(): the per-session temporary directory is
created before the interpreter is started.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We can set the &lt;code&gt;TMPDIR&lt;/code&gt; environment variable which will be used by the R session spawned inside the installation of &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/DO.db"&gt;DO.db&lt;/a&gt;&lt;/em&gt; and… it works!&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;&amp;gt; Sys.setenv(TMPDIR = &amp;#39;C:/R/tmp_leo&amp;#39;)
&amp;gt; Sys.getenv(&amp;#39;TMPDIR&amp;#39;)
[1] &amp;quot;C:/R/tmp_leo&amp;quot;
&amp;gt;
&amp;gt;
&amp;gt; install.packages(&amp;#39;C:/R/DO.db&amp;#39;, repos = NULL, type = &amp;#39;source&amp;#39;, lib = &amp;#39;C:/R/R-3.6.0/library&amp;#39;)
* installing *source* package &amp;#39;DO.db&amp;#39; ...
** using staged installation
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
  converting help for package &amp;#39;DO.db&amp;#39;
    finding HTML links ... done
    DOANCESTOR                              html 
    DOBASE                                  html 
    DOCHILDREN                              html 
    DOMAPCOUNTS                             html 
    DOOBSOLETE                              html 
    DOOFFSPRING                             html 
    DOPARENTS                               html 
    DOSYNONYM                               html  
    DOTERM                                  html 
    DOTerms-class                           html 
    DOTermsAnnDbBimap                       html 
    DO_dbconn                               html 
** building package indices
** testing if installed package can be loaded from temporary location
*** arch - i386
*** arch - x64
** testing if installed package can be loaded from final location
*** arch - i386
*** arch - x64
** testing if installed package keeps a record of temporary installation path
* DONE (DO.db)
Making &amp;#39;packages.html&amp;#39; ... done&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="clusterprofiler-installation" class="section level4"&gt;
&lt;h4&gt;&lt;code&gt;clusterProfiler&lt;/code&gt; installation&lt;/h4&gt;
&lt;p&gt;Now we can continue and install &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/clusterProfiler"&gt;clusterProfiler&lt;/a&gt;&lt;/em&gt;, right?&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;&amp;gt; BiocManager::install(&amp;#39;clusterProfiler&amp;#39;, lib = &amp;#39;C:/R/R-3.6.0/library&amp;#39;)
Bioconductor version 3.9 (BiocManager 1.30.4), R 3.6.0 (2019-04-26)
Installing package(s) &amp;#39;clusterProfiler&amp;#39;
also installing the dependencies ‘sys’, ‘formatR’, ‘askpass’, ‘farver’, ‘backports’, ‘zeallot’, ‘lambda.r’, ‘futile.options’, ‘curl’, ‘mime’, ‘openssl’, ‘hms’, ‘triebeard’, ‘tweenr’, ‘polyclip’, ‘RcppEigen’, ‘colorspace’, ‘utf8’, ‘vctrs’, ‘futile.logger’, ‘snow’, ‘data.table’, ‘fastmatch’, ‘stringr’, ‘httr’, ‘jsonlite’, ‘progress’, ‘urltools’, ‘xml2’, ‘gridGraphics’, ‘ggforce’, ‘ggrepel’, ‘viridis’, ‘labeling’, ‘munsell’, ‘R6’, ‘cli’, ‘crayon’, ‘fansi’, ‘pillar’, ‘BiocParallel’, ‘fgsea’, ‘reshape2’, ‘cowplot’, ‘europepmc’, ‘ggplotify’, ‘ggraph’, ‘ggridges’, ‘gridExtra’, ‘igraph’, ‘purrr’, ‘RColorBrewer’, ‘UpSetR’, ‘gtable’, ‘lazyeval’, ‘rlang’, ‘scales’, ‘tibble’, ‘viridisLite’, ‘withr’, ‘dplyr’, ‘glue’, ‘stringi’, ‘tidyselect’, ‘DOSE’, ‘enrichplot’, ‘ggplot2’, ‘GO.db’, ‘GOSemSim’, ‘plyr’, ‘qvalue’, ‘rvcheck’, ‘tidyr’

## Delete more output

The downloaded binary packages are in
        C:\Users\Leo Collado\AppData\Local\Temp\RtmpqiBJ53\downloaded_packages
installing the source packages ‘pillar’, ‘GO.db’


trying URL &amp;#39;https://cloud.r-project.org/src/contrib/pillar_1.4.1.tar.gz&amp;#39;
Content type &amp;#39;application/x-gzip&amp;#39; length 228572 bytes (223 KB)
downloaded 223 KB

trying URL &amp;#39;https://bioconductor.org/packages/3.9/data/annotation/src/contrib/GO.db_3.8.2.tar.gz&amp;#39;
Content type &amp;#39;application/x-gzip&amp;#39; length 31820866 bytes (30.3 MB)
downloaded 30.3 MB

Error in untar2(tarfile, files, list, exdir, restore_times) :
  incomplete block on file

Error in untar2(tarfile, files, list, exdir, restore_times) :
  incomplete block on file

The downloaded source packages are in
        ‘C:\Users\Leo Collado\AppData\Local\Temp\RtmpqiBJ53\downloaded_packages’&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The issue is again that &lt;code&gt;utils:::untar2()&lt;/code&gt; and thus &lt;code&gt;utils::untar()&lt;/code&gt; does not like spaces in the paths. If we look at where the packages were downloaded more closely, we can see a space there at &lt;code&gt;C:\Users\Leo Collado\AppData\Local\Temp\RtmpqiBJ53\downloaded_packages&lt;/code&gt;. If you check the help file for &lt;code&gt;utils::install.packages()&lt;/code&gt; you’ll see that &lt;code&gt;destdir&lt;/code&gt; controls this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;destdir&lt;/p&gt;
&lt;p&gt;directory where downloaded packages are stored. If it is NULL
(the default) a subdirectory downloaded_packages of the session
temporary directory will be used (and the files will be deleted
at the end of the session).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If we dig into &lt;code&gt;utils::install.packages()&lt;/code&gt; we can see how this comes to play.&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;## Part of utils::install.packages()
if (is.null(destdir) &amp;amp;&amp;amp; nonlocalrepos) {
  tmpd &amp;lt;- file.path(tempdir(), &amp;quot;downloaded_packages&amp;quot;)
  if (!file.exists(tmpd) &amp;amp;&amp;amp; !dir.create(tmpd)) 
    stop(gettextf(&amp;quot;unable to create temporary directory %s&amp;quot;, 
      sQuote(tmpd)), domain = NA)
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Setting the environment variable &lt;code&gt;TMPDIR&lt;/code&gt; doesn’t work here as the instructions for &lt;code&gt;tempdir()&lt;/code&gt; specify &lt;a href="#fn5" class="footnote-ref" id="fnref5"&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/a&gt; although I now see that you can edit the &lt;code&gt;.Renviron&lt;/code&gt; file as instructed &lt;a href="https://stackoverflow.com/questions/17107206/change-temporary-directory"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In any case, if we specify a &lt;code&gt;destdir&lt;/code&gt; without spaces we overide the need to control &lt;code&gt;tempdir()&lt;/code&gt;, enable &lt;code&gt;utils::untar()&lt;/code&gt; to work and we can finally install &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/clusterProfiler"&gt;clusterProfiler&lt;/a&gt;&lt;/em&gt; &#127881;.&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;&amp;gt; BiocManager::install(&amp;#39;clusterProfiler&amp;#39;, lib = &amp;#39;C:/R/R-3.6.0/library&amp;#39;, destdir = &amp;#39;C:/R/dest_leo&amp;#39;)
Bioconductor version 3.9 (BiocManager 1.30.4), R 3.6.0 (2019-04-26)
Installing package(s) &amp;#39;clusterProfiler&amp;#39;
also installing the dependency ‘GO.db’

trying URL &amp;#39;https://bioconductor.org/packages/3.9/bioc/bin/windows/contrib/3.6/clusterProfiler_3.12.0.zip&amp;#39;
Content type &amp;#39;application/zip&amp;#39; length 623524 bytes (608 KB)
downloaded 608 KB

package ‘clusterProfiler’ successfully unpacked and MD5 sums checked
installing the source package ‘GO.db’

trying URL &amp;#39;https://bioconductor.org/packages/3.9/data/annotation/src/contrib/GO.db_3.8.2.tar.gz&amp;#39;
Content type &amp;#39;application/x-gzip&amp;#39; length 31820866 bytes (30.3 MB)
downloaded 30.3 MB

* installing *source* package &amp;#39;GO.db&amp;#39; ...
** using staged installation
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
  converting help for package &amp;#39;GO.db&amp;#39;
    finding HTML links ... done
    GOBASE                                  html 
    GOBPANCESTOR                            html 
    GOBPCHILDREN                            html 
    GOBPOFFSPRING                           html 
    GOBPPARENTS                             html 
    GOCCANCESTOR                            html 
    GOCCCHILDREN                            html 
    GOCCOFFSPRING                           html 
    GOCCPARENTS                             html 
    GOMAPCOUNTS                             html 
    GOMFANCESTOR                            html 
    GOMFCHILDREN                            html 
    GOMFOFFSPRING                           html 
    GOMFPARENTS                             html 
    GOOBSOLETE                              html 
    GOSYNONYM                               html 
    GOTERM                                  html  
    GO_dbconn                               html 
** building package indices
** testing if installed package can be loaded from temporary location
*** arch - i386
*** arch - x64
** testing if installed package can be loaded from final location
*** arch - i386
*** arch - x64
** testing if installed package keeps a record of temporary installation path
* DONE (GO.db)
Making &amp;#39;packages.html&amp;#39; ... done&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="closing" class="section level3"&gt;
&lt;h3&gt;Closing&lt;/h3&gt;
&lt;p&gt;All of the above seemed like too much. In addition, it seemed like &lt;code&gt;BiocManager::install('hypeR', destdir = 'C:/R/dest_leo')&lt;/code&gt; was not working &lt;a href="#fn6" class="footnote-ref" id="fnref6"&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/a&gt;. I likely missed something here earlier today. So controlling &lt;code&gt;utils::tempdir()&lt;/code&gt; seemed like the easiest solution such that the defaults of where a package gets downloaded, uncompressed, etc all worked. And the simplest solution we thought of was to create the &lt;code&gt;C:\TEMP&lt;/code&gt; directory and update the Windows environment variables &lt;code&gt;TMP&lt;/code&gt; and &lt;code&gt;TEMP&lt;/code&gt; to &lt;a href="https://www.howtogeek.com/285710/how-to-move-windows-temporary-folders-to-another-drive/"&gt;point&lt;/a&gt; to that location. Then, the rest of the commands worked without having to specify &lt;code&gt;lib&lt;/code&gt; or &lt;code&gt;destdir&lt;/code&gt; or manually run &lt;code&gt;utils::untar()&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;As a whole, remember to look for spaces in the error messages! This is specially relevant when you are having issues as a Microsoft Windows &lt;code&gt;R&lt;/code&gt; user.&lt;/p&gt;
&lt;p&gt;If you have other solutions for Microsoft Windows &lt;code&gt;R&lt;/code&gt; users with usernames that have at least one space, please let us know in the comments! Thank you! &#128588;&#127997;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;This is the case in the Bioconductor Windows build machine where the username is &lt;code&gt;biocbuild&lt;/code&gt; as you can see &lt;a href="http://bioconductor.org/checkResults/release/bioc-LATEST/recount/tokay2-install.html"&gt;here&lt;/a&gt;.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn2"&gt;&lt;p&gt;In the Bioconductor Windows build machines there are again no spaces in the path to the R installation and the library where packages are installed.&lt;a href="#fnref2" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn3"&gt;&lt;p&gt;Hopefully in the future Google will lead you to this blog post and you might avoid the rabbit hole I went through!&lt;a href="#fnref3" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn4"&gt;&lt;p&gt;By the way, at this point I thought that the error was related to &lt;code&gt;Error: object 'ÿþ' not found&lt;/code&gt; and maybe some encoding issues since the &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/DO.db"&gt;DO.db&lt;/a&gt;&lt;/em&gt; package has Chinese characters.&lt;a href="#fnref4" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn5"&gt;&lt;p&gt;Didn’t stop me from trying hehe. I tried using &lt;code&gt;usethis::edit_r_profile()&lt;/code&gt; and adding &lt;code&gt;Sys.setenv(TMPDIR = 'C:/R/tmp_leo')&lt;/code&gt; but that didn’t work.&lt;a href="#fnref5" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn6"&gt;&lt;p&gt;I would need to test this more before reporting it properly to Bioconductor.&lt;a href="#fnref6" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>The evolution of my academic career as seen through posters and talks thanks to hugo academic 4.1</title>
      <link>https://lcolladotor.github.io/2019/04/10/the-evolution-of-my-academic-career-as-seen-through-posters-and-talks-thanks-to-hugo-academic-4-1/</link>
      <pubDate>Wed, 10 Apr 2019 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2019/04/10/the-evolution-of-my-academic-career-as-seen-through-posters-and-talks-thanks-to-hugo-academic-4-1/</guid>
      <description>


&lt;p&gt;The &lt;a href="https://github.com/gcushen/hugo-academic"&gt;&lt;code&gt;hugo-academic&lt;/code&gt;&lt;/a&gt; theme which powers my website is active and frequently updated. I don’t update my website that frequently anymore, but I recently found about many of their changes when I made the &lt;a href="https://comunidadbioinfo.github.io/"&gt;CDSB website&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="es" dir="ltr"&gt;We are delighted to share with you our new webpage at &lt;a href="https://t.co/rNuiRlNixV"&gt;https://t.co/rNuiRlNixV&lt;/a&gt; with both English and Spanish support&lt;br&gt;&lt;br&gt;Estamos encantados de compartirles nuestra nueva página web que viene en español e inglés&lt;br&gt;&lt;br&gt;It&amp;#39;ll replace/remplazará a &lt;a href="https://t.co/SMtJbOM9KO"&gt;https://t.co/SMtJbOM9KO&lt;/a&gt;&lt;a href="https://twitter.com/hashtag/rstatsES?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstatsES&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/diversity?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#diversity&lt;/a&gt; &lt;a href="https://t.co/1SVg9rcqVf"&gt;pic.twitter.com/1SVg9rcqVf&lt;/a&gt;&lt;/p&gt;&amp;mdash; ComunidadBioInfo (@CDSBMexico) &lt;a href="https://twitter.com/CDSBMexico/status/1114003433755959296?ref_src=twsrc%5Etfw"&gt;April 5, 2019&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;One of the new features that I liked quite a bit was the ability to have landing pages for each person in your team. I wanted to improve my website’s section &lt;a href="http://lcolladotor.github.io/#mentoring"&gt;describing the people I’ve mentored&lt;/a&gt; so I decided to update my personal website too. Once I started this process, I realized that talks and publications had drastically changed. You could now have an image per talk or publication, add tags to them and link them to projects. Furthermore, I noticed that I hadn’t uploaded all my posters nor the slides for all my talks. So this whole process of updating my website took quite a bit of time! All this new information is also reflected on my &lt;a href="http://lcolladotor.github.io/#cv"&gt;CV&lt;/a&gt; now.&lt;/p&gt;
&lt;div id="the-end-result-alumni" class="section level3"&gt;
&lt;h3&gt;The end result: alumni&lt;/h3&gt;
&lt;p&gt;First of all, I really like how the section &lt;a href="http://lcolladotor.github.io/#mentoring"&gt;describing the people I’ve mentored&lt;/a&gt; looks now. You can see the faces of the alumni and navigate to a page describing them in more detail.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2019-04-10-the-evolution-of-my-academic-career-as-seen-through-posters-and-talks-thanks-to-hugo-academic-4-1_files/Screen%20Shot%202019-04-10%20at%2011.33.54%20AM.png" width="700" /&gt;&lt;/p&gt;
&lt;p&gt;For example, check &lt;a href="http://lcolladotor.github.io/authors/apeterson/#.XK4NIetKi50"&gt;Amy Peterson&lt;/a&gt;’s landing page which includes links to all her profiles I know about. I was also able to add some pictures of a key event with her: her MPH capstone final presentation.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2019-04-10-the-evolution-of-my-academic-career-as-seen-through-posters-and-talks-thanks-to-hugo-academic-4-1_files/Screen%20Shot%202019-04-10%20at%2011.35.08%20AM.png" width="700" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="my-academic-career" class="section level3"&gt;
&lt;h3&gt;My academic career&lt;/h3&gt;
&lt;p&gt;In this new version of my website you can also quickly take a look at my academic career by browsing through my &lt;a href="http://lcolladotor.github.io/talk/#.XK4Nr-tKi50"&gt;talks&lt;/a&gt; and &lt;a href="http://lcolladotor.github.io/publication/#.XK4N2OtKi50"&gt;publications (papers, posters and a book chapter)&lt;/a&gt;. The papers are fancier, but the &lt;a href="http://lcolladotor.github.io/publication/#0"&gt;posters&lt;/a&gt; and the talks tell you a more detailed story of how I’ve advanced through my career so far with in progress talks and posters showing some ideas, many of which we discareded in the end. For example, you can look at the &lt;a href="http://lcolladotor.github.io/publication/poster2010bioc/#.XK4OUOtKi50"&gt;poster I presented at BioC2010&lt;/a&gt; which is when I met Rafa and Ingo from JHU Biostat. Through the posters and talks you can see how the &lt;a href="http://lcolladotor.github.io/project/derfinder/#.XK4PJOtKi50"&gt;&lt;code&gt;derfinder&lt;/code&gt; project&lt;/a&gt; came to be and culminated in the &lt;a href="http://lcolladotor.github.io/publication/derfinder/#.XK4PLetKi50"&gt;publication describing the software&lt;/a&gt;, which was my main Ph.D. project. I like how all the talks and posters related to &lt;code&gt;derfinder&lt;/code&gt; can easily be found through the &lt;a href="http://lcolladotor.github.io/project/derfinder/#.XK4PJOtKi50"&gt;project&lt;/a&gt; page. The talks now include my &lt;a href="http://lcolladotor.github.io/talk/defense2016/#.XK4PiOtKi50"&gt;Ph.D. defense talk&lt;/a&gt; &#128588;&#127997;✌&#127997;.&lt;/p&gt;
&lt;p&gt;You can also see how the templates I used for making &lt;a href="http://lcolladotor.github.io/talk/#.XK4RFetKi50"&gt;talks&lt;/a&gt; evolved through time starting with my &lt;a href="http://lcolladotor.github.io/talk/fagos2008/#.XK4OnOtKi50"&gt;joint undergrad project&lt;/a&gt; with &lt;a href="https://twitter.com/sur_hp"&gt;Sur Herrera-Paredes&lt;/a&gt;. You can find some presentaitons made with Beamer, others with &lt;code&gt;knitr&lt;/code&gt; (before &lt;code&gt;rmarkdown&lt;/code&gt; existed), some with RStudio presentations, as well as different PowerPoint templates.&lt;/p&gt;
&lt;p&gt;Overall, I’m very happy with my new website and I hope that you enjoy browsing through my academic career. I’ll use it to movitate others by showing them that we all start somewhere and it takes time and effort to grow.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="some-code-for-udpating-to-hugo-academic-4.1.0" class="section level3"&gt;
&lt;h3&gt;Some code for udpating to hugo academic 4.1.0&lt;/h3&gt;
&lt;p&gt;If you are updating your &lt;code&gt;hugo-academic&lt;/code&gt; website you should be prepared to spend a significant amount of time if you want to include all the details I included. It took me most of my Saturday, Monday afternoon, and several hours on Tuesday to update mine. Here’s some code I used in this process that might be helpful to you.&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;## I copied my lcolladotorsource/content/talk files to ~/Downloads/ugh-talks
## then I made a new directory named after the initial .md files
## I made this process easier when updating my publications
## (see further below)
p_ori &amp;lt;- &amp;#39;~/Downloads/ugh-talks/&amp;#39;
p_new &amp;lt;- &amp;#39;/users/lcollado/Dropbox/code/lcolladotorsource/content/talk&amp;#39;
f &amp;lt;- dir(p_ori)
ff &amp;lt;- gsub(&amp;#39;.md&amp;#39;, &amp;#39;&amp;#39;, f)


## For testing
# i &amp;lt;- 1

for(i in seq_len(length(f))) {

    f_initial &amp;lt;- file.path(p_ori, f[i])
  f_new &amp;lt;- file.path(p_new, ff[i], &amp;#39;index.md&amp;#39;)
  
  initial &amp;lt;- readLines(f_initial)
  new &amp;lt;- readLines(f_new)
  
  ## For a set of tags present in the previous version of hugo-academic
  ## I was using and the latest one, I found the initial strings
  ## such that I could find and replace the text.
  ## I also made sure to delete that info on the previous version
  ## so I could inspect rapidly if there was any information
  ## on the old version that I hadn&amp;#39;t transfered to the new version.
  ## This typically involved some custom urls whose syntax is now
  ## different.
  for(j in c(&amp;#39;location&amp;#39;, &amp;#39;abstract &amp;#39;, &amp;#39;event_url&amp;#39;, &amp;#39;url_video&amp;#39;, &amp;#39;url_slides&amp;#39;, &amp;#39;title&amp;#39;, &amp;#39;url_pdf&amp;#39;, &amp;#39;event &amp;#39;, &amp;#39;math&amp;#39;)) {
    ## for debugging:
    # print(j)
    patt &amp;lt;- paste0(&amp;#39;^&amp;#39;, j)
    cont &amp;lt;- initial[grep(patt, initial)]
    initial[grep(patt, initial)] &amp;lt;- &amp;#39;&amp;#39;
    stopifnot(length(grep(patt, new)) &amp;gt; 0)
    # print(length(cont))
    new[grep(patt, new)] &amp;lt;- cont
  }
  
  ## For times I had to do this manually
  ## since the names for these tags changed
  j &amp;lt;- &amp;#39;time_start&amp;#39;
  patt &amp;lt;- paste0(&amp;#39;^&amp;#39;, j)
  cont &amp;lt;- initial[grep(patt, initial)]
  initial[grep(patt, initial)] &amp;lt;- &amp;#39;&amp;#39;
  new[grep(&amp;#39;^date &amp;#39;, new)] &amp;lt;- gsub(&amp;#39;time_start&amp;#39;, &amp;#39;date&amp;#39;, cont)
  
  ## and the end time wasn&amp;#39;t always there
  cont2 &amp;lt;- initial[grep(&amp;#39;^time_end&amp;#39;, initial)]
  cont2 &amp;lt;- gsub(&amp;#39;time_end&amp;#39;, &amp;#39;date_end&amp;#39;, cont2)
  if(length(cont2) == 0) cont2 &amp;lt;- gsub(&amp;#39;time_start&amp;#39;, &amp;#39;date_end&amp;#39;, cont) else initial[grep(&amp;#39;^time_end&amp;#39;, initial)] &amp;lt;- &amp;quot;&amp;quot;
  new[grep(&amp;#39;^date_end &amp;#39;, new)] &amp;lt;- cont2
  
  ## Similarly, the short version of the abstract now has
  ## a different name
  j &amp;lt;- &amp;#39;abstract_short&amp;#39;
  patt &amp;lt;- paste0(&amp;#39;^&amp;#39;, j)
  cont &amp;lt;- initial[grep(patt, initial)]
  initial[grep(patt, initial)] &amp;lt;- &amp;#39;&amp;#39;
  new[grep(&amp;#39;^summary&amp;#39;, new)] &amp;lt;- gsub(&amp;#39;abstract_short&amp;#39;, &amp;#39;summary&amp;#39;, cont)
  
  ## Replace the old and new files with the updated versions ^^
  writeLines(initial, f_initial)
  writeLines(new, f_new)
}




### Publications

## Again, I moved the original files elsewhere
## and I copied the exampleSite/content/publication/clothing-search
## directory

## I then edited the clothing-search/index.md file
## a little bit before copying it to all the new folders below

p_ori &amp;lt;- &amp;#39;~/Downloads/ugh/&amp;#39;
p_new &amp;lt;- &amp;#39;/users/lcollado/Dropbox/code/lcolladotorsource/content/publication&amp;#39;
f &amp;lt;- dir(p_ori)
ff &amp;lt;- gsub(&amp;#39;.md&amp;#39;, &amp;#39;&amp;#39;, f)


for(i in seq_len(length(f))) {
  
  
  ## Create the new directories from R
  ## coping my modified template publication using the
  ## clothing-search example
  system(paste(&amp;#39;cp -R&amp;#39;, file.path(p_new, &amp;#39;clothing-search&amp;#39;), file.path(p_new, ff[i])))
  
  
  
  f_initial &amp;lt;- file.path(p_ori, f[i])
  f_new &amp;lt;- file.path(p_new, ff[i], &amp;#39;index.md&amp;#39;)
  
  initial &amp;lt;- readLines(f_initial)
  new &amp;lt;- readLines(f_new)
  
  ## Update tags just like I did for the talks
  for(j in c(&amp;#39;title &amp;#39;, &amp;#39;date &amp;#39;, &amp;#39;math &amp;#39;, &amp;#39;publication &amp;#39;, &amp;#39;abstract &amp;#39;, &amp;#39;url_pdf&amp;#39;, &amp;#39;url_project&amp;#39;, &amp;#39;url_dataset&amp;#39;, &amp;#39;url_video&amp;#39;, &amp;#39;url_slides&amp;#39;, &amp;#39;url_code&amp;#39;, &amp;#39;authors &amp;#39;)) {
    #print(j)
    patt &amp;lt;- paste0(&amp;#39;^&amp;#39;, j)
    cont &amp;lt;- initial[grep(patt, initial)]
    initial[grep(patt, initial)] &amp;lt;- &amp;#39;&amp;#39;
    stopifnot(length(grep(patt, new)) &amp;gt; 0)
    #print(length(cont))
    new[grep(patt, new)] &amp;lt;- cont
  }
  
  writeLines(initial, f_initial)
  writeLines(new, f_new)

}&lt;/code&gt;&lt;/pre&gt;
&lt;pre class="bash"&gt;&lt;code&gt;## I used imagemagick a few times to create the featured.jpg files
convert eurobioc2010-Bacterial-Collado.pdf[0] featured.jpg

## Other times I created those images by taking screenshots
## and then reducing the size to a max width/height of 1000 pixels
## to reduce the file sizes a bit&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>CDSBMexico: remember to apply for BioC2019 travel scholarships</title>
      <link>https://lcolladotor.github.io/2019/02/28/cdsbmexico-remember-to-apply-for-bioc2019-travel-scholarships/</link>
      <pubDate>Thu, 28 Feb 2019 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2019/02/28/cdsbmexico-remember-to-apply-for-bioc2019-travel-scholarships/</guid>
      <description>


&lt;p&gt;&lt;em&gt;This blog post was first published at the &lt;a href="https://comunidadbioinfo.github.io/post/cdsbmexico-remember-to-apply-for-bioc2019-travel-scholarships/"&gt;CDSBMexico website&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;&lt;a href="https://twitter.com/hashtag/CDSBMexico?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#CDSBMexico&lt;/a&gt;: remember to apply for BioC2019 travel scholarships!!&lt;br&gt;&lt;br&gt;Due date is March 15th&lt;a href="https://t.co/iegG0qQzwu"&gt;https://t.co/iegG0qQzwu&lt;/a&gt;&lt;br&gt;&lt;br&gt;Let us help you! Here we give you some ideas &#128161;We can also give you feedback via Slack ✅&lt;a href="https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstats&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/bioconductor?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#bioconductor&lt;/a&gt; &lt;a href="https://twitter.com/Bioconductor?ref_src=twsrc%5Etfw"&gt;@Bioconductor&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/bioc2019?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#bioc2019&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/diversity?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#diversity&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/LatAm?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#LatAm&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/rstatsES?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstatsES&lt;/a&gt; &lt;a href="https://t.co/EORg8d2Qxj"&gt;pic.twitter.com/EORg8d2Qxj&lt;/a&gt;&lt;/p&gt;&amp;mdash; ComunidadBioInfo (@CDSBMexico) &lt;a href="https://twitter.com/CDSBMexico/status/1101339389395943424?ref_src=twsrc%5Etfw"&gt;March 1, 2019&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;About 10 months ago &lt;a href="http://lcolladotor.github.io/2018/04/19/latin-american-r-bioconductor-developers-workshop-2018/#.XHiaE1NKg0o"&gt;we announced our plans&lt;/a&gt; to start a new community of R/Bioconductor developers in Mexico and Latin America. The National Bioinformatics Node (&lt;a href="http://www.nnb.unam.mx/"&gt;NNB-UNAM&lt;/a&gt; in Spanish) &lt;a href="http://congresos.nnb.unam.mx/"&gt;has organized workshops&lt;/a&gt; in bioinformatics and R since 2006 and more frequently since 2010. Last year, 2018, there were &lt;a href="http://congresos.nnb.unam.mx/TIB2018/"&gt;five simultaneous one week workshops&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Introduction to R and RStudio&lt;/li&gt;
&lt;li&gt;Exploratory data analysis (EDA) of biological data with R&lt;/li&gt;
&lt;li&gt;EDA of RNA-seq data and differential expression studies&lt;/li&gt;
&lt;li&gt;Genome assembly and annotation from high-throughput sequencing data&lt;/li&gt;
&lt;li&gt;And our &lt;a href="http://congresos.nnb.unam.mx/TIB2018/r-bioconductor-developers-workshop-2018/"&gt;&lt;em&gt;Latin American R/Bioconductor Developers Workshop&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Overall it was a success as described in &lt;a href="https://comunidadbioinfo.github.io/post/a-recap-of-cdsb-2018-the-start-of-a-community/"&gt;&lt;em&gt;A recap of CDSB 2018: the start of a community&lt;/em&gt;&lt;/a&gt;. However, we are not done yet! &#128170;&#127997;As we have stated several times, our goal is to turn R users into developers and to increase the representation of Mexicans and Latin Americans at other R events.&lt;/p&gt;
&lt;div id="bioc2019" class="section level3"&gt;
&lt;h3&gt;BioC2019&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://bioconductor.org/images/logo_bioconductor.gif" /&gt;&lt;/p&gt;
&lt;p&gt;The one R event that we followed as a guide last year is the Bioconductor yearly meeting, or &lt;em&gt;BioC&lt;/em&gt;. This year, &lt;a href="https://bioc2019.bioconductor.org/index"&gt;BioC2019&lt;/a&gt; will be held during June 24 to 27 at New York City in the United States. If you are an academic the registration fee is 300 USD prior to May 24th. As of today (Feb 28th), a round trip from Mexico City on June 23 to 28th is about 320-410 USD&lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;. The &lt;a href="https://bioc2019.bioconductor.org/travel-accommodations"&gt;accommodation options listed&lt;/a&gt; start at 118 USD plus tax a night. As you can see, these numbers add up fairly fast which is a limiting factor for scientists from Mexico (and Latin American in general) to attend &lt;em&gt;BioC2019&lt;/em&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="travel-scholarships" class="section level3"&gt;
&lt;h3&gt;Travel scholarships&lt;/h3&gt;
&lt;p&gt;However, we want to remind you that there are travel scholarships available! And we, &lt;a href="https://comunidadbioinfo.github.io/"&gt;&lt;em&gt;CDSB&lt;/em&gt;&lt;/a&gt;, want to help you! &#128588;&#127997;&lt;/p&gt;
&lt;p&gt;All the details about the travel scholarship and different types of submission proposals are available on the &lt;a href="https://bioc2019.bioconductor.org/call-for-abstracts"&gt;BioC2019&lt;/a&gt; website. But let us summarize the process for you.&lt;/p&gt;
&lt;ol style="list-style-type: decimal"&gt;
&lt;li&gt;You have to apply for either a &lt;strong&gt;talk&lt;/strong&gt;, &lt;strong&gt;poster&lt;/strong&gt; or &lt;strong&gt;workshop&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You need a professional website, GitHub profile or your CV to be available online.&lt;/li&gt;
&lt;li&gt;You need to answer two questions:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;How have you participated in the Bioconductor project in the past?&lt;/li&gt;
&lt;li&gt;What do you hope to get out of the conference?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a talk or poster proposal you have a maximum of 300 words while workshop proposals involve filling out a template.&lt;/p&gt;
&lt;p&gt;This is quite a bit of work, but the payoff is immense! You will compete for the opportunity to travel basically for free: free registration and hotel, plus $500 for travel expenses. This can be a career changing opportunity as it was &lt;a href="https://speakerdeck.com/lcolladotor/cdsbmexico"&gt;the case for L. Collado-Torres (see his keynote slides)&lt;/a&gt; and others.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="get-started-on-your-scholarship-application" class="section level3"&gt;
&lt;h3&gt;Get started on your scholarship application!&lt;/h3&gt;
&lt;p&gt;We know that many of us have a tendency to do things at the last minute. However, we hope &#128591;&#127997;
that you start your application materials as soon as you can. Remember that the deadline is &lt;strong&gt;March 15th&lt;/strong&gt; and &lt;strong&gt;no exceptions&lt;/strong&gt; are made.&lt;/p&gt;
&lt;div id="website" class="section level4"&gt;
&lt;h4&gt;Website&lt;/h4&gt;
&lt;p&gt;If you don’t have a professional website, we recommend that you make one following &lt;a href="https://www.emilyzabor.com/tutorials/rmarkdown_websites_tutorial.html"&gt;Emily Zabor’s tutorial&lt;/a&gt;. This is the tutorial that one of your fellow CDSBMexico 2018 attendees used to create his website: &lt;a href="https://joseaia.github.io/"&gt;joseaia.github.io&lt;/a&gt;. Alternatively, check out the &lt;a href="https://leanpub.com/universities/courses/jhu/cbds-intro-r"&gt;Chromebook Data Science: intro to R course (available for free if you can’t afford it)&lt;/a&gt; which includes a lesson that walks you through this process.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="bioconductor-project-participation" class="section level4"&gt;
&lt;h4&gt;Bioconductor project participation&lt;/h4&gt;
&lt;p&gt;Next, we know that each of you worked at least in one R package during CDSBMexico 2018 such as &lt;a href="https://comunidadbioinfo.github.io/post/r-gene-regulatory-interaction-formulator-for-inquiring-networks/"&gt;rGriffin (check the blog post)&lt;/a&gt;. Maybe you even submitted your package to Bioconductor. At least, you met and interacted with longtime Bioconductor members such as Martin Morgan and Benilton Carvalho. Since then, you might have worked on other R packages, shiny applications, etc. You might have also answered questions on the Bioconductor support website, reported bugs or opened issues in existing packages, joined the developers mailing list, joined the Bioconductor Slack workspace, etc. Ultimately, you could potentially present a poster or give a talk about the package you worked on last summer, but you’ll need to coordinate with your team members and/or lab principal investigator.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="benefitting-from-bioc2019" class="section level4"&gt;
&lt;h4&gt;Benefitting from BioC2019&lt;/h4&gt;
&lt;p&gt;As for what you hope to get out of the conference, well, we will remind you that BioC has different workshops that can help you advance your R skills and knowledge. Furthermore, there’ll be scientific talks from excellent bioinformatics researchers. Then, once you return from the conference, you can spread the knowledge you acquired in a variety of ways: implementing it on your work, teaching at your local university or research institute, participating in the Bioconductor community (Slack, the support website, contributing an R package, etc), presenting at a local R meetup, and participating in other forums. You can also benefit personally from attending the conference by networking with other users and developers that will attend it. From it, you might start new collaborations, find about graduate school programs, find potential postdoc advisors, among other opportunities. Hey, you might help us out with future CDSBMexico events!&lt;/p&gt;
&lt;/div&gt;
&lt;div id="cdsbmexico-hands-on-help" class="section level4"&gt;
&lt;h4&gt;CDSBMexico hands on help&lt;/h4&gt;
&lt;p&gt;If you need help directly, please get in touch with us via the CDSBMexico Slack workspace. If you either don’t remember the Slack workspace or you couldn’t attend CDSBMexico 2018, please get in touch with us via Twitter at &lt;a href="https://twitter.com/CDSBMexico"&gt;twitter.com/CDSBMexico&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We understand that not many will be able to attend BioC2019, so keep an eye open for CDSBMexico 2019! We are hoping to announce our plans soon.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;Using &lt;a href="https://www.google.com/flights"&gt;Google flights&lt;/a&gt; for the search.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>The power of tapping into your community for support</title>
      <link>https://lcolladotor.github.io/2019/02/03/the-power-of-tapping-into-your-community-for-support/</link>
      <pubDate>Sun, 03 Feb 2019 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2019/02/03/the-power-of-tapping-into-your-community-for-support/</guid>
      <description>


&lt;p&gt;This week the owner of my favorite Mexican restaurant in Baltimore, Rosalyn Vera, got death and arson&lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; threats. I could have been a bystander, but I tapped into my network and asked for help and she has received it. It’s been great to see the power of the community in action.&lt;/p&gt;
&lt;div id="the-backstory" class="section level3"&gt;
&lt;h3&gt;The backstory&lt;/h3&gt;
&lt;p&gt;So, I use &lt;a href="https://cran.r-project.org/"&gt;R&lt;/a&gt; and &lt;a href="https://support.bioconductor.org/"&gt;Bioconductor&lt;/a&gt; for work and I get to witness the warmth and mostly friendly &lt;a href="https://twitter.com/search?q=%23rstats"&gt;#rstats&lt;/a&gt; community where daily people ask for help and get it. Born from the R community is the &lt;a href="https://rladies.org/"&gt;RLadies&lt;/a&gt; organization that provides a platform for non-cis gendered males to share their knowledge and increase their visibility. In one of the &lt;a href="https://rladies-baltimore.github.io/"&gt;RLadies Baltimore&lt;/a&gt; events, I met a Data Journalist from the Baltimore Sun, &lt;a href="https://twitter.com/christinezhang"&gt;Christine Zhang&lt;/a&gt; who gave an &lt;a href="https://github.com/rladies/meetup-presentations_baltimore/blob/master/20181114_industry.md"&gt;excellent talk&lt;/a&gt; on how she uses R for her job: for example, election maps.&lt;/p&gt;
&lt;p&gt;As you know, I’m Mexican. To get over &lt;a href="http://lcolladotor.github.io/2018/06/11/mindfulness/#.XFdVC1xKiUk"&gt;my homesickness&lt;/a&gt; these past months I’ve been a frequent customer at a small Mexican restaurant in Baltimore called &lt;a href="https://www.instagram.com/cocinaluchadoras/"&gt;Cocina Luchadoras&lt;/a&gt;. I also frequent live shows from a band called &lt;a href="https://www.facebook.com/somebadhombres/"&gt;Bad Hombres&lt;/a&gt; that plays covers of Spanish rock songs from the 80s and 90s, go to Latin karaoke nights organized by &lt;a href="https://www.instagram.com/rootsraicesfest/"&gt;Root Raíces&lt;/a&gt;, among other things that bring me joy&lt;a href="#fn2" class="footnote-ref" id="fnref2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="initial-threats-and-reactions" class="section level3"&gt;
&lt;h3&gt;Initial threats and reactions&lt;/h3&gt;
&lt;p&gt;To warm up this week, I went to get some &lt;a href="https://www.google.com/search?q=atole+de+arroz"&gt;&lt;em&gt;atole de arroz&lt;/em&gt;&lt;/a&gt; at Cocina Luchadoras twice. The second time was just about an hour after Rosalyn received death and arson threats on Thursday. I could tell that she was scared but she was also incredibly brave. The threats were because she has placed a sign on her restaurant to support the &lt;em&gt;Donald&lt;/em&gt; fundraising campaign from &lt;a href="https://www.ilegalmezcal.com/donald/"&gt;Ilegal Mezcal&lt;/a&gt; that says “Donald, eres un pendejo” (Donald, you are stupid) . The person making the threats mentioned that immigrants are taking away jobs from US citizens. As a Hispanic customer, I got scared as well and became suspicious of whoever entered the restaurant.&lt;/p&gt;
&lt;p&gt;So, what does one do? How would you react to a hate crime threat? Or well, any threat? Call the police. Do you comply with the request to take down the poster? Hire security? Close and move to a different location? I feel like situations like this put can you at odds between following your ideals and being pragmatic. In this case, Rosalyn had to decide whether to stand by her free speech rights or not.&lt;/p&gt;
&lt;p&gt;In the United States of America you expect that the police and the institutions that protect the law will help you. Unlike Guatemala in the 1960s when the police/military tried to silence/kill my grandfather due to the health clinic he and &lt;a href="http://lcolladotor.github.io/2018/07/30/harassment-diversity-in-science-and-inspiration-from-my-grandmother/#.XFdafFxKiUk"&gt;my grandmother&lt;/a&gt; had where they would treat people from many backgrounds: he closed down, moved to Mexico, and had to be pragmatic and abandon some of his ideals. Or unlike Mexico in recent times, where there’s widespread insecurity due to the war on drugs, corruption, etc. For example, my father’s house was broken into, he got tied down and was punched until a few ribs broke: he called a Mexican military veteran for help.&lt;/p&gt;
&lt;p&gt;So, here in the US, you call the police and wait for them to do their job. But you can also decide to ask for help from your community. So I offered Rosalyn my time and network, and she accepted. This was tricky as I told her, because I didn’t want to either give a platform for the person making the threats or to attract other people like him.&lt;/p&gt;
&lt;p&gt;I asked Christine for help on whom to talk to at the Baltimore Sun, and she responded immediately. After some emails and knocking on a couple more doors, the &lt;a href="https://www.baltimoresun.com/news/maryland/baltimore-city/bs-md-cocina-luchadoras-20190201-story.html"&gt;Baltimore Sun published an article&lt;/a&gt; by &lt;a href="https://twitter.com/LillianEReed"&gt;Lillian E Reed&lt;/a&gt; with contributions by &lt;a href="https://twitter.com/_ThaliaJuarez"&gt;Thalia Juarez&lt;/a&gt; and &lt;a href="https://twitter.com/cdrentz"&gt;Catherine Rentz&lt;/a&gt;. Catherine has published some great work on &lt;a href="https://www.baltimoresun.com/news/maryland/investigations/bs-md-two-years-of-hate-incidents-20180813-story.html"&gt;hate crimes in Maryland&lt;/a&gt; and they’ve made an &lt;a href="https://news.baltimoresun.com/maryland-hate-crimes/"&gt;interactive map&lt;/a&gt; to browse the data. From there, the word kept spreading and many started to show their support: &lt;a href="https://www.reddit.com/r/baltimore/comments/ame4se/man_allegedly_threatened_to_kill_baltimore/"&gt;Baltimore Reddit&lt;/a&gt;, local &lt;a href="https://twitter.com/zeke_cohen/status/1091798436628832256"&gt;politicians&lt;/a&gt;, and many regular Cocina Luchadores customers.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="the-threats-continue" class="section level3"&gt;
&lt;h3&gt;The threats continue&lt;/h3&gt;
&lt;p&gt;I went again on Saturday and the place was packed and things seemed to be trending on the right direction. The police had called and were supposed to meet with Rosalyn later. Instead, they didn’t show up and the person making the threats called again…&lt;/p&gt;
&lt;p&gt;From an allocation of limited resources, I understand that the Baltimore Police has many things to do and many people to keep safe. Catherine Rentz’ &lt;a href="https://www.baltimoresun.com/news/maryland/investigations/bs-md-two-years-of-hate-incidents-20180813-story.html"&gt;story&lt;/a&gt; on hate crimes in Maryland from 2016 and 2017 highlights that this type of crime is likely underreported and that there are very few convictions. Maybe this went through the mind of the policeman who did the report on Thursday: “threat phone call? No witnesses? Ok, not enough evidence… move on”.&lt;/p&gt;
&lt;p&gt;I had a very hard time processing the no-show by the police though. Talking to others, we discussed how the law enforcement system is overworked (they are &lt;a href="https://www.wmar2news.com/homepage-showcase/baltimore-police-to-switch-to-new-patrol-schedule"&gt;reducing the police officer shift length&lt;/a&gt; soon) and swamped. But hey, there’s a supportive community. So I asked for help again. “Who knows someone at the Baltimore Police?” That was the question and soon enough one friend replied, and then emailed a lieutenant. By the next morning (Sunday/today), the Baltimore Police chief was looking to call Rosalyn.&lt;/p&gt;
&lt;p&gt;In the meantime, we let the Baltimore Sun know that the person had made the threat again. They quickly posted a &lt;a href="https://www.baltimoresun.com/news/maryland/baltimore-city/bs-md-ci-threat-over-anti-trump-poster-spurs-business-20190202-story.html"&gt;new story&lt;/a&gt; where they report how Rosalyn first made sure to secure more witnesses this time and secondly told the person making the threats that she has only love for him and thanked him for the phone call. I think that she was really smart with both and she does mean it. In a chat with friends, one of them suggested bringing tacos as a peace offering to the person making the threats.&lt;/p&gt;
&lt;p&gt;This second story by the Baltimore Sun got shared by Newsweek in their &lt;a href="https://www.newsweek.com/restaurant-owner-allegedly-receives-death-threats-over-anti-trump-banner-1315971"&gt;own story&lt;/a&gt;. A friend who is in Mexico right now told me he saw it on the top Apple News stories. Today, there was a security guard at Cocina Luchadoras, who smiled and opened the door for anyone coming in. So spreading the word, asking for help, knocking on doors, and the power of the community is very strong. Strong enough to get the police to pay more attention to Rosalyn’s report.&lt;/p&gt;
&lt;p&gt;This is incredible! Typically, a &lt;a href="https://twitter.com/search?q=%23rstats"&gt;#rstats&lt;/a&gt;/&lt;a href="https://twitter.com/search?q=%23RLadies"&gt;#RLadies&lt;/a&gt; request for help ends up with a friendly reply pointing to an existing R package or a suggestion on what to do. This time, we gamed the system. So yes, &lt;a href="http://lcolladotor.github.io/2018/11/12/asking-for-help-is-challenging-but-is-typically-worth-it/#.XFdT41xKiUk"&gt;asking for help is challenging but can be worth it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And surely everyone who’s involved in helping in this story can use it to request the help they need. For example, the Baltimore Sun’s hate crime reporting team can ask for more space and resources for their stories. Or the Baltimore and Maryland Police can ask for help from whoever controls their budget&lt;a href="#fn3" class="footnote-ref" id="fnref3"&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;, so they can get more resources to fight the increase in hate crimes, improve the reporting of hate crime threats, and reach out ot the Hispanic community in Baltimore. If they need a letter of support, they can get one from me if they want it.&lt;/p&gt;
&lt;p&gt;For the rest of us, it’s a chance to try to live without fear. Fear is a powerful feeling and I’ve seen it in action. I experienced it first hand when everyone I knew stopped going out in Cuernavaca during an intense period of the war on drugs when military were deployed to the streets. It’s also a chance for us Hispanics in Baltimore to feel like we belong here, which is the same challenge many women and non-cis males have and hence the reason why &lt;a href="https://rladies.org/"&gt;RLadies&lt;/a&gt; is awesome.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="and-drop-by-to-enjoy-the-awesome-food-and-women-art" class="section level3"&gt;
&lt;h3&gt;And drop by to enjoy the awesome food and women art!&lt;/h3&gt;
&lt;p&gt;If you drop by in Baltimore, you should go visit Cocina Luchadoras! Their food is deliciously awesome. It starts with handmade tortillas. You use tortillas for many things including tacos. A good tortilla can boost the flavor in a taco, and the ones at Cocina Luchadoras are outstanding! Then there’s the filling which can range from pork (&lt;em&gt;al pastor&lt;/em&gt;) to different types of vegetables. And while you wait, you get to experience a women’s empowerment museum with all the arts and crafts they have there about how women are really strong! You also get to meet many interesting patrons and make new friends if you wish to do so. Even if you are not in Baltimore, you should follow them on &lt;a href="https://www.instagram.com/cocinaluchadoras/"&gt;Instagram&lt;/a&gt; or &lt;a href="https://www.facebook.com/cocinaluchadoras/"&gt;Facebook&lt;/a&gt; for great art and food pictures (or &lt;a href="https://mobile.twitter.com/cocinaluchadora"&gt;Twitter&lt;/a&gt;, but they don’t post images there, just links to Instagram).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2019-02-03-the-power-of-tapping-into-your-community-for-support_files/2019-02-02%2016.00.13.jpg" width="600" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;Thanks &lt;a href="https://twitter.com/EpiRen/status/1091844480112775168"&gt;EpiRen&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Thanks Baltimore Sun staff and the Baltimore Police!&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;Thanks to the &lt;a href="https://twitter.com/baltimoresun?ref_src=twsrc%5Etfw"&gt;@baltimoresun&lt;/a&gt; for getting the word out about this hate crime threat against &lt;a href="https://twitter.com/CocinaLuchadora?ref_src=twsrc%5Etfw"&gt;@CocinaLuchadora&lt;/a&gt;! &#127474;&#127485;&#127482;&#127480;&lt;a href="https://t.co/38oY5XDAK8"&gt;https://t.co/38oY5XDAK8&lt;/a&gt;&lt;br&gt;&lt;br&gt;By &lt;a href="https://twitter.com/LillianEReed?ref_src=twsrc%5Etfw"&gt;@LillianEReed&lt;/a&gt; with contributions by &lt;a href="https://twitter.com/_ThaliaJuarez?ref_src=twsrc%5Etfw"&gt;@_ThaliaJuarez&lt;/a&gt; and &lt;a href="https://twitter.com/cdrentz?ref_src=twsrc%5Etfw"&gt;@cdrentz&lt;/a&gt;&lt;br&gt;&lt;br&gt;Thanks &lt;a href="https://twitter.com/christinezhang?ref_src=twsrc%5Etfw"&gt;@christinezhang&lt;/a&gt;!&lt;br&gt;&lt;br&gt;Thanks again &lt;a href="https://twitter.com/BaltimorePolice?ref_src=twsrc%5Etfw"&gt;@BaltimorePolice&lt;/a&gt; for investigating! &lt;a href="https://t.co/rvXlHZBWj0"&gt;https://t.co/rvXlHZBWj0&lt;/a&gt;&lt;/p&gt;&amp;mdash; &#127474;&#127485; Leonardo Collado-Torres (@lcolladotor) &lt;a href="https://twitter.com/lcolladotor/status/1091466386868748288?ref_src=twsrc%5Etfw"&gt;February 1, 2019&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;Threats to burn down here business.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn2"&gt;&lt;p&gt;Yes, thanks to Marie Kondo my clothes are neatly organized.&lt;a href="#fnref2" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn3"&gt;&lt;p&gt;The city council? The state congress? Mayor? Governor? I don’t know.&lt;a href="#fnref3" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Asking for help is challenging but is typically worth it</title>
      <link>https://lcolladotor.github.io/2018/11/12/asking-for-help-is-challenging-but-is-typically-worth-it/</link>
      <pubDate>Mon, 12 Nov 2018 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2018/11/12/asking-for-help-is-challenging-but-is-typically-worth-it/</guid>
      <description>


&lt;p&gt;Recently I’ve been thinking on the subject of asking for help. In short, it’s hard to ask for help. It involves admitting to yourself that you can’t solve the problem alone, opening yourself up, hoping that another person will understand you and guide you in the right direction. Thus it can be painful if your request for help is misunderstood, met with criticism or ignored. Regardless of these obstacles, I think that the potential rewards make it worth it.&lt;/p&gt;
&lt;p&gt;I mostly encounter the situation of asking for help in two scenarios. One is about work, mostly R programming. The other one is about personal issues. There are plenty more, like spelling, cultural references, word definitions and academic citations.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;Thank you!&lt;br&gt;&lt;br&gt;I’m always learning more English! Last night it was “yule” via &lt;a href="https://twitter.com/BenLangmead?ref_src=twsrc%5Etfw"&gt;@BenLangmead&lt;/a&gt; and others&lt;a href="https://twitter.com/hashtag/DeepLearning?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#DeepLearning&lt;/a&gt;? &#128579; &lt;a href="https://t.co/kX9JTnSBAn"&gt;pic.twitter.com/kX9JTnSBAn&lt;/a&gt;&lt;/p&gt;&amp;mdash; &#127474;&#127485; Leonardo Collado-Torres (@lcolladotor) &lt;a href="https://twitter.com/lcolladotor/status/1061281934666543106?ref_src=twsrc%5Etfw"&gt;November 10, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;PCR was invented by Kary Mullis in 1984. He won the Nobel Prize in chemistry for it in 1993. real-time PCR (qPCR) was developed about ten years later and originates with this paper: &lt;a href="https://t.co/gpIOr3s7PG"&gt;https://t.co/gpIOr3s7PG&lt;/a&gt;&lt;/p&gt;&amp;mdash; Lior Pachter (@lpachter) &lt;a href="https://twitter.com/lpachter/status/1061288301825413121?ref_src=twsrc%5Etfw"&gt;November 10, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;div id="programming-context" class="section level3"&gt;
&lt;h3&gt;Programming context&lt;/h3&gt;
&lt;p&gt;In the context of R and Bioconductor, and programming in general, it can be scary to ask for help in public forums such as a GitHub issue page, the &lt;a href="https://support.bioconductor.org/"&gt;Bioconductor Support website&lt;/a&gt;, the &lt;a href="https://community.rstudio.com/"&gt;RStudio Community website&lt;/a&gt;, etc. That’s because you might get a very short reply that can seem unhelpful if it involves terms you are not familiar with (though it might be a precise reply). There are also issues with online communities that I won’t get into. Over the years, I’ve tried to help those who will potentially answer my questions by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Double checking the documentation&lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Providing information to reproduce my problem: sometimes doing so makes me realize my mistake.&lt;/li&gt;
&lt;li&gt;Trying for a while (&amp;gt;20 min?) to solve the problem by myself which involves googling quite a bit. However, sometimes I’m not aware of the correct search terms.&lt;/li&gt;
&lt;li&gt;Avoiding sounding like I’m demanding help, asking for help immediately or requesting the same person for help lots of times in a short time window&lt;a href="#fn2" class="footnote-ref" id="fnref2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I’ve also tried to highlight my main question, though this can be hard when you are not sure what’s wrong.&lt;/p&gt;
&lt;p&gt;When I get a short reply that seems unfriendly, I try to be appreciative of the time this other person took to reply to me. The terms they use in their reply can be important clues on what to search on Google next.&lt;/p&gt;
&lt;p&gt;Language matters and I hate it when others make me feel dumb instead of guiding me to the right documentation/website, while others might dislike receiving tons of loose ended questions. Ultimately, this process requires patience on both sides and I highly value efforts by others that try to make it easier for both the person asking for help and the person responding. See for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://resources.rstudio.com/webinars/help-me-help-you-creating-reproducible-examples-jenny-bryan"&gt;Help me help you. Creating reproducible examples - Jenny Bryan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.tidyverse.org/help/"&gt;Get help – tidyverse version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.r-project.org/help.html"&gt;Getting Help with R&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://lcolladotor.github.io/2017/03/06/How-to-ask-for-help-for-Bioconductor-packages/#.W-o-4-hKiUk"&gt;How to ask for help for Bioconductor packages&lt;/a&gt; (which I wrote)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are some my recent requests for help with replies by others:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ENCODE-DCC/atac-seq-pipeline/issues/45"&gt;ENCODE-DCC ATAC-seq pipeline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stat.ethz.ch/pipermail/bioc-devel/2018-November/014291.html"&gt;bioc-devel macOS Mojave building from source issue&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/s-u/rJava/issues/165"&gt;rJava with R 3.6 and macOS Mojave&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stat.ethz.ch/pipermail/bioc-devel/2018-November/014316.html"&gt;bioc-devel NAMESPACE issue&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I still make mistakes by not been clear enough sometimes, that’s why I typically say: “please let me know if you need more information” or something along those lines.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="personal-context" class="section level3"&gt;
&lt;h3&gt;Personal context&lt;/h3&gt;
&lt;p&gt;Asking for help in a programming context is hard because you are leaving your questions public (most of the time): that way you can reach multiple people that can potentially answer your question, and the people answering the question want them to be public with the hope that the answers will help others. Asking for help in personal context is different, since it tends to be in private.&lt;/p&gt;
&lt;p&gt;This might just be me, but I’ve had several situations in my life where I’ve opened up and asked a group of individuals for help. For example, I recently started a conversation with several friends about ways to limit alcohol consumption. It was scary at first to bring this topic up, but the friends I talked to about this subject had also been thinking about it and it lead to some great conversations. I have other examples listed in my &lt;a href="http://lcolladotor.github.io/misc/timeline.pdf"&gt;timeline&lt;/a&gt;&lt;a href="#fn3" class="footnote-ref" id="fnref3"&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt; on occasions where others have helped me with career advice.&lt;/p&gt;
&lt;p&gt;One story that I want to share now is about grad school. I was a first year student and I had an accident one Friday in February. I knew immediately that I needed a surgery to repair my shoulder. I already had experience with orthopedic surgeons in Mexico whose quality was widely variable: it took my family years to find one we could trust for my first surgery. In my first year at a new city and country, I didn’t have my family’s network support. So I reached out via email to the faculty that I had met in person with the hopes that one of them knew a good orthopedic surgeon. This was a personal help request, so I didn’t use the Department wide mailing list. The response was excellent, and not only did some faculty help me find an excellent orthopedic surgeon, but also get an appointment with him for Monday. After my appointment on Monday, I replied to the same set of faculty thanking them for their support.&lt;/p&gt;
&lt;p&gt;Later that week, one faculty dropped by my office to reprimand me for emailing all the faculty. I assume that this faculty thought I had emailed the whole Department. This situation shocked me and made me feel awful. My mind started racing and I wanted to clarify the situation with the faculty member. It was taking a lot of my internal courage to approach this faculty member and a second faculty member noticed that I wasn’t well. This second faculty member listened to me&lt;a href="#fn4" class="footnote-ref" id="fnref4"&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt; and later invited me to have dinner with his family.&lt;/p&gt;
&lt;p&gt;A Department staff member also helped me during these weeks and pointed me to the &lt;a href="http://jhsap.org/"&gt;Johns Hopkins Student Assistance Program&lt;/a&gt; where I got help (2 or 3 sessions). Getting professional help was great; some things I remember were that they explained to me that I was mourning since injuring my arm was like losing a piece of me (given my injury history) and they also explained potential cultural differences that lead to the situation with the first faculty member. Once I calmed down, I did email the first faculty to clarify what had happened.&lt;/p&gt;
&lt;p&gt;This was a rough situation and probably my toughest moment in grad school, or at least among the top ones. I also value it as a learning moment and it fueled me and continues to do so in some ways. For example, it motivated me to organize Cultural Mixer events (see the &lt;a href="http://lcolladotor.github.io/2013/11/20/StudentMixer3/#.W-pKO-hKiUk"&gt;ad for the third event&lt;/a&gt;), with the hope that they would help us understand each other better&lt;a href="#fn5" class="footnote-ref" id="fnref5"&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/a&gt;, as well as creating the Biostat Social mailing list (now defunct but replaced by a &lt;a href="http://lcolladotor.github.io/2018/06/19/using-slack-for-academic-departmental-communication/#.W-pLHehKiUk"&gt;Department Slack&lt;/a&gt;). I also think that the reactions to my request for help were overall positive. The balance for sure is positive although there was a bit of negative in the mix. I wish others would just get positive reactions with zero negative ones, but there are no guarantees.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="closing-thoughts" class="section level3"&gt;
&lt;h3&gt;Closing thoughts&lt;/h3&gt;
&lt;p&gt;With this post I’m hoping to invite others to reflect on situations that involve asking for help. I also hope that others break their internal barriers and ask for help when needed. Echoing words of others, asking for help takes courage. Given the potential rewards, I encourage you to ask for help from your family, friends and colleagues depending on the situation. Simply knowing the term(s) for what you are searching for in code or for what you are feeling (for example, &lt;a href="https://hopstat.wordpress.com/2015/10/14/dealing-with-imposter-syndrome-in-graduate-school/"&gt;imposter syndrome&lt;/a&gt;) can help a lot. Also being directed to professionals, like &lt;a href="http://jhsap.org/"&gt;JHSAP&lt;/a&gt; in my shoulder story, and the proper documentation manual, like the &lt;a href="https://cran.r-project.org/doc/manuals/r-devel/R-admin.html"&gt;R admin devel manual&lt;/a&gt;, can propel you in the right direction.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-11-12-asking-for-help-is-challenging-but-is-typically-worth-it_files/2018-11-09%2008.19.53.jpg" width="500" /&gt;&lt;/p&gt;
&lt;p&gt;Best of luck walking the uphill path of asking for help!&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;Sometimes I simply don’t understand the documentation, or I’m not aware of the best documentation for my problem.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn2"&gt;&lt;p&gt;Doing any of these typically won’t get you anywhere. The person(s) responding to your help requests is(are) also busy!&lt;a href="#fnref2" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn3"&gt;&lt;p&gt;Explained in more detail in &lt;a href="http://lcolladotor.github.io/2018/11/06/a-knot-of-threads-from-cshl-to-lcg-unam-to-aldo-barrientos-to-diversity-scholarship-opportunities/#.W-pFRuhKiUk"&gt;this post&lt;/a&gt;.&lt;a href="#fnref3" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn4"&gt;&lt;p&gt;Or tried to because I couldn’t contain the tears.&lt;a href="#fnref4" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn5"&gt;&lt;p&gt;Among other great reasons, I’ll write a blog post about them sometime soon.&lt;a href="#fnref5" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>A knot of threads: from CSHL to LCG-UNAM to Aldo Barrientos to diversity scholarship opportunities</title>
      <link>https://lcolladotor.github.io/2018/11/06/a-knot-of-threads-from-cshl-to-lcg-unam-to-aldo-barrientos-to-diversity-scholarship-opportunities/</link>
      <pubDate>Tue, 06 Nov 2018 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2018/11/06/a-knot-of-threads-from-cshl-to-lcg-unam-to-aldo-barrientos-to-diversity-scholarship-opportunities/</guid>
      <description>


&lt;p&gt;I can’t tell you how many times I’ve started to write this post in my mind since May 2018. Today I’m finally typing it on the computer. This will be a rather long post that ties in several threads. I’ll talk about Cold Spring Harbor’s Biology of Genomes conference and its relationship to my undergrad in Mexico. I’ll also introduce you to Aldo Barrientos (1987-2011) who was was my undergrad classmate. Then I’ll tell you about myself and how regardless of your situation, privileged or not, you should ask for help and get to know the people around you. Finally, I want to highlight that many other Mexican researchers are doing great work and would love to be invited to talk about their work. Or simply, the opportunity to compete for scholarships and grants.&lt;/p&gt;
&lt;div id="cshl-and-lcg-unam" class="section level3"&gt;
&lt;h3&gt;CSHL and LCG-UNAM&lt;/h3&gt;
&lt;p&gt;This past May I was selected to give a talk at &lt;a href="http://meetings.cshl.edu/Genome18"&gt;Biology of Genomes 2018&lt;/a&gt; (BOG) at &lt;a href="https://www.cshl.edu/"&gt;Cold Spring Harbor Laboratory&lt;/a&gt; (CSHL). This was my first time being there and I had plenty of time to reflect before my talk&lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;. For me, attending BOG was like a dream come true so I was blown away when I was selected to present at BOG.&lt;/p&gt;
&lt;p&gt;I first heard about the BOG conference when I was studying my undergrad in Mexico at &lt;a href="http://www.lcg.unam.mx/es/about"&gt;LCG-UNAM&lt;/a&gt;. My class has a history with the conference too. Basically, part of the class was meeting to discuss what optional courses to create for our fourth year, and well, some miscommunication happened among us. This created a rift in the group and was one of my motivations for focusing on communication as well as giving back. The former lead to me being elected as class president and the latter lead to me volunteering to teach R courses later on my undergrad&lt;a href="#fn2" class="footnote-ref" id="fnref2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As BOG18 went underway, some of my fellow junior presenters started their talks by mentioning why CSHL was special to them. Following their cue, I wrote some notes just before my presentation.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-11-06-a-knot-of-threads-from-cshl-to-lcg-unam-to-aldo-barrientos-to-diversity-scholarship-opportunities_files/2018-11-06%2021.21.51.jpg" width="400" /&gt;&lt;/p&gt;
&lt;p&gt;I really wanted to give a shoutout to all my LCG-UNAM classmates. I also thought of Aldo Barrientos and how it could have been him at BOG. This got me nervous, but I really wanted to do it. I also wanted this to be short and professional. You can see how it turned out for yourself&lt;a href="#fn3" class="footnote-ref" id="fnref3"&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/SRGkibDQgIc" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;div id="aldo-barrientos" class="section level3"&gt;
&lt;h3&gt;Aldo Barrientos&lt;/h3&gt;
&lt;p&gt;It’s time for me to tell you more about Aldo Barrientos, my LCG-UNAM classmate. I won’t attempt to tell you his whole story since I think that others could write a much more detailed one that myself. I hope they do and if they are made public, I’ll share them from this blog post.&lt;/p&gt;
&lt;p&gt;Aldo came from a low income family in Mexico: I believe that his father was a construction worker&lt;a href="#fn4" class="footnote-ref" id="fnref4"&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt;. He was smart and advanced through school successfully. He took the entry exam for LCG-UNAM like many people did in 2005. Eventually only around 10-15 percent of the applicants were admitted to this undergrad program. The school was free (25 Mexican cents per year), but it involved relocating to a new city. UNAM has some scholarship programs, but they are not enough. Aldo found a way like he always did. For example, he sold candy and juice to his classmates during lunch break. For reasons that I don’t remember, Aldo didn’t complete his undergrad in 2009 but was about to in 2011.&lt;/p&gt;
&lt;p&gt;I remember Aldo as a very joyful person who was always smiling and joking with the rest of us. He had the &lt;em&gt;best&lt;/em&gt; dancing skills of anyone at my undergrad. He proved them time and time again, for example winning a dance contest at a party in my house and wearing the Pumas UNAM puma costume in our graduation party and dancing with everyone.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-11-06-a-knot-of-threads-from-cshl-to-lcg-unam-to-aldo-barrientos-to-diversity-scholarship-opportunities_files/goyo.jpg" width="400" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sk.pinterest.com/pin/170714642102216698/"&gt;Image source&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;His path was cut abruptly in 2011. He was stabbed multiple times while waiting for someone. We all knew about this. It’s still unclear to me how everything happened in the following months. But I remember being told that he tried seeing a doctor before going back to his home. One day in 2011, we all started to learn about how grave his situation had turned. I didn’t know what to do&lt;a href="#fn5" class="footnote-ref" id="fnref5"&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/a&gt; and I talked to David Romero, director (dean?) of CCG-UNAM back then. He guided me and others and we were trying to coordinate ways to help Aldo, but by the time we got to his home it was too late. I regret that we weren’t able to help Aldo earlier.&lt;/p&gt;
&lt;p&gt;I still have some emails from 2011 when we were talking about doing something to honour him. We never did as a class, though LCG-UNAM did acknowledge him. Maybe one day we will do an event to remember him.&lt;/p&gt;
&lt;p&gt;Aldo faced more challenges that myself and other classmates. Yet I believe that he would have kept solving them one by one; he would have gotten his undergrad degree and had he chosen to stay in academia, then present his research findings at conferences like BOG.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="privileged-yes-entitled-no" class="section level3"&gt;
&lt;h3&gt;Privileged yes, entitled no&lt;/h3&gt;
&lt;p&gt;Thinking about Aldo made reflect also on who has been around in my own path, who has helped me and how grateful I am to them. Undoubtedly I’ve had an easier path than others including Aldo. That is, I’ve been privileged.&lt;/p&gt;
&lt;p&gt;Still, even with my privileged position it has been a hard fought battle to get to where I am now. I think that a mistake others do is that they assume that they are entitled to something given their privilege instead of working for that thing. This can apply to visas and the like where you still &lt;a href="http://lcolladotor.github.io/2018/09/19/problems-with-an-article-from-the-baltimore-sun-covering-dr-mahoney-steel-s-immigration-issues/"&gt;have to apply for them in time&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Along my way I have hesitated many times what to do and have sought guidance from others. Also along my way, I’ve tried to get to know others in my surroundings. Now that I look back I realize that many people were at my position or in junior positions have kept working towards their career goals and advanced in them. So, if you can, get to know others and learn from them. They could be the future Full Professors with Tenure, future Senior Software Engineers or other titles you look up to.&lt;/p&gt;
&lt;p&gt;Here’s an incomplete version of my timeline (&lt;a href="https://lcolladotor.github.io/misc/timeline.pdf"&gt;PDF version&lt;/a&gt;). I think that it’s pretty hard to list everyone who has helped you along the way. For example, I’m not mentioning my Ph.D. classmates from whom I learned many things. But it will give you a more detailed picture of the amount of people that have helped me.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-11-06-a-knot-of-threads-from-cshl-to-lcg-unam-to-aldo-barrientos-to-diversity-scholarship-opportunities_files/timeline.png" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="invite-lcg-unam-alumni" class="section level3"&gt;
&lt;h3&gt;Invite LCG-UNAM alumni&lt;/h3&gt;
&lt;p&gt;Like I said at the beginning of my BOG18 talk, I’m not sure if I’m the first LCG-UNAM alumni to present at BOG but I know for sure that I won’t be the last one. That’s because I’m really proud of my classmates and all the great work they are doing. It’s also easy to go beyond my class to other LCG-UNAM alumni and then even go beyond and extend this to Mexican researchers.&lt;/p&gt;
&lt;p&gt;Taken from my timeline, here are a few that I mentioned there (links are to their Twitter profiles):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/mariaGTAC"&gt;Maria Gutierrez-Arcelus&lt;/a&gt;: LCG-UNAM; Ph.D. at University of Geneva Medical School; Postdoc Harvard University&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/mgschiavon"&gt;Mariana Gómez-Schiavon&lt;/a&gt;: Ph.D. Duke University; postdoc UCSF&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/sur_hp"&gt;Sur Herrera-Paredes&lt;/a&gt;: Ph.D. University of North Carolina; postdoc Standford&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/malacopa_genome"&gt;Fernando Rabanal Mor&lt;/a&gt;: Ph.D. Gregor Mendel Institute; postdoc MPI for Developmental Biology&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/caralvar88"&gt;Carlos Vargas&lt;/a&gt;: Winter Genomics, MS and Ph.D. Universitat de Valencia&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/RanitaRed"&gt;Mariana Reyes&lt;/a&gt;: MS and Ph.D. Universitat de Valencia&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/kazenojigoku"&gt;Atahualpa Castillo&lt;/a&gt;: Ph.D. and postdoc University of Bath&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jimena Mónzon (Ph.D. Univeristy of Bath; Oxford’s Parkinson Disease Centre Career Development Fellow)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/licloona1487"&gt;Alejandra Zayas&lt;/a&gt;: Ph.D. IBT-UNAM&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/AV_GonzalezS"&gt;Adriana Verenisse Gonzalez Sandoval&lt;/a&gt;: Ph.D. University of Bath; postdoc Stanford&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/daniela_oaks"&gt;Daniela Robles&lt;/a&gt;: Ph.D. Wellcome Trust Sanger Institute; Faculty LIIGH-UNAM&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/lbolanos68"&gt;Luis Bolaños&lt;/a&gt;: Ph.D. CCG-UNAM; postdoc Oregon State University&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rodrigo García: MS and Ph.D. Universitat de Valencia&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Renan Escalante-Chong: Ph.D. Harvard postdoc MIT; Immuneering Corporation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gianella Garcia Hughes: Ph.D. UT Southwestern&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/garbanyo"&gt;Adrian Cantú&lt;/a&gt;: LCG-UNAM; MS IBT-UNAM; INMEGEN; Ph.D. San Diego State University&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/yinayiyi"&gt;Ana Georgina (Yina) Cobian&lt;/a&gt;: MS IBT-UNAM, Ph.D. San Diego State University&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/fa7gen"&gt;Fernando Riveros-McKay Aguilera&lt;/a&gt;: Winter Genomics, Ph.D. Wellcome Trust Sanger Institute&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/tatinhawk"&gt;Martín Del Castillo Velasco Herrera&lt;/a&gt;: Winter Genomics, Ph.D. Wellcome Trust Sanger Institute&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/AleMedinaRivera"&gt;Alejandra Medina-Rivera&lt;/a&gt;: LCG-UNAM; Ph.D. CCG-UNAM; postdoc SickKids Toronto; Faculty LIIGH-UNAM&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/areyesq"&gt;Alejandro Reyes&lt;/a&gt;: LCG-UNAM; Ph.D. EMBL; postdoc Harvard&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Víctor Moreno Mayar: LCG-UNAM; Ph.D. and postdoc Natural History Museum of Denmark&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;José Reyes: LCG-UNAM, Ph.D. Harvard&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For the full list of LCG-UNAM alumni, check &lt;a href="http://www.lcg.unam.mx/es/titulados" class="uri"&gt;http://www.lcg.unam.mx/es/titulados&lt;/a&gt;. There are 257 listed as of October 25, 2018.&lt;/p&gt;
&lt;p&gt;Everyone has their own story of breaking barriers and overcoming challenges. All of them would love the opportunity to present their work and to compete for funds to travel to conferences and do so.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;It is and for example Mexican grants cannot be used for paying memberships so we cannot easily get the discounts.&lt;/p&gt;&amp;mdash; Alejandra Medina-Rivera (@AleMedinaRivera) &lt;a href="https://twitter.com/AleMedinaRivera/status/1052349309818232832?ref_src=twsrc%5Etfw"&gt;October 17, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;To close off, here are some inspiring or thought provoking tweets:&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;&amp;quot;Along with a healthy dose of luck, the key attributes needed to produce a worthy PhD thesis are a readiness to accept failure; resilience; persistence; ...and a willingness to commit to very hard work — together with curiosity and a passion for research.&amp;quot; &lt;a href="https://t.co/o62DODM3iZ"&gt;https://t.co/o62DODM3iZ&lt;/a&gt;&lt;/p&gt;&amp;mdash; Mariana Gómez-Schiavon (@mgschiavon) &lt;a href="https://twitter.com/mgschiavon/status/1056571008662949888?ref_src=twsrc%5Etfw"&gt;October 28, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;When you&amp;#39;re early-stage in your career, reading stories of people who have been successful is invaluable. &lt;br&gt;&lt;br&gt;My &lt;a href="https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstats&lt;/a&gt; hero is &lt;a href="https://twitter.com/JennyBryan?ref_src=twsrc%5Etfw"&gt;@JennyBryan&lt;/a&gt;, and she&amp;#39;s shared her story in 2 interviews:&lt;br&gt;-&lt;a href="https://twitter.com/rOpenSci?ref_src=twsrc%5Etfw"&gt;@rOpenSci&lt;/a&gt; profile by &lt;a href="https://twitter.com/kellrstats?ref_src=twsrc%5Etfw"&gt;@kellrstats&lt;/a&gt;: &lt;a href="https://t.co/bz9Jj4UJqG"&gt;https://t.co/bz9Jj4UJqG&lt;/a&gt; &lt;br&gt;-&lt;a href="https://twitter.com/statschat?ref_src=twsrc%5Etfw"&gt;@statschat&lt;/a&gt;: &lt;a href="https://t.co/UFWfgIg2qa"&gt;https://t.co/UFWfgIg2qa&lt;/a&gt;&lt;/p&gt;&amp;mdash; We are R-Ladies (@WeAreRLadies) &lt;a href="https://twitter.com/WeAreRLadies/status/1055124381876260865?ref_src=twsrc%5Etfw"&gt;October 24, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;I was told by a PhD thesis committee member that if I returned to Mexico after a postdoc I would &amp;quot;fade into mediocrity&amp;quot;. However, I did return to my home country, started my own lab, and are now well funded to investigate the genetics and genomics of cancer in Mexican patients. &lt;a href="https://t.co/9inVPvYkPj"&gt;https://t.co/9inVPvYkPj&lt;/a&gt;&lt;/p&gt;&amp;mdash; Daniela Robles (@daniela_oaks) &lt;a href="https://twitter.com/daniela_oaks/status/1019597807395770368?ref_src=twsrc%5Etfw"&gt;July 18, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;Got a bad news myself today but then I got an AWESOME one from my mom! She got a 9/10 in her chemistry class, her last class to complete her high school!!! I’m so proud of her &amp;amp; how resilient she’s been! My brother &amp;amp; I couldn’t be happier, prouder &amp;amp; dying to hug her! &lt;a href="https://twitter.com/hashtag/nevergiveup?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#nevergiveup&lt;/a&gt;&lt;/p&gt;&amp;mdash; &#127474;&#127485; Leonardo Collado-Torres (@lcolladotor) &lt;a href="https://twitter.com/lcolladotor/status/1001985730904764417?ref_src=twsrc%5Etfw"&gt;May 31, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;In Mexico, Day of the Dead was just last week (November 2nd) and Aldo’s birthday would have been a few weeks ago on October 27th. It was time to finally write this blog post. I hope that you take something positive from it.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;p&gt;Code for the dates:&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;## R code for making the dates.pdf file
## which I then imported into Adobe Illustrator for making
## the timeline.png
x &amp;lt;- paste0(1987:2018, &amp;#39;-&amp;#39;, c(paste0(&amp;#39;0&amp;#39;, 1:9), 10:12), &amp;#39;-01&amp;#39;)

plot(y = seq_len(length(x)), x = as.Date(x), las = 2, ylab = &amp;#39;&amp;#39;, xlab = &amp;#39;&amp;#39;, xaxt= &amp;#39;n&amp;#39;)
axis(1, at = as.Date(x), labels = months(as.Date(x)))


library(&amp;#39;ggplot2&amp;#39;)
library(&amp;#39;scales&amp;#39;)
df &amp;lt;- data.frame(y = 0, date = as.Date(x))


pdf(&amp;#39;dates.pdf&amp;#39;, height = 40,  useDingbats = FALSE)
ggplot(df, aes(y, date)) + 
  geom_line() + 
  scale_y_date(limits = c(as.Date(&amp;quot;1987-07-01&amp;quot;), as.Date(&amp;quot;2018-05-12&amp;quot;)), 
               breaks = date_breaks(&amp;#39;months&amp;#39;),
               date_labels = &amp;quot;%Y-%m&amp;quot;, expand=c(0,30)) +   theme(axis.text.y=element_text(angle=-180))
dev.off()&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  colorspace      1.4-1   2019-03-18 [1] CRAN (R 3.6.0)                    
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  dplyr           0.8.3   2019-07-04 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  ggplot2       * 3.2.1   2019-08-10 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  gtable          0.3.0   2019-03-25 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lazyeval        0.2.2   2019-03-15 [1] CRAN (R 3.6.0)                    
##  lifecycle       0.1.0   2019-08-01 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  munsell         0.5.0   2018-06-12 [1] CRAN (R 3.6.0)                    
##  pillar          1.4.3   2019-12-20 [1] CRAN (R 3.6.0)                    
##  pkgconfig       2.0.3   2019-09-22 [1] CRAN (R 3.6.1)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  purrr           0.3.3   2019-10-18 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  scales        * 1.1.0   2019-11-18 [1] CRAN (R 3.6.1)                    
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  tibble          2.1.3   2019-06-06 [1] CRAN (R 3.6.0)                    
##  tidyselect      0.2.5   2018-10-11 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="reactions-to-the-blog-post" class="section level3"&gt;
&lt;h3&gt;Reactions to the blog post&lt;/h3&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;My good old friend Leo sharing very interesting experiences of his path through academic life, public university system in &lt;a href="https://twitter.com/hashtag/Mexico?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#Mexico&lt;/a&gt;, and remembering a very special person who taught us a ton of life lessons. &lt;a href="https://t.co/nHAiob30jn"&gt;https://t.co/nHAiob30jn&lt;/a&gt;&lt;/p&gt;&amp;mdash; Luis Bolaños (@lbolanos68) &lt;a href="https://twitter.com/lbolanos68/status/1060038817774657536?ref_src=twsrc%5Etfw"&gt;November 7, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;I&amp;#39;m reading this with tears in my eyes and joy in my heart. I&amp;#39;m so grateful and proud of my friend Leo. I&amp;#39;m so proud of all my classmates! Love you all! Love you Aldo &amp;lt;3 &lt;a href="https://t.co/ifOK9ASPmy"&gt;https://t.co/ifOK9ASPmy&lt;/a&gt;&lt;/p&gt;&amp;mdash; Mariana ReyesPrieto. (@mreyespri) &lt;a href="https://twitter.com/mreyespri/status/1060116424415436800?ref_src=twsrc%5Etfw"&gt;November 7, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;Beautiful and inspiring!! Thanks Leo for writing this, for honoring Aldo and being the voice of many (including myself) who feel lucky and grateful for being a LCG alumni! &lt;a href="https://t.co/hDyKKThj8B"&gt;https://t.co/hDyKKThj8B&lt;/a&gt;&lt;/p&gt;&amp;mdash; paleogenomics (@paleogenomics) &lt;a href="https://twitter.com/paleogenomics/status/1060355174546505729?ref_src=twsrc%5Etfw"&gt;November 8, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;Mine was the very last one of the conference.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn2"&gt;&lt;p&gt;Which then lead to my current career. See more at my &lt;a href="https://twitter.com/fellgernon/status/1023665229882961922"&gt;keynote&lt;/a&gt; for the “Latin American R/BioConductor Developers Workshop 2018”.&lt;a href="#fnref2" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn3"&gt;&lt;p&gt;My scientific talk was about the BrainSeq Phase II project by the &lt;a href="https://www.libd.org/"&gt;Lieber Institute for Brain Development&lt;/a&gt;. It’s now available as a bioRxiv pre-print: &lt;a href="https://www.biorxiv.org/content/early/2018/09/26/426213"&gt;426213&lt;/a&gt;. It took a while to finish this project, which contributed to my delay in making this blog post.&lt;a href="#fnref3" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn4"&gt;&lt;p&gt;Previous versions of my post incorrectly said that he was a farmer.&lt;a href="#fnref4" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn5"&gt;&lt;p&gt;I believe that others asked me since I was or had been the class representative.&lt;a href="#fnref5" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Steps for writing a Twitter summary conference blog post</title>
      <link>https://lcolladotor.github.io/2018/10/23/steps-for-writing-a-twitter-summary-conference-blog-post/</link>
      <pubDate>Tue, 23 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2018/10/23/steps-for-writing-a-twitter-summary-conference-blog-post/</guid>
      <description>


&lt;p&gt;I recently wrote several blog posts with many tweets&lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; as a way of taking notes during the &lt;a href="http://www.ashg.org/2018meeting/"&gt;American Society of Human Genetics 2018 conference&lt;/a&gt;. A few friends asked me how I did this &lt;em&gt;so fast&lt;/em&gt;. The process can be summarized into the following main steps.&lt;/p&gt;
&lt;ol style="list-style-type: decimal"&gt;
&lt;li&gt;Save links of tweets you want to highlight in your post.&lt;/li&gt;
&lt;li&gt;Use a &lt;a href="https://gohugo.io/"&gt;&lt;code&gt;hugo&lt;/code&gt;&lt;/a&gt;-powered blog to obtain the code for embedding tweets easily&lt;a href="#fn2" class="footnote-ref" id="fnref2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Proofread, edit and post.&lt;/li&gt;
&lt;/ol&gt;
&lt;div id="my-steps-detailed" class="section level3"&gt;
&lt;h3&gt;My steps detailed&lt;/h3&gt;
&lt;p&gt;Here’s the actual process I used.&lt;/p&gt;
&lt;ol style="list-style-type: decimal"&gt;
&lt;li&gt;&lt;p&gt;Identify the conference Twitter hashtag. In my recent case, that was &lt;a href="https://twitter.com/search?q=%23ASHG18"&gt;ASHG18&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a Google doc or some other simple text file you can access easily from your phone and laptop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;While in a presentation, check the &lt;em&gt;latest&lt;/em&gt; tweets for the given hashtag. &lt;a href="https://twitter.com/search?f=tweets&amp;amp;vertical=default&amp;amp;q=%23ASHG18"&gt;ASGH18 example&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-10-23-steps-for-writing-a-twitter-summary-conference-blog-post_files/Screen%20Shot%202018-10-23%20at%2010.53.44%20PM.png" width="400" /&gt;&lt;/p&gt;
&lt;ol start="4" style="list-style-type: decimal"&gt;
&lt;li&gt;Copy the link of any tweet you find interesting. If there are none for the session you are in, consider writing some tweets yourself with the conference hashtag!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-10-23-steps-for-writing-a-twitter-summary-conference-blog-post_files/Screen%20Shot%202018-10-23%20at%2011.12.23%20PM.png" width="500" /&gt;&lt;/p&gt;
&lt;ol start="5" style="list-style-type: decimal"&gt;
&lt;li&gt;Paste the link into your Google doc.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-10-23-steps-for-writing-a-twitter-summary-conference-blog-post_files/Screen%20Shot%202018-10-23%20at%2011.10.53%20PM.png" width="500" /&gt;&lt;/p&gt;
&lt;ol start="6" style="list-style-type: decimal"&gt;
&lt;li&gt;Once the day is over, copy-paste the contents of your Google doc into a text editor that has the ability to find and replace using regular expressions. For example, &lt;a href="https://macromates.com/"&gt;TextMate&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-10-23-steps-for-writing-a-twitter-summary-conference-blog-post_files/Screen%20Shot%202018-10-23%20at%2011.15.18%20PM.png" width="500" /&gt;&lt;/p&gt;
&lt;ol start="7" style="list-style-type: decimal"&gt;
&lt;li&gt;Find and replace to create the syntax for embedding tweets. I’ll cover more of this in detail in the next section.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Find:&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;https://twitter.com/.*/status/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and replace by:&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;\n`r blogdown::shortcode(&amp;quot;tweet&amp;quot;, &amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-10-23-steps-for-writing-a-twitter-summary-conference-blog-post_files/Screen%20Shot%202018-10-23%20at%2011.17.03%20PM.png" width="500" /&gt;&lt;/p&gt;
&lt;p&gt;Then find:&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;\?s=[0-9]*&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and replace by:&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;&amp;quot;)`\n&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-10-23-steps-for-writing-a-twitter-summary-conference-blog-post_files/Screen%20Shot%202018-10-23%20at%2011.17.58%20PM.png" width="500" /&gt;&lt;/p&gt;
&lt;p&gt;Our file now looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-10-23-steps-for-writing-a-twitter-summary-conference-blog-post_files/Screen%20Shot%202018-10-23%20at%2011.18.07%20PM.png" width="500" /&gt;&lt;/p&gt;
&lt;ol start="8" style="list-style-type: decimal"&gt;
&lt;li&gt;&lt;p&gt;Add any comments you wish, format the headings and proofread.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make it public and tweet about your post with the conference hashtag!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And you are done! &#128588;&#127997;&#127881;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="quick-embedding" class="section level3"&gt;
&lt;h3&gt;Quick embedding&lt;/h3&gt;
&lt;p&gt;Note that my blog is powered by &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;) which has the function &lt;code&gt;blogdown::shortcode()&lt;/code&gt; for embedding tweets. For example, &lt;code&gt;blogdown::shortcode("tweet", "1054380320533950464")&lt;/code&gt; generates the &lt;code&gt;hugo&lt;/code&gt; syntax code which then &lt;code&gt;hugo&lt;/code&gt; renders into the tweet itself.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;I just completed my &lt;a href="https://twitter.com/hashtag/ASHG18?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#ASHG18&lt;/a&gt; survey &lt;a href="https://twitter.com/GeneticsSociety?ref_src=twsrc%5Etfw"&gt;@GeneticsSociety&lt;/a&gt;. Took a few minutes and most of my feedback wouldn&amp;#39;t stand out. Except that I did use a box to suggest having a webinar with role playing scenarios that exemplify how the code of conduct can be used to diffuse harassment &lt;a href="https://twitter.com/jsdron?ref_src=twsrc%5Etfw"&gt;@jsdron&lt;/a&gt; &lt;a href="https://t.co/AKZdnGCr25"&gt;pic.twitter.com/AKZdnGCr25&lt;/a&gt;&lt;/p&gt;&amp;mdash; &#127474;&#127485; Leonardo Collado-Torres (@lcolladotor) &lt;a href="https://twitter.com/lcolladotor/status/1054380320533950464?ref_src=twsrc%5Etfw"&gt;October 22, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;As an alternative, we can use Twitter itself by copy-pasting the code for embedding the tweet directly from the Twitter app/website. On the top right side menu on the tweet itself, select &lt;em&gt;Embed Tweet&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-10-23-steps-for-writing-a-twitter-summary-conference-blog-post_files/Screen%20Shot%202018-10-23%20at%2011.04.03%20PM.png" width="500" /&gt;&lt;/p&gt;
&lt;p&gt;then copy-paste the HTML code into your post.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-10-23-steps-for-writing-a-twitter-summary-conference-blog-post_files/Screen%20Shot%202018-10-23%20at%2011.04.28%20PM.png" width="500" /&gt;&lt;/p&gt;
&lt;p&gt;Here’s the code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot; data-lang=&amp;quot;en&amp;quot;&amp;gt;&amp;lt;p lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot;&amp;gt;I just completed my &amp;lt;a href=&amp;quot;https://twitter.com/hashtag/ASHG18?src=hash&amp;amp;amp;ref_src=twsrc%5Etfw&amp;quot;&amp;gt;#ASHG18&amp;lt;/a&amp;gt; survey &amp;lt;a href=&amp;quot;https://twitter.com/GeneticsSociety?ref_src=twsrc%5Etfw&amp;quot;&amp;gt;@GeneticsSociety&amp;lt;/a&amp;gt;. Took a few minutes and most of my feedback wouldn&amp;amp;#39;t stand out. Except that I did use a box to suggest having a webinar with role playing scenarios that exemplify how the code of conduct can be used to diffuse harassment &amp;lt;a href=&amp;quot;https://twitter.com/jsdron?ref_src=twsrc%5Etfw&amp;quot;&amp;gt;@jsdron&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;https://t.co/AKZdnGCr25&amp;quot;&amp;gt;pic.twitter.com/AKZdnGCr25&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;amp;mdash; &#127474;&#127485; Dr. Leonardo Collado-Torres (@fellgernon) &amp;lt;a href=&amp;quot;https://twitter.com/fellgernon/status/1054380320533950464?ref_src=twsrc%5Etfw&amp;quot;&amp;gt;October 22, 2018&amp;lt;/a&amp;gt;&amp;lt;/blockquote&amp;gt;
&amp;lt;script async src=&amp;quot;https://platform.twitter.com/widgets.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and here is how it looks:&lt;/p&gt;
&lt;blockquote class="twitter-tweet" data-lang="en"&gt;
&lt;p lang="en" dir="ltr"&gt;
I just completed my &lt;a href="https://twitter.com/hashtag/ASHG18?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#ASHG18&lt;/a&gt; survey &lt;a href="https://twitter.com/GeneticsSociety?ref_src=twsrc%5Etfw"&gt;&lt;span class="citation"&gt;@GeneticsSociety&lt;/span&gt;&lt;/a&gt;. Took a few minutes and most of my feedback wouldn't stand out. Except that I did use a box to suggest having a webinar with role playing scenarios that exemplify how the code of conduct can be used to diffuse harassment &lt;a href="https://twitter.com/jsdron?ref_src=twsrc%5Etfw"&gt;&lt;span class="citation"&gt;@jsdron&lt;/span&gt;&lt;/a&gt; &lt;a href="https://t.co/AKZdnGCr25"&gt;pic.twitter.com/AKZdnGCr25&lt;/a&gt;
&lt;/p&gt;
— &#127474;&#127485; Dr. Leonardo Collado-Torres (&lt;span class="citation"&gt;@fellgernon&lt;/span&gt;) &lt;a href="https://twitter.com/fellgernon/status/1054380320533950464?ref_src=twsrc%5Etfw"&gt;October 22, 2018&lt;/a&gt;
&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;p&gt;There might be other ways of doing this that are specific to your blog platform.&lt;/p&gt;
&lt;p&gt;I also imagine that it should be possible to &lt;em&gt;bookmark&lt;/em&gt; the tweets on Twitter and then use an R package to extract your bookmarked tweets from the past 24 hours in order to simplify the process. Maybe this can be done with &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=rtweet"&gt;rtweet&lt;/a&gt;&lt;/em&gt; although I haven’t dived into it.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="new-to-blogdown" class="section level3"&gt;
&lt;h3&gt;New to &lt;code&gt;blogdown&lt;/code&gt;?&lt;/h3&gt;
&lt;p&gt;Check:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.emilyzabor.com/tutorials/rmarkdown_websites_tutorial.html#blogs"&gt;Emily Zabor’s website tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; (&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;) &lt;a href="https://bookdown.org/yihui/blogdown/"&gt;book&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://alison.rbind.io/post/up-and-running-with-blogdown/"&gt;Alison Presmanes Hill’s blogdown introduction&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also, ask around. You might belong to a group or know someone that is willing to host a guest post in their &lt;code&gt;blogdown&lt;/code&gt; blog. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://research.libd.org/rstatsclub/#.W8_pgBNKg0o"&gt;LIBD rstats club&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rladies-baltimore.github.io/"&gt;R-Ladies Baltimore&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.rladiesnyc.org/"&gt;R-Ladies NYC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; (&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;sessioninfo&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Csardi_2018'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=sessioninfo'&gt;Csárdi, core, Wickham, Chang, et al., 2018&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Csardi_2018'&gt;&lt;/a&gt;&lt;a href="#cite-Csardi_2018"&gt;[2]&lt;/a&gt;&lt;cite&gt;
G. Csárdi, R. core, H. Wickham, W. Chang, et al.
&lt;em&gt;sessioninfo: R Session Information&lt;/em&gt;.
R package version 1.1.1.
2018.
URL: &lt;a href="https://CRAN.R-project.org/package=sessioninfo"&gt;https://CRAN.R-project.org/package=sessioninfo&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[3]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  sessioninfo   * 1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;&lt;a href="http://lcolladotor.github.io/2018/10/16/ashg18-tweet-summary-day-1/#.W8gWEBNKg0o"&gt;ASHG18 day 1 post&lt;/a&gt;, &lt;a href="http://lcolladotor.github.io/2018/10/17/ashg18-tweet-summary-day-2/#.W8ggNxNKg0o"&gt;day 2&lt;/a&gt;, &lt;a href="http://lcolladotor.github.io/2018/10/18/ashg18-tweet-summary-day-3/#.W8mYLxNKg0o"&gt;day 3&lt;/a&gt;, &lt;a href="http://lcolladotor.github.io/2018/10/19/ashg18-tweet-summary-day-4/#.W8qdTRNKg0o"&gt;day 4&lt;/a&gt; and &lt;a href="http://lcolladotor.github.io/2018/10/20/ashg18-tweet-summary-day-5/#.W8t2vhNKg0o"&gt;day 5&lt;/a&gt;.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn2"&gt;&lt;p&gt;Or any other tool that can get you the embedding code, including the Twitter page itself.&lt;a href="#fnref2" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>R Gene Regulatory Interaction Formulator For Inquiring Networks</title>
      <link>https://lcolladotor.github.io/2018/09/13/r-gene-regulatory-interaction-formulator-for-inquiring-networks/</link>
      <pubDate>Thu, 13 Sep 2018 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2018/09/13/r-gene-regulatory-interaction-formulator-for-inquiring-networks/</guid>
      <description>


&lt;p&gt;&lt;em&gt;This blog post was written by &lt;a href="https://github.com/mar-esther23/"&gt;ME Martinez-Sanchez&lt;/a&gt;, &lt;a href="https://www.researchgate.net/profile/Stalin_Munoz"&gt;S Muñoz&lt;/a&gt;, &lt;a href="http://www.fciencias.unam.mx/directorio/33021"&gt;M Carrillo&lt;/a&gt;, &lt;a href="https://www.researchgate.net/profile/Eugenio_Azpeitia"&gt;E Azpeitia&lt;/a&gt;, &lt;a href="turing.iimas.unam.mx/~drosenbl/"&gt;D Rosenblueth&lt;/a&gt; and originally posted at the &lt;a href="https://comunidadbioinfo.github.io/post/r-gene-regulatory-interaction-formulator-for-inquiring-networks/"&gt;CDSB blog&lt;/a&gt;.&lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In this blog post we will describe the package &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Martinez-Sanchez_2019'&gt;&lt;/a&gt;(&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;) that was one of the projects developed during the &lt;a href="http://congresos.nnb.unam.mx/TIB2018/r-bioconductor-developers-workshop-2018/"&gt;TIB2018-BCDW&lt;/a&gt;. We hope to continue developing &lt;a href="http://turing.iimas.unam.mx/griffin/"&gt;&lt;code&gt;Griffin&lt;/code&gt;&lt;/a&gt; and &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;). If you have ideas, suggestions or bugs, please contact us via &lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin GitHub repo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-09-13-r-gene-regulatory-interaction-formulator-for-inquiring-networks_files/header.jpg" width="800" /&gt;&lt;/p&gt;
&lt;div id="the-problem" class="section level3"&gt;
&lt;h3&gt;The problem&lt;/h3&gt;
&lt;p&gt;Boolean networks allow us to give a mechanistic explanation to how cell types emerge from regulatory networks. However, inferring the regulatory network and its functions is complex problem, as the available information is often incomplete. &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;) uses available biological information (regulatory interactions, cell types, mutants) codified as a set of restrictions and returns the &lt;a href="https://en.wikipedia.org/wiki/Boolean_network"&gt;Boolean Networks&lt;/a&gt; that satisfy that restrictions. This Boolean networks can then be used to study the biological system.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;) package is an R connector to &lt;a href="http://turing.iimas.unam.mx/griffin/"&gt;&lt;code&gt;Griffin&lt;/code&gt;&lt;/a&gt; (Gene Regulatory Interaction Formulator For Inquiring Networks), a java library for inference and analysis of Boolean Network models. &lt;a href="http://turing.iimas.unam.mx/griffin/"&gt;&lt;code&gt;Griffin&lt;/code&gt;&lt;/a&gt; takes as inputs biologically meaningful constraints and turns them into a symbolic representation. Using a SAT engine, &lt;a href="http://turing.iimas.unam.mx/griffin/"&gt;&lt;code&gt;Griffin&lt;/code&gt;&lt;/a&gt; explores the Boolean Network search space, finding all satisfying assignments that are compatible with the specified constraints. The &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;) package includes a number of functions to interact with the BoolNet package.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="a-small-example" class="section level3"&gt;
&lt;h3&gt;A small example&lt;/h3&gt;
&lt;p&gt;Let us suppose a cell, we know that this cell has three proteins called &lt;strong&gt;a&lt;/strong&gt;, &lt;strong&gt;b&lt;/strong&gt; and &lt;strong&gt;c&lt;/strong&gt;. We know that &lt;strong&gt;a&lt;/strong&gt; activates &lt;strong&gt;b&lt;/strong&gt; and that &lt;strong&gt;b&lt;/strong&gt; and &lt;strong&gt;c&lt;/strong&gt; inhibit each other. We also suspect that &lt;strong&gt;b&lt;/strong&gt; and &lt;strong&gt;c&lt;/strong&gt; &lt;strong&gt;may&lt;/strong&gt; have positive self-regulatory loops. We can add this interactions to the table as “OPU” (optional, positive, unambiguous). This dataframe is the topology of the network.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;th&gt;Target&lt;/th&gt;
&lt;th&gt;Interaction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="odd"&gt;
&lt;td&gt;a&lt;/td&gt;
&lt;td&gt;b&lt;/td&gt;
&lt;td&gt;+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="even"&gt;
&lt;td&gt;b&lt;/td&gt;
&lt;td&gt;c&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="odd"&gt;
&lt;td&gt;c&lt;/td&gt;
&lt;td&gt;b&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="even"&gt;
&lt;td&gt;b&lt;/td&gt;
&lt;td&gt;b&lt;/td&gt;
&lt;td&gt;OPU&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="odd"&gt;
&lt;td&gt;c&lt;/td&gt;
&lt;td&gt;c&lt;/td&gt;
&lt;td&gt;OPU&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Suppose we also have some information of what cell types have been observed. For example, there is a cell type that expresses &lt;strong&gt;b&lt;/strong&gt;, but not &lt;strong&gt;a&lt;/strong&gt; or &lt;strong&gt;c&lt;/strong&gt; and an other cell type that expresses &lt;strong&gt;c&lt;/strong&gt;, but not &lt;strong&gt;a&lt;/strong&gt; or &lt;strong&gt;b&lt;/strong&gt;. There might exist a third cell type that has not been fully characterized where we know that the cell expresses no &lt;strong&gt;a&lt;/strong&gt; or &lt;strong&gt;c&lt;/strong&gt; but we have NO information on &lt;strong&gt;b&lt;/strong&gt;. This dataframe is the attractors of the network.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th&gt;a&lt;/th&gt;
&lt;th&gt;b&lt;/th&gt;
&lt;th&gt;c&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="odd"&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="even"&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="odd"&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;We can then use this information to create a query. &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;) can include other types of information like transition between cell type, cycles, transitions between cell types or mutant cell types.&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;## Install using:
# devtools::install_github(&amp;#39;mar-esther23/rgriffin&amp;#39;)
## Note that the package depends on rJava

library(&amp;#39;rGriffin&amp;#39;)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Loading required package: rJava&lt;/code&gt;&lt;/pre&gt;
&lt;pre class="r"&gt;&lt;code&gt;genes = c(&amp;#39;a&amp;#39;,&amp;#39;b&amp;#39;,&amp;#39;c&amp;#39;)
inter = data.frame(source=c(&amp;#39;a&amp;#39;,&amp;#39;b&amp;#39;,&amp;#39;c&amp;#39;, &amp;#39;b&amp;#39;,&amp;#39;c&amp;#39;), 
                  target=c(&amp;#39;b&amp;#39;, &amp;#39;c&amp;#39;, &amp;#39;b&amp;#39;, &amp;#39;b&amp;#39;, &amp;#39;c&amp;#39;), 
                  type=c(&amp;#39;+&amp;#39;,&amp;#39;-&amp;#39;,&amp;#39;-&amp;#39;,&amp;#39;OPU&amp;#39;,&amp;#39;OPU&amp;#39;),
                    stringsAsFactors = F )
q = create.gquery.graph(inter, genes)
attr = data.frame(a=c(0,&amp;#39;*&amp;#39;,0), 
                 b=c(0,1,0), 
                 c=c(0,0,1),
                 stringsAsFactors = F )
q = add.gquery.attractors(q, attr)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then we can use &lt;code&gt;Griffin&lt;/code&gt; to find the networks that behave according with our biological information.&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;nets = run.gquery(q)
nets&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] &amp;quot;targets,factors\na,false\nb,((((!a&amp;amp;b)&amp;amp;!c)|((a&amp;amp;!b)&amp;amp;!c))|((a&amp;amp;b)&amp;amp;!c))\nc,(!b&amp;amp;c)\n&amp;quot;                         
## [2] &amp;quot;targets,factors\na,false\nb,(((((!a&amp;amp;b)&amp;amp;!c)|((a&amp;amp;!b)&amp;amp;!c))|((a&amp;amp;b)&amp;amp;!c))|((a&amp;amp;b)&amp;amp;c))\nc,(!b&amp;amp;c)\n&amp;quot;             
## [3] &amp;quot;targets,factors\na,false\nb,((((((!a&amp;amp;b)&amp;amp;!c)|((!a&amp;amp;b)&amp;amp;c))|((a&amp;amp;!b)&amp;amp;!c))|((a&amp;amp;b)&amp;amp;!c))|((a&amp;amp;b)&amp;amp;c))\nc,(!b&amp;amp;c)\n&amp;quot;
## [4] &amp;quot;targets,factors\na,false\nb,((((!a&amp;amp;b)&amp;amp;!c)|((a&amp;amp;b)&amp;amp;!c))|((a&amp;amp;b)&amp;amp;c))\nc,(!b&amp;amp;c)\n&amp;quot;                           
## [5] &amp;quot;targets,factors\na,false\nb,((((((!a&amp;amp;b)&amp;amp;!c)|((a&amp;amp;!b)&amp;amp;!c))|((a&amp;amp;!b)&amp;amp;c))|((a&amp;amp;b)&amp;amp;!c))|((a&amp;amp;b)&amp;amp;c))\nc,(!b&amp;amp;c)\n&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There are multiple options to integrate &lt;code&gt;BoolNet&lt;/code&gt; and &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;). The function &lt;code&gt;get.net.topology()&lt;/code&gt; can obtain the topology with interaction signs of a BoolNet network. The function &lt;code&gt;attractor2dataframe()&lt;/code&gt; can be used to export a BoolNet attractor as a dataframe that &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;) can use. The function &lt;code&gt;run.gquery()&lt;/code&gt; includes the option &lt;code&gt;return=’BoolNet’&lt;/code&gt;, that return the inferred networks as &lt;code&gt;BoolNet&lt;/code&gt; networks.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="history" class="section level3"&gt;
&lt;h3&gt;History&lt;/h3&gt;
&lt;p&gt;The development of &lt;a href="http://turing.iimas.unam.mx/griffin/"&gt;&lt;code&gt;Griffin&lt;/code&gt;&lt;/a&gt; began in 2013 as a PAPIIT (Programa de Apoyo a Proyectos de Investigación e Innovación Tecnológica) project to solve the inference of Boolean Network models for the &lt;strong&gt;Arabidopsis thaliana&lt;/strong&gt; root stem cell niche. It continued in 2015 with support of Conacyt grant 221341.&lt;/p&gt;
&lt;p&gt;In January, 2017 we organized a course in &lt;a href="https://www.c3.unam.mx"&gt;C3-UNAM&lt;/a&gt; to teach biologist how to use &lt;a href="http://turing.iimas.unam.mx/griffin/"&gt;&lt;code&gt;Griffin&lt;/code&gt;&lt;/a&gt;. We received two main comments: the input format was too complicated and it was uncomfortable to use the output with other packages. After some consideration we decided to create an &lt;code&gt;R&lt;/code&gt; wrapper that could export and import &lt;code&gt;BoolNet&lt;/code&gt; networks. We selected &lt;code&gt;BoolNet&lt;/code&gt; as it has an good documentation and the package &lt;code&gt;BoolFilter&lt;/code&gt; had been designed to work with it.&lt;/p&gt;
&lt;p&gt;The development of &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;) began during the &lt;a href="http://fejer.ucol.mx/biomate/"&gt;EOBM 2017&lt;/a&gt; in &lt;a href="https://portal.ucol.mx/cuib/"&gt;CUIB&lt;/a&gt;. For the following year we continued developing &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;) as our schedules allowed. There were multiple challenges during the development: defining user-friendly inputs, using &lt;code&gt;Rjava&lt;/code&gt;, and structuring the package. In August 2018, we attended the &lt;a href="http://congresos.nnb.unam.mx/TIB2018/r-bioconductor-developers-workshop-2018/"&gt;TIB2018-BCDW&lt;/a&gt; where we received valuable guidance from Martin Morgan and Benilton S Carvalho. It was during this workshop that the first version of &lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;) was finished.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;Here you can find the tweet about the original blog post:&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;Check our first contributed blog post: R Gene Regulatory Interaction Formulator For Inquiring Networks&lt;a href="https://t.co/9azbElGZGH"&gt;https://t.co/9azbElGZGH&lt;/a&gt;&lt;br&gt;&lt;br&gt;ME Martinez-Sanchez, S Muñoz, M Carrillo, E Azpeitia, D Rosenblueth&lt;br&gt;&lt;br&gt;Thx &lt;a href="https://twitter.com/mt_morgan?ref_src=twsrc%5Etfw"&gt;@mt_morgan&lt;/a&gt; &lt;a href="https://twitter.com/benilton?ref_src=twsrc%5Etfw"&gt;@benilton&lt;/a&gt;!&lt;a href="https://twitter.com/hashtag/CDSBMexico?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#CDSBMexico&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/TIB2018?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#TIB2018&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/LatAmBioc18?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#LatAmBioc18&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstats&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/TIB?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#TIB&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/blog?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#blog&lt;/a&gt; &lt;a href="https://t.co/TbJv37fkWQ"&gt;pic.twitter.com/TbJv37fkWQ&lt;/a&gt;&lt;/p&gt;&amp;mdash; ComunidadBioInfo (@CDSBMexico) &lt;a href="https://twitter.com/CDSBMexico/status/1031904001833414659?ref_src=twsrc%5Etfw"&gt;August 21, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=devtools"&gt;devtools&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Wickham_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=devtools'&gt;Wickham, Hester, and Chang, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2017'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://github.com/mar-esther23/rGriffin"&gt;rGriffin&lt;/a&gt;&lt;/em&gt; (&lt;a href='#bib-Martinez-Sanchez_2019'&gt;Martinez-Sanchez, Muñoz, Carrillo, Azpeitia, et al., 2019&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2017"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.8.
2017.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Martinez-Sanchez_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Martinez-Sanchez_2019"&gt;[2]&lt;/a&gt;&lt;cite&gt;
M. Martinez-Sanchez, S. Muñoz, M. Carrillo, E. Azpeitia, et al.
&lt;em&gt;rGriffin: Gene Regulatory Interaction Formulator For Inquiring Networks&lt;/em&gt;.
R package version 0.1.
2019.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Wickham_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Wickham_2019"&gt;[3]&lt;/a&gt;&lt;cite&gt;
H. Wickham, J. Hester, and W. Chang.
&lt;em&gt;devtools: Tools to Make Developing R Packages Easier&lt;/em&gt;.
R package version 2.0.2.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=devtools"&gt;https://CRAN.R-project.org/package=devtools&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                                      
##  version  R version 3.5.2 Patched (2019-02-17 r76113)
##  os       macOS Mojave 10.14.4                       
##  system   x86_64, darwin15.6.0                       
##  ui       X11                                        
##  language (EN)                                       
##  collate  en_US.UTF-8                                
##  ctype    en_US.UTF-8                                
##  tz       America/New_York                           
##  date     2019-04-10                                 
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.5.2)                    
##  backports       1.1.3   2018-12-14 [1] CRAN (R 3.5.0)                    
##  bibtex          0.4.2   2017-06-30 [1] CRAN (R 3.5.0)                    
##  BiocManager     1.30.4  2018-11-13 [1] CRAN (R 3.5.0)                    
##  BiocStyle     * 2.10.0  2018-10-30 [1] Bioconductor                      
##  blogdown        0.11.1  2019-04-05 [1] Github (rstudio/blogdown@5179caf) 
##  bookdown        0.9     2018-12-21 [1] CRAN (R 3.5.0)                    
##  callr           3.2.0   2019-03-15 [1] CRAN (R 3.5.2)                    
##  cli             1.1.0   2019-03-19 [1] CRAN (R 3.5.2)                    
##  colorout      * 1.2-0   2019-02-18 [1] Github (jalvesaq/colorout@cc5fbfa)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.5.0)                    
##  desc            1.2.0   2018-05-01 [1] CRAN (R 3.5.0)                    
##  devtools      * 2.0.2   2019-04-08 [1] CRAN (R 3.5.2)                    
##  digest          0.6.18  2018-10-10 [1] CRAN (R 3.5.0)                    
##  evaluate        0.13    2019-02-12 [1] CRAN (R 3.5.2)                    
##  fs              1.2.7   2019-03-19 [1] CRAN (R 3.5.2)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.5.2)                    
##  htmltools       0.3.6   2017-04-28 [1] CRAN (R 3.5.0)                    
##  httr            1.4.0   2018-12-11 [1] CRAN (R 3.5.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.5.0)                    
##  knitcitations * 1.0.8   2017-07-04 [1] CRAN (R 3.5.0)                    
##  knitr           1.22    2019-03-08 [1] CRAN (R 3.5.2)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.5.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.5.0)                    
##  memoise         1.1.0   2017-04-21 [1] CRAN (R 3.5.0)                    
##  pkgbuild        1.0.3   2019-03-20 [1] CRAN (R 3.5.2)                    
##  pkgload         1.0.2   2018-10-29 [1] CRAN (R 3.5.0)                    
##  plyr            1.8.4   2016-06-08 [1] CRAN (R 3.5.0)                    
##  prettyunits     1.0.2   2015-07-13 [1] CRAN (R 3.5.0)                    
##  processx        3.3.0   2019-03-10 [1] CRAN (R 3.5.2)                    
##  ps              1.3.0   2018-12-21 [1] CRAN (R 3.5.0)                    
##  R6              2.4.0   2019-02-14 [1] CRAN (R 3.5.2)                    
##  Rcpp            1.0.1   2019-03-17 [1] CRAN (R 3.5.2)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.5.2)                    
##  remotes         2.0.3   2019-04-09 [1] CRAN (R 3.5.2)                    
##  rGriffin      * 0.1     2019-04-10 [1] local                             
##  rJava         * 0.9-11  2019-03-29 [1] CRAN (R 3.5.2)                    
##  rlang           0.3.4   2019-04-07 [1] CRAN (R 3.5.2)                    
##  rmarkdown       1.12    2019-03-14 [1] CRAN (R 3.5.2)                    
##  rprojroot       1.3-2   2018-01-03 [1] CRAN (R 3.5.0)                    
##  sessioninfo     1.1.1   2018-11-05 [1] CRAN (R 3.5.0)                    
##  stringi         1.4.3   2019-03-12 [1] CRAN (R 3.5.2)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.5.2)                    
##  testthat        2.0.1   2018-10-13 [1] CRAN (R 3.5.0)                    
##  usethis       * 1.5.0   2019-04-07 [1] CRAN (R 3.5.2)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.5.0)                    
##  xfun            0.6     2019-04-02 [1] CRAN (R 3.5.2)                    
##  xml2            1.2.0   2018-01-24 [1] CRAN (R 3.5.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.5.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.5/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;I’m re-posting their blog post here with their permission so that their post will be shared more widely via &lt;a href="https://www.r-bloggers.com/"&gt;R-Bloggers&lt;/a&gt; and &lt;a href="https://rweekly.org/"&gt;R Weekly&lt;/a&gt; among other sites since the CDSB blog is currently not linked to those aggregators. The original blog post has been edited so that it evaluates the R code and includes all the information needed for reproducibility.&lt;a href="#fnref1" class="footnote-back"&gt;↩&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Getting ready to attend rOpenSci unconf18 and probably working on tidyverse-like functions for the first time</title>
      <link>https://lcolladotor.github.io/2018/04/27/ropensci-unconf18-and-working-on-tidyverse-like-functions-for-the-first-time/</link>
      <pubDate>Fri, 27 Apr 2018 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2018/04/27/ropensci-unconf18-and-working-on-tidyverse-like-functions-for-the-first-time/</guid>
      <description>


&lt;p&gt;It’s Friday 7pm and it’s been a long week with ups and downs&lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;. But I’m enthused as I write this blog post. In less than a month from now I’ll be attending &lt;a href="http://unconf18.ropensci.org/"&gt;rOpenSci unconf18&lt;/a&gt; and it’ll be my first time at this type of event. Yay!&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;Building on my streak of good news, I&amp;#39;m delighted to have been selected to attend &lt;a href="https://twitter.com/rOpenSci?ref_src=twsrc%5Etfw"&gt;@rOpenSci&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/Unconf18?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#Unconf18&lt;/a&gt; &lt;a href="https://t.co/Xe6lojB7TS"&gt;https://t.co/Xe6lojB7TS&lt;/a&gt; ^_^ Also, thanks to the &lt;a href="https://t.co/o5OwUWEaBD"&gt;https://t.co/o5OwUWEaBD&lt;/a&gt; and &lt;a href="https://twitter.com/LieberInstitute?ref_src=twsrc%5Etfw"&gt;@LieberInstitute&lt;/a&gt; for their support! I&amp;#39;m hoping to relay as much as I can to &lt;a href="https://twitter.com/LIBDrstats?ref_src=twsrc%5Etfw"&gt;@LIBDrstats&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstats&lt;/a&gt;&lt;/p&gt;&amp;mdash; &#127474;&#127485; Leonardo Collado-Torres (@lcolladotor) &lt;a href="https://twitter.com/lcolladotor/status/983876013015826432?ref_src=twsrc%5Etfw"&gt;April 11, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;p&gt;In my self introduction to everyone attending, I mentioned that I don’t use the pipe (&lt;code&gt;%&amp;gt;%&lt;/code&gt;) symbol and that I use &lt;code&gt;&amp;lt;-&lt;/code&gt; for assignment.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-04-27-getting-ready-to-attend-ropensci-unconf18-and-probably-working-on-tidyverse-like-functions-for-the-first-time_files/Screen%20Shot%202018-04-27%20at%207.11.14%20PM.png" width="600" /&gt;
Recently I had my pre-unconf chat with &lt;a href="https://ropensci.org/about/#team"&gt;Stefanie Butland&lt;/a&gt; (read more about these chats &lt;a href="https://blog.trelliscience.com/the-value-of-welcome-part-2-how-to-prepare-40-new-community-members-for-an-unconference/"&gt;in her great blog post&lt;/a&gt;). In my notes to Stefanie before our chat I had mentioned again my lack of R piping experience and we talked about it. As we talked, it became clear that a blog post on related topics would be useful. Sure, I could have asked directly to the other unconf18 participants, but maybe others from the R community in general can chime in or benefit from reading the answers.&lt;/p&gt;
&lt;div id="coding-style-and-git" class="section level3"&gt;
&lt;h3&gt;Coding style and git&lt;/h3&gt;
&lt;p&gt;I’m attending unconf18 with an open mind and I think of myself as someone who can be quite flexible (not with my body!) and accommodating. I’m assuming that most participants at unconf18 will use &lt;code&gt;=&lt;/code&gt; for assignment. I’m not looking to start any discussions about the different assignment operators. Simply, I am willing to use whatever the majority uses. Just like I did in my first pull request to the &lt;code&gt;blogdown&lt;/code&gt; package (&lt;a href="https://github.com/rstudio/blogdown/pull/263"&gt;issue 263&lt;/a&gt;). I was trying to follow Yihui Xie’s coding style to make his life easier and have a clean (or cleaner) git history. From &lt;a href="https://yihui.name/en/2018/02/bite-sized-pull-requests/"&gt;Yihui’s post on this pull request&lt;/a&gt; I can see that he liked it.&lt;/p&gt;
&lt;p&gt;Keeping this in mind, I think that following the coding style of others will be something I’ll do at unconf18. I haven’t really worked in any R packages with many developers actively working on the package. But I imagine that setting a common coding style will minimize git conflicts, and &lt;strong&gt;no one&lt;/strong&gt; wants those&lt;a href="#fn2" class="footnote-ref" id="fnref2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;. I don’t know if we’ll all follow some common guidelines at unconf18. I actually imagine that it’ll be project-specific. Why? Well because you can create an R project in RStudio&lt;a href="#fn3" class="footnote-ref" id="fnref3"&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt; and set some defaults for the project such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the number of spaces for tab&lt;/li&gt;
&lt;li&gt;line ending conversions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-04-27-getting-ready-to-attend-ropensci-unconf18-and-probably-working-on-tidyverse-like-functions-for-the-first-time_files/Screen%20Shot%202018-04-27%20at%207.27.27%20PM.png" width="400" /&gt;&lt;/p&gt;
&lt;p&gt;We can also set some global RStudio preferences like whether to &lt;em&gt;auto-indent code after paste&lt;/em&gt;, length of lines.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-04-27-getting-ready-to-attend-ropensci-unconf18-and-probably-working-on-tidyverse-like-functions-for-the-first-time_files/Screen%20Shot%202018-04-27%20at%207.28.49%20PM.png" width="400" /&gt;
Additionally, we can decide whether we’ll use the RStudio “wand” to &lt;em&gt;reformat code&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-04-27-getting-ready-to-attend-ropensci-unconf18-and-probably-working-on-tidyverse-like-functions-for-the-first-time_files/Screen%20Shot%202018-04-27%20at%207.31.29%20PM.png" width="300" /&gt;&lt;/p&gt;
&lt;p&gt;Maybe all of this is unnecessary, maybe everyone will work in different non-overlapping functions and thus avoid git conflicts. For example, at my job sometimes I write code with &lt;code&gt;=&lt;/code&gt; users, but we don’t work on the same lines of the code file. Later on it becomes easy to identify who wrote which line without having to use &lt;code&gt;git blame&lt;/code&gt; (awful name, right?).&lt;/p&gt;
&lt;/div&gt;
&lt;div id="tidyverse-like-functions" class="section level3"&gt;
&lt;h3&gt;Tidyverse-like functions&lt;/h3&gt;
&lt;p&gt;So far, I think that these coding style issues are minor and will be easily dealt with. I think that we’ll all be able to adapt and instead focus on other problems (like whatever the package is trying to solve) and enjoy the experience (network, build &lt;strong&gt;trust&lt;/strong&gt; as Stefanie put it).&lt;/p&gt;
&lt;p&gt;My second concern has to do with something I imagine could require more effort: my homework before the unconf. That is, writing tidyverse-like functions. Like I’ve said, I haven’t used the R pipe &lt;code&gt;%&amp;gt;%&lt;/code&gt; symbol. I’ve executed some code with it before, seeing it in many blog posts, but I’ve never actually written functions designed to be compatible with this type of logic.&lt;/p&gt;
&lt;p&gt;If I help write a function that is not pipe-friendly, then it might not integrate nicely with other functions written by the rest of the team. It would lead to workarounds in the vignette or maybe having someone else re-factor my first function to make it pipe-friendly. Sure, I would learn from observing others make changes to my code. But I want to take advantage as much as I can from my experience at rOpenSci unconf&lt;a href="#fn4" class="footnote-ref" id="fnref4"&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Since I don’t really use &lt;code&gt;%&amp;gt;%&lt;/code&gt;, I’m unfamiliar with many things related to pipe-friendly (tidyverse-like) functions. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do you document them differently? Like make a single Rd file for multiple functions. Or do you make an Rd file per function even if the example usage doesn’t involve &lt;code&gt;%&amp;gt;%&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;I know that the first argument is important in pipe-friendly functions. But I ignore if the second and other arguments play a role or not.&lt;/li&gt;
&lt;li&gt;Do people use the ellipsis (&lt;code&gt;...&lt;/code&gt;) argument in pipe-friendly functions? With my &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/derfinder"&gt;derfinder&lt;/a&gt;&lt;/em&gt; package I ended up a very deep rabbit hole using &lt;code&gt;...&lt;/code&gt;. I explained some of the logic in my &lt;code&gt;dots&lt;/code&gt; &lt;a href="http://lcolladotor.github.io/2014/12/11/dots/#.WuO4-VMvy50"&gt;blog post&lt;/a&gt; (there are fair criticisms to going deep with &lt;code&gt;...&lt;/code&gt; in the comments).&lt;/li&gt;
&lt;li&gt;How do you write unit tests for pipe-friendly functions? Similar to how you write documentation for them, do the unit tests just test one function a time or do they test several at a time (that is the output after using &lt;code&gt;%&amp;gt;%&lt;/code&gt;)?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These and other questions could involve time getting familiar with. Time that I could spend now, before unconf18, learning and at least getting a better sense of what to expect. Maybe I’m complicating myself and worrying too much about this. I imagine that the solution will involve a combination of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Checking some popular tidyverse packages that use &lt;code&gt;%&amp;gt;%&lt;/code&gt;. Like the vignettes/README files and examples.&lt;/li&gt;
&lt;li&gt;Reading more about this in a book(s): I don’t know which one though.&lt;/li&gt;
&lt;li&gt;Playing around a bit as a user with some of these functions. See what error messages pop up: actually I don’t know how users debug a series of functions tied together via &lt;code&gt;%&amp;gt;%&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="wrapping-up" class="section level3"&gt;
&lt;h3&gt;Wrapping up&lt;/h3&gt;
&lt;p&gt;I’m not saying everyone should learn about these topics before unconf18. I think that we are all (well, maybe excluding some) worried about not knowing &lt;span class="math inline"&gt;\(X\)&lt;/span&gt; or &lt;span class="math inline"&gt;\(Y\)&lt;/span&gt; &lt;code&gt;R&lt;/code&gt;/&lt;code&gt;git&lt;/code&gt;/&lt;code&gt;travis&lt;/code&gt;/&lt;code&gt;testthat&lt;/code&gt;/&lt;code&gt;usethis&lt;/code&gt;/etc topic before unconf18. And that will part of why it’ll be great to meet everyone in what is known to be an extremely welcoming R conference ^^ (seriously, check &lt;a href="https://ropensci.org/blog/2017/06/02/unconf2017/"&gt;all the unconf17 posts&lt;/a&gt;!).&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;## And I&amp;#39;m done proofreading the post. Yay!
Sys.time()&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] &amp;quot;2020-02-12 22:33:17 EST&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=devtools"&gt;devtools&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Wickham_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=devtools'&gt;Wickham, Hester, and Chang, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[2]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Wickham_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Wickham_2019"&gt;[3]&lt;/a&gt;&lt;cite&gt;
H. Wickham, J. Hester, and W. Chang.
&lt;em&gt;devtools: Tools to Make Developing R Packages Easier&lt;/em&gt;.
R package version 2.2.1.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=devtools"&gt;https://CRAN.R-project.org/package=devtools&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  backports       1.1.5   2019-10-02 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  callr           3.4.1   2020-01-24 [1] CRAN (R 3.6.2)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  desc            1.2.0   2018-05-01 [1] CRAN (R 3.6.0)                    
##  devtools      * 2.2.1   2019-09-24 [1] CRAN (R 3.6.1)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  ellipsis        0.3.0   2019-09-20 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  fs              1.3.1   2019-05-06 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  memoise         1.1.0   2017-04-21 [1] CRAN (R 3.6.0)                    
##  pkgbuild        1.0.6   2019-10-09 [1] CRAN (R 3.6.0)                    
##  pkgload         1.0.2   2018-10-29 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  prettyunits     1.1.1   2020-01-24 [1] CRAN (R 3.6.2)                    
##  processx        3.4.1   2019-07-18 [1] CRAN (R 3.6.0)                    
##  ps              1.3.0   2018-12-21 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  remotes         2.1.0   2019-06-24 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  rprojroot       1.3-2   2018-01-03 [1] CRAN (R 3.6.0)                    
##  sessioninfo     1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  testthat        2.3.1   2019-12-01 [1] CRAN (R 3.6.0)                    
##  usethis       * 1.5.1   2019-07-04 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;Feeling welcomed can be hard… oh well.&lt;a href="#fnref1" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn2"&gt;&lt;p&gt;We could talk about git for a long time too. But I hope that I’ll get by with some git push, git pull, and maybe git branch.&lt;a href="#fnref2" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn3"&gt;&lt;p&gt;It’s one of the sponsors &lt;a href="http://unconf18.ropensci.org/#sponsors" class="uri"&gt;http://unconf18.ropensci.org/#sponsors&lt;/a&gt; and well, probably want most will be using since it has such nice tools for writing R packages.&lt;a href="#fnref3" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn4"&gt;&lt;p&gt;Specially since most only attend one unconf, I think. So it’s different from other conferences that you can experience multiple years and network with the group across a longer period of time: that’s what I’ve done with the Bioconductor meetings.&lt;a href="#fnref4" class="footnote-back"&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Latin American R/BioConductor Developers Workshop 2018</title>
      <link>https://lcolladotor.github.io/2018/04/19/latin-american-r-bioconductor-developers-workshop-2018/</link>
      <pubDate>Thu, 19 Apr 2018 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2018/04/19/latin-american-r-bioconductor-developers-workshop-2018/</guid>
      <description>


&lt;p&gt;Today I’m excited to invite you to attend the &lt;a href="https://comunidadbioinfo.github.io/post/r-bioconductor-developers-workshop-2018/"&gt;Latin American R/BioConductor Developers Workshop 2018&lt;/a&gt;! It’ll be held in Cuernavaca, Mexico from July 30th to August 3rd, 2018. You can find the &lt;a href="https://support.bioconductor.org/p/108108"&gt;official announcement in the Bioconductor support website&lt;/a&gt;. Let me share with you why I’m excited about this workshop.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://bioconductor.org/images/logo_bioconductor.gif"&gt;&lt;/p&gt;
&lt;p&gt;At &lt;a href="https://bioconductor.org/help/course-materials/2017/BioC2017/"&gt;BioC2017&lt;/a&gt;, &lt;a href="http://alejandroreyes.org/"&gt;Alejandro Reyes&lt;/a&gt; and I talked for a while about the low representation of Latin Americans through out the years that either of us have attended the BioC meetings&lt;a href="#fn1" class="footnote-ref" id="fnref1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;. We wanted to see more Latin faces in person but also in the Bioconductor Support Website and among package contributors. We brainstormed for a while and a at dinner with Bioconductor core members we simply ran with our ideas: we brought up the subject and were pleasantly rewarded with support from the Bioconductor team (Alejandro did most of the convincing!). That is, if we organized a conference/workshop, they would help us by sending someone to be one of the instructors.&lt;/p&gt;
&lt;p&gt;Previously, Alejandro and I had already discussed why we like the Bioc meetings so much. One of the keys is that the Bioc meetings have always had events for different levels of R users. That is, you can attend the conference each year and learn something new (that’s how I got my career started). So you can progress from learning R, to mastering several R packages, to contributing R packages to Bioconductor, to brainstorming future directions for the Bioconductor project&lt;a href="#fn2" class="footnote-ref" id="fnref2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;. Additionally, the Bioc meetings have scientific talks in the mornings so that you can learn new scientific and R developments in a single conference. We’ve seen this model adapted in other Bioc events like BiocAsia, the European Bioconductor Meeting, etc. It would be ideal if we got to that point, but we wanted to start smaller with a focus on developing R packages.&lt;/p&gt;
&lt;p&gt;Separately, &lt;a href="https://www.linkedin.com/in/heladia-salgado-bb122954/"&gt;Heladia Salgado&lt;/a&gt;, Romualdo Zayas and others from CCG-UNAM&lt;a href="#fn3" class="footnote-ref" id="fnref3"&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt; and NNB-UNAM&lt;a href="#fn4" class="footnote-ref" id="fnref4"&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt; have organized the &lt;a href="http://congresos.nnb.unam.mx/"&gt;“Talleres Internacionales de Bioinformática”&lt;/a&gt;&lt;a href="#fn5" class="footnote-ref" id="fnref5"&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/a&gt; (TIBs) for years now. Actually, I was a student in 2006 and gave a lecture in the summer 2010 event. At the TIBs they’ve had an introductory R class for a few years now where &lt;a href="https://www.linkedin.com/in/selenefernandez/"&gt;Selene Fernandez-Valverde&lt;/a&gt; and &lt;a href="http://liigh.unam.mx/amedina/"&gt;Alejandra Medina-Rivera&lt;/a&gt; have participated as instructors. Among the feedback they’ve received is the desire for a more advanced R course.&lt;/p&gt;
&lt;p&gt;Alejandro and I talked to Alejandra Medina-Rivera who shared our enthusiasm for Bioconductor. As a PI in Mexico, Alejandra knows very well how sparse are the R/Bioconductor courses that she can send her students to. By the way, Alejandra is the one who first invited me to attend BioC2008!&lt;a href="#fn6" class="footnote-ref" id="fnref6"&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/a&gt; We quickly started an email thread with Heladia and basically, the pieces started to fall in the right places. Heladia, Delfino Garcia-Alonso, Daniela Ledezma, Laura Gómez, Shirley Alquicira, Thalia Uranga Martínez, among others have been instrumental in organizing the workshop. Heladia, Alejandra and others also secured crucial funding from &lt;a href="http://www.ccg.unam.mx/"&gt;CCG-UNAM&lt;/a&gt; and &lt;a href="http://liigh.unam.mx/"&gt;LIIGH-UNAM&lt;/a&gt;. Together we were able to invite and get all the logistics so that &lt;a href="https://www.roswellpark.org/martin-morgan"&gt;Martin Morgan&lt;/a&gt;, &lt;a href="http://www.heatherturner.net/"&gt;Heather Turner&lt;/a&gt;, &lt;a href="http://www.somos.unicamp.br/professores/view/4722"&gt;Benilton Carvalho&lt;/a&gt;, Selene Fernandez-Valverde, &lt;a href="http://www.teresa-ortiz.com/eng"&gt;María Teresa Ortiz&lt;/a&gt; and &lt;a href="http://mastrettayanes-lab.org/"&gt;Alicia Mastretta Yanes&lt;/a&gt; could all help us teach part of the workshop and/or present their work.&lt;/p&gt;
&lt;p&gt;Briefly, these are some of the reasons why they are amazing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Martin: Bioconductor project leader.&lt;/li&gt;
&lt;li&gt;Heather: extensive experience teaching R and bioinformatics.&lt;/li&gt;
&lt;li&gt;Benilton: he helped organize a similar workshop in 2015: &lt;a href="http://lab.foundation/"&gt;LAb Foundation Brasil&lt;/a&gt;. Also an academic relative of Alejandro and myself.&lt;/li&gt;
&lt;li&gt;Selene: &lt;a href="https://www.fondationloreal.com/categories/for-women-in-science/lang/en"&gt;L’Oréal-UNESCO For Women in Science&lt;/a&gt;, has taught at TIBs before.&lt;/li&gt;
&lt;li&gt;Teresa: &lt;a href="https://www.meetup.com/rladiescdmx/"&gt;RLadiesCDMX&lt;/a&gt; plus just look at her awesome &lt;a href="https://github.com/tereom?tab=repositories"&gt;GitHub&lt;/a&gt; profile!&lt;/li&gt;
&lt;li&gt;Alicia: she has taught an intro to bioinformatics and reproducible genetic analyses course, plus check her &lt;a href="https://github.com/AliciaMstt?tab=repositories"&gt;GitHub&lt;/a&gt; profile!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you check the &lt;a href="https://comunidadbioinfo.github.io/post/r-bioconductor-developers-workshop-2018/"&gt;workshop schedule&lt;/a&gt; we have, you’ll notice that we will have several sessions devoted to actually writing R packages. So the course will cover both the theory and the practice side of things. If you attend the workshop, you’ll have plenty of opportunities to network with your peers and to learn from other R developers. You should be super excited now!! ^^ Plus we have a &lt;a href="https://github.com/ComunidadBioInfo/R-BioConductor-Developers-Workshop-2018/blob/master/R-Bioconductor-2018_Program.rmd#code-of-conduct"&gt;code of conduct&lt;/a&gt; (en &lt;a href="https://comunidadbioinfo.github.io/codigo-de-conducta/"&gt;Español&lt;/a&gt;) to ensure that the conference will be welcoming to everyone.&lt;/p&gt;
&lt;p&gt;This is also a reminder that you have to keep trying. Back in 2009 or 2010 I had gotten an offer of support from Bioc for sending someone to Cuernavaca, but due to funding circumstances it fell through. Like I said, all the pieces fell in the right places this time. Plus Heladia Salgado has made it all possible!&lt;/p&gt;
&lt;p&gt;2018 is looking like a good year for R courses in Latin America. For example, there’s &lt;a href="http://latin-r.com/en"&gt;LatinR&lt;/a&gt; and &lt;a href="https://www.meetup.com/rladies-buenos-aires/"&gt;Buenos Aires RLadies&lt;/a&gt; plus our workshop! Fingers crossed, I’ll be able to attend the workshop in 2019!&lt;/p&gt;
&lt;p&gt;Again, I’m excited to invite you to attend the &lt;a href="https://comunidadbioinfo.github.io/post/r-bioconductor-developers-workshop-2018/"&gt;Latin American R/BioConductor Developers Workshop 2018&lt;/a&gt;! Regardless of whether you can attend it, help us spread the word:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bioc Support website: &lt;a href="https://support.bioconductor.org/p/108108/" class="uri"&gt;https://support.bioconductor.org/p/108108/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bioc twitter: &lt;a href="https://twitter.com/Bioconductor/status/986943878535303168" class="uri"&gt;https://twitter.com/Bioconductor/status/986943878535303168&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;&lt;a href="https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstats&lt;/a&gt; / &lt;a href="https://twitter.com/Bioconductor?ref_src=twsrc%5Etfw"&gt;@Bioconductor&lt;/a&gt; Latin American BioC Developers Workshop 2018 &lt;a href="https://t.co/eoL4O4V5xT"&gt;https://t.co/eoL4O4V5xT&lt;/a&gt;&lt;/p&gt;&amp;mdash; Bioconductor (@Bioconductor) &lt;a href="https://twitter.com/Bioconductor/status/986943878535303168?ref_src=twsrc%5Etfw"&gt;April 19, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;ul&gt;
&lt;li&gt;Tweet by Alejandro Reyes: &lt;a href="https://twitter.com/areyesq/status/986943887976656896" class="uri"&gt;https://twitter.com/areyesq/status/986943887976656896&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="en" dir="ltr"&gt;If you are a programmer and want to become a &lt;a href="https://twitter.com/Bioconductor?ref_src=twsrc%5Etfw"&gt;@Bioconductor&lt;/a&gt; developer, join the Latin American Developers Workshop in Cuernavaca, Mexico, from Jul 30 to Aug 3. More info here: &lt;a href="https://t.co/TAcfqYSiM6"&gt;https://t.co/TAcfqYSiM6&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/rstats?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#rstats&lt;/a&gt; &lt;a href="https://twitter.com/CDSBMexico?ref_src=twsrc%5Etfw"&gt;@CDSBMexico&lt;/a&gt; &lt;a href="https://twitter.com/ccg_unam?ref_src=twsrc%5Etfw"&gt;@ccg_unam&lt;/a&gt;&lt;/p&gt;&amp;mdash; Alejandro Reyes (@areyesq) &lt;a href="https://twitter.com/areyesq/status/986943887976656896?ref_src=twsrc%5Etfw"&gt;April 19, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;ul&gt;
&lt;li&gt;Tweet by LCG UNAM: &lt;a href="https://twitter.com/lcgunam/status/986691090920230913" class="uri"&gt;https://twitter.com/lcgunam/status/986691090920230913&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="ca" dir="ltr"&gt;Talleres Internacionales de Bioinformática 2018 y Latin American R/Bioconductor Developers Workshop 30jul-3ago &lt;a href="https://twitter.com/ccg_unam?ref_src=twsrc%5Etfw"&gt;@ccg_unam&lt;/a&gt; &lt;a href="https://twitter.com/unammorelos?ref_src=twsrc%5Etfw"&gt;@unammorelos&lt;/a&gt; &lt;a href="https://twitter.com/UNAM_MX?ref_src=twsrc%5Etfw"&gt;@unam_mx&lt;/a&gt; &lt;a href="https://t.co/oHWKjbrDrb"&gt;https://t.co/oHWKjbrDrb&lt;/a&gt;&lt;a href="https://twitter.com/hashtag/RegistroAbierto?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#RegistroAbierto&lt;/a&gt; &lt;a href="https://t.co/bdmOREzhuy"&gt;pic.twitter.com/bdmOREzhuy&lt;/a&gt;&lt;/p&gt;&amp;mdash; LCG UNAM (@lcgunam) &lt;a href="https://twitter.com/lcgunam/status/986691090920230913?ref_src=twsrc%5Etfw"&gt;April 18, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;ul&gt;
&lt;li&gt;CDSBMexico twitter: &lt;a href="https://twitter.com/CDSBMexico/status/986672270964871169" class="uri"&gt;https://twitter.com/CDSBMexico/status/986672270964871169&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="es" dir="ltr"&gt;Te invitamos a los Talleres Internacionales de Bioinformática 2018&lt;a href="https://t.co/dsSekSp4U8"&gt;https://t.co/dsSekSp4U8&lt;/a&gt; &lt;a href="https://t.co/UN1wmOF9SX"&gt;pic.twitter.com/UN1wmOF9SX&lt;/a&gt;&lt;/p&gt;&amp;mdash; ComunidadBioInfo (@CDSBMexico) &lt;a href="https://twitter.com/CDSBMexico/status/986672270964871169?ref_src=twsrc%5Etfw"&gt;April 18, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;ul&gt;
&lt;li&gt;CDSBMexico facebook: &lt;a href="https://www.facebook.com/events/215830399185346/" class="uri"&gt;https://www.facebook.com/events/215830399185346/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Website: &lt;a href="https://comunidadbioinfo.github.io/post/r-bioconductor-developers-workshop-2018/" class="uri"&gt;https://comunidadbioinfo.github.io/post/r-bioconductor-developers-workshop-2018/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Registration form: &lt;a href="http://congresos.nnb.unam.mx/TIB2018/registro/" class="uri"&gt;http://congresos.nnb.unam.mx/TIB2018/registro/&lt;/a&gt; (select “Latin American R/BioConductor Developers Workshop 2018”)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn1"&gt;&lt;p&gt;The Bioc team has been great about financially supporting newcomers! I was one of them: just remember to apply before the deadline expires!&lt;a href="#fnref1" class="footnote-back"&gt;↩&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn2"&gt;&lt;p&gt;It doesn’t have to be in that order. For example, anyone attending the Bioc meeting is welcome at the Developer’s Day and to chime in the discussions about the Bioconductor project.&lt;a href="#fnref2" class="footnote-back"&gt;↩&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn3"&gt;&lt;p&gt;Centro de Ciencias Genómicas: Center for Genomic Sciences&lt;a href="#fnref3" class="footnote-back"&gt;↩&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn4"&gt;&lt;p&gt;Nodo Nacional de Bioinformática: National Bioinformatics Node&lt;a href="#fnref4" class="footnote-back"&gt;↩&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn5"&gt;&lt;p&gt;Internacional Bioinformatics Workshops&lt;a href="#fnref5" class="footnote-back"&gt;↩&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li id="fn6"&gt;&lt;p&gt;I then taught a few courses at LCG-UNAM, CCG-UNAM and IBT-UNAM from 2008 to 2011 with some slides in Spanish and English. Alejandro was my TA for one of these courses! For a few years since then I would get emails in Spanish asking about some of those courses. You can still find those courses online, but I bet that the material is outdated. In any case, it’s another example of the limited training opportunities.&lt;a href="#fnref6" class="footnote-back"&gt;↩&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>blogdown archetype (template)</title>
      <link>https://lcolladotor.github.io/2018/03/08/blogdown-archetype-template/</link>
      <pubDate>Thu, 08 Mar 2018 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2018/03/08/blogdown-archetype-template/</guid>
      <description>


&lt;p&gt;In a recent blog post I &lt;a href="http://lcolladotor.github.io/2018/02/17/r-markdown-blog-template/#.WqDOdpPwa50"&gt;wrote about having a template&lt;/a&gt; for &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; posts. I wanted to know if it was possible to do this and make my life (and others hopefully) easier for writing new blog posts that are ready to go with the features I frequently re-use.&lt;/p&gt;
&lt;p&gt;In my case, I like using &lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;) for functions such as &lt;code&gt;CRANpkg()&lt;/code&gt;, &lt;code&gt;Biocpkg()&lt;/code&gt; and &lt;code&gt;Githubpkg()&lt;/code&gt;. I also like using &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;) for citing with &lt;code&gt;citep()&lt;/code&gt; packages or papers; I use &lt;code&gt;citation()&lt;/code&gt; and &lt;code&gt;bib_metadata()&lt;/code&gt; to get the necessary information, respectively. Furthermore, I prefer &lt;code&gt;devtools::session_info()&lt;/code&gt; &lt;a id='cite-Wickham_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=devtools'&gt;Wickham, Hester, and Chang, 2019&lt;/a&gt;) over &lt;code&gt;sessionInfo()&lt;/code&gt; since it provides information of where you got the package, which becomes specially relevant when using packages from GitHub. Finally, I like thanking the creators of the tools I use, which in this case is &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;I also like reminding myself how to do some common tasks. Basically, the equivalent of the new R Markdown file you get when using RStudio. In my case, I want to remind myself of the YAML options I frequently use (toc, fig height and width) or how to add screenshots.&lt;/p&gt;
&lt;p&gt;My &lt;a href="http://lcolladotor.github.io/2018/02/17/r-markdown-blog-template/#.WqDOdpPwa50"&gt;first post&lt;/a&gt; on this topic is actually rather messy. That’s because at that time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I didn’t know about &lt;a href="https://gohugo.io/content-management/archetypes/"&gt;hugo archetypes&lt;/a&gt; which are &lt;em&gt;template&lt;/em&gt; files,&lt;/li&gt;
&lt;li&gt;I hadn’t even thought of making the &lt;a href="http://lcolladotor.github.io/2018/03/07/blogdown-insert-image-addin/#.WqDRmpPwa50"&gt;Insert Image addin&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I went down the rabbit hole of archetypes and &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt;, reported an &lt;a href="https://github.com/rstudio/blogdown/issues/261"&gt;issue resulated to this topic&lt;/a&gt; that was in the way of using archetypes for &lt;code&gt;.Rmd&lt;/code&gt; posts. After some encouragement by Yihui Xie, I ended up fixing this issues in &lt;a href="https://github.com/rstudio/blogdown/pull/263"&gt;my first pull request&lt;/a&gt; &lt;em&gt;ever&lt;/em&gt; to an RStudio package. The PR also added the &lt;code&gt;Archetype&lt;/code&gt; option to the &lt;em&gt;New Post&lt;/em&gt; RStudio addin (which I used right now ^^).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-03-08-blogdown-archetype-template_files/Screen Shot 2018-03-08 at 1.05.13 AM.png" alt="new post addin with archetype option" width="400"/&gt;&lt;/p&gt;
&lt;div id="creating-my-blogdown-archetype-template" class="section level3"&gt;
&lt;h3&gt;Creating my &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; archetype (template)&lt;/h3&gt;
&lt;p&gt;To make my archetype (template) for blog posts I looked at the GitHub repo for the theme I’m using. It contains an &lt;code&gt;archetypes&lt;/code&gt; directory with several files. I just looked at the one called &lt;code&gt;post.md&lt;/code&gt; (check it &lt;a href="https://github.com/gcushen/hugo-academic/blob/master/archetypes/post.md"&gt;here&lt;/a&gt;) and copied it from &lt;code&gt;themes/hugo-academic/archetypes/post.md&lt;/code&gt; to &lt;code&gt;archetypes/post.md&lt;/code&gt;. Next I added my favorite R code below the last &lt;code&gt;+++&lt;/code&gt; mark. You can check out the final version &lt;a href="https://github.com/lcolladotor/hugoblog/blob/master/archetypes/post.md"&gt;here&lt;/a&gt;. Below I display the version at the time of writing this blog post (I’m using a &lt;code&gt;.txt&lt;/code&gt; extension otherwise the embedded gist doesn’t look good, but you want it to end in &lt;code&gt;.md&lt;/code&gt;).&lt;/p&gt;
&lt;script src="https://gist.github.com/lcolladotor/c3e141e033306299d0946a76e71f2967.js"&gt;&lt;/script&gt;
&lt;p&gt;I couldn’t get the archetype to respect some of the YAML that &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; adds, but well, that’s a single copy-paste I have to do now (if I actually decide to use the custom YAML options which are only for &lt;code&gt;.Rmd&lt;/code&gt; posts).&lt;/p&gt;
&lt;p&gt;I encourage you to make your own &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; archetype (template). At least it should remind you to include reproducibility information which matters whenever any R code is involved.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; (&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; (&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=devtools"&gt;devtools&lt;/a&gt;&lt;/em&gt; (&lt;a href='https://CRAN.R-project.org/package=devtools'&gt;Wickham, Hester, and Chang, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; (&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Yihui Xie also talked about my first PR in &lt;a href="https://yihui.name/en/2018/02/bite-sized-pull-requests/"&gt;his blog&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[2]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Wickham_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Wickham_2019"&gt;[3]&lt;/a&gt;&lt;cite&gt;
H. Wickham, J. Hester, and W. Chang.
&lt;em&gt;devtools: Tools to Make Developing R Packages Easier&lt;/em&gt;.
R package version 2.2.1.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=devtools"&gt;https://CRAN.R-project.org/package=devtools&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  backports       1.1.5   2019-10-02 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  callr           3.4.1   2020-01-24 [1] CRAN (R 3.6.2)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  desc            1.2.0   2018-05-01 [1] CRAN (R 3.6.0)                    
##  devtools      * 2.2.1   2019-09-24 [1] CRAN (R 3.6.1)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  ellipsis        0.3.0   2019-09-20 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  fs              1.3.1   2019-05-06 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  memoise         1.1.0   2017-04-21 [1] CRAN (R 3.6.0)                    
##  pkgbuild        1.0.6   2019-10-09 [1] CRAN (R 3.6.0)                    
##  pkgload         1.0.2   2018-10-29 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  prettyunits     1.1.1   2020-01-24 [1] CRAN (R 3.6.2)                    
##  processx        3.4.1   2019-07-18 [1] CRAN (R 3.6.0)                    
##  ps              1.3.0   2018-12-21 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  remotes         2.1.0   2019-06-24 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  rprojroot       1.3-2   2018-01-03 [1] CRAN (R 3.6.0)                    
##  sessioninfo     1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  testthat        2.3.1   2019-12-01 [1] CRAN (R 3.6.0)                    
##  usethis       * 1.5.1   2019-07-04 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>blogdown Insert Image addin</title>
      <link>https://lcolladotor.github.io/2018/03/07/blogdown-insert-image-addin/</link>
      <pubDate>Wed, 07 Mar 2018 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2018/03/07/blogdown-insert-image-addin/</guid>
      <description>


&lt;p&gt;Have you ever tried inserting an image into a &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; post? Maybe you have, or maybe you tried and gave up. Lets first review the &lt;em&gt;hard&lt;/em&gt; way before getting to the solution I contributed.&lt;/p&gt;
&lt;div id="the-hard-way" class="section level3"&gt;
&lt;h3&gt;The &lt;em&gt;hard&lt;/em&gt; way&lt;/h3&gt;
&lt;p&gt;The process involves copying the target image to the static directory that corresponds to the &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; post. Lets say that your post is called &lt;code&gt;2018-03-07-my-new-post.Rmd&lt;/code&gt; and lives at &lt;code&gt;content/post/&lt;/code&gt;, so it’s full path is &lt;code&gt;content/post/2018-03-07-my-new-post.Rmd&lt;/code&gt;. When you run the RStudio &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; addin &lt;em&gt;Serve Site&lt;/em&gt;, behind curtains the directory &lt;code&gt;static/post/2018-03-07-my-new-post_files&lt;/code&gt; is created and inside it you can find the images made by your R code: likely at &lt;code&gt;static/post/2018-03-07-my-new-post_files/figure_html&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;So far everything is working! But now you want to add a screenshot or some other image to your blog post. Lets say that your image is &lt;code&gt;~/Desktop/screenshot.jpg&lt;/code&gt;. Your &lt;code&gt;~/Desktop&lt;/code&gt; directory is not part of your &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; directory and well, simply put, your website won’t find the image. We need to put it in a location that will be made public by &lt;code&gt;hugo&lt;/code&gt;. That is, we need to put it inside &lt;code&gt;static/post/2018-03-07-my-new-post_files&lt;/code&gt; (or anywhere inside &lt;code&gt;static&lt;/code&gt;, but we like to keep things tidy!).&lt;/p&gt;
&lt;p&gt;Ok, so we copy our screenshot file &lt;code&gt;~/Desktop/screenshot.jpg&lt;/code&gt; and save it as &lt;code&gt;static/post/2018-03-07-my-new-post_files/screenshot.jpg&lt;/code&gt;. The next time we render our site and publish it, the figure will be available in the web. But it’s still not part of our &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; post.&lt;/p&gt;
&lt;p&gt;So we need to use either the Markdown or HTML syntax for adding the image. Maybe your initial thought is to use:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;![](screenshot.jpg)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Except that &lt;strong&gt;will not&lt;/strong&gt; work. We need to use almost all the path (just remove &lt;code&gt;static&lt;/code&gt;) as shown below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;![](/post/2018-03-07-my-new-post_files/screenshot.jpg)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you want to edit the height or width, then you need to use the HTML syntax. Something like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;img alt = &amp;#39;my new screenshot&amp;#39; width=&amp;#39;200&amp;#39; src=&amp;#39;/post/2018-03-07-my-new-post_files/screenshot.jpg&amp;#39; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div id="hard-way-notes" class="section level4"&gt;
&lt;h4&gt;&lt;em&gt;hard way&lt;/em&gt; notes&lt;/h4&gt;
&lt;p&gt;You could have also used &lt;code&gt;knitr::include_graphics()&lt;/code&gt; and let &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; copy it to the final location in &lt;code&gt;static&lt;/code&gt; and link to it appropriately. However, you would have to keep your original images organized in a way that won’t bother &lt;code&gt;hugo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Another option that I used for a while, even in the days when my blog was based on Jekyll, is to render the figures yourself and copy the directory with the figures, plus mess around with how they are linked from R. Details &lt;a href="https://github.com/lcolladotor/markdown-redcarpet.tmbundle/commit/f043c056ff620299843e9d8ea34144f478aa7965"&gt;here&lt;/a&gt;. Not something I recommend doing now.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="insert-image-addin-aka-the-easy-way" class="section level3"&gt;
&lt;h3&gt;&lt;em&gt;Insert Image&lt;/em&gt; addin: aka, the &lt;em&gt;easy&lt;/em&gt; way&lt;/h3&gt;
&lt;p&gt;If you are using &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt;, you most likely (you &lt;em&gt;should&lt;/em&gt; if you can) are using &lt;a href="https://www.rstudio.com/products/rstudio/download/"&gt;RStudio&lt;/a&gt; and the great &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; addins: &lt;em&gt;New Post&lt;/em&gt; and &lt;em&gt;Serve Site&lt;/em&gt;. I just recently started using them in the past few days and looking at the code I realized that it should be possible to make an addin that lets you:&lt;/p&gt;
&lt;ol style="list-style-type: decimal"&gt;
&lt;li&gt;select a target image,&lt;/li&gt;
&lt;li&gt;copies the target image to the appropriate location under &lt;code&gt;static&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;gives you the correct code for linking the image.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Yihui Xie &lt;a href="https://github.com/rstudio/blogdown/issues/269"&gt;loved the idea&lt;/a&gt; (I think it’s fair to say that ^^) and helped me polish it in the &lt;a href="https://github.com/rstudio/blogdown/pull/272"&gt;pull request&lt;/a&gt; that implements it. He then refined the code even &lt;a href="https://github.com/rstudio/blogdown/commit/7355a94edc62dd9ffe3792c1103f1536b9c67406"&gt;more&lt;/a&gt;!&lt;/p&gt;
&lt;/div&gt;
&lt;div id="features-of-the-insert-image-addin" class="section level3"&gt;
&lt;h3&gt;Features of the &lt;em&gt;Insert Image&lt;/em&gt; addin&lt;/h3&gt;
&lt;p&gt;The final features, at least as implemented in &lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; version 0.5.7 are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Select an image from anywhere in your computer.&lt;/li&gt;
&lt;li&gt;Automatically generate a candidate final location for your image under &lt;code&gt;static&lt;/code&gt;, which you can edit. Useful if you want to rename the final figure.&lt;/li&gt;
&lt;li&gt;Allow specifying the alternate description of the image (&lt;code&gt;alt&lt;/code&gt;), height and width.&lt;/li&gt;
&lt;li&gt;If the target image file exists, a dynamic menu shows up that asks you whether to overwrite it or not.&lt;/li&gt;
&lt;li&gt;The final syntax is Markdown unless a width or height are used, in which case it uses HTML code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Yihui Xie &lt;a href="https://github.com/rstudio/blogdown/pull/272"&gt;hinted&lt;/a&gt; at other possible future features, which maybe you can help implement.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="using-the-insert-image-addin" class="section level3"&gt;
&lt;h3&gt;Using the &lt;em&gt;Insert Image&lt;/em&gt; addin&lt;/h3&gt;
&lt;div id="step-1-install-appropriate-blogdown-version" class="section level4"&gt;
&lt;h4&gt;Step 1: install appropriate &lt;em&gt;&lt;a href="https://github.com/rstudio/blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; version&lt;/h4&gt;
&lt;p&gt;First of all, at the time of writing this post, you need the development version of &lt;em&gt;&lt;a href="https://github.com/rstudio/blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt;. You can install it with:&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;## Check if you have version 0.5.7 or newer
## I actually used version 0.5.9 for this blog post
packageVersion(&amp;#39;blogdown&amp;#39;)

## If not, then get it!
##### If necessary:
## install.packages(&amp;#39;devtools&amp;#39;)
devtools::install_github(&amp;#39;rstudio/blogdown&amp;#39;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You also need an up to date version of &lt;a href="https://www.rstudio.com/products/rstudio/download/"&gt;RStudio&lt;/a&gt; and I recommend also using &lt;a href="https://cran.r-project.org/"&gt;R 3.4.x&lt;/a&gt; (or newer if you are reading this in the future). Re-start RStudio so it loads the new version of &lt;em&gt;&lt;a href="https://github.com/rstudio/blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="step-2-open-the-insert-image-addin" class="section level4"&gt;
&lt;h4&gt;Step 2: open the &lt;em&gt;Insert Image&lt;/em&gt; addin&lt;/h4&gt;
&lt;p&gt;Second, go to the &lt;em&gt;Addins&lt;/em&gt; menu in the top section of the RStudio window and select the &lt;em&gt;Insert Image&lt;/em&gt; &lt;em&gt;&lt;a href="https://github.com/rstudio/blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; addin.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-03-07-blogdown-insert-image-addin_files/Screen Shot 2018-03-07 at 11.47.37 PM.png" alt="insert image addin screenshot" width="400"/&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="step-3-choose-figure-and-inputs" class="section level4"&gt;
&lt;h4&gt;Step 3: choose figure and inputs&lt;/h4&gt;
&lt;p&gt;So far the &lt;em&gt;Insert Image&lt;/em&gt; addin looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-03-07-blogdown-insert-image-addin_files/Screen Shot 2018-03-07 at 11.58.44 PM.png" alt="addin without input" width="400"/&gt;&lt;/p&gt;
&lt;p&gt;So lets go head and select an image we want to upload. In my case, I chose an image that already exists.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-03-07-blogdown-insert-image-addin_files/Screen Shot 2018-03-08 at 12.00.01 AM.png" alt="" width="400"/&gt;&lt;/p&gt;
&lt;p&gt;You can rename the figure if you want, and if it doesn’t exist, the &lt;em&gt;overwrite&lt;/em&gt; option goes away.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-03-07-blogdown-insert-image-addin_files/Screen Shot 2018-03-08 at 12.01.06 AM.png" alt="modified image file" width="400"/&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="step-4-hit-done" class="section level4"&gt;
&lt;h4&gt;Step 4: hit done!&lt;/h4&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-03-07-blogdown-insert-image-addin_files/Screen Shot 2018-03-08 at 12.02.28 AM.png" alt="hit go" width="400"/&gt;&lt;/p&gt;
&lt;p&gt;Lets go ahead and click &lt;code&gt;done&lt;/code&gt;! Our text window in RStudio will insert the appropriate code for linking the image. In this case, it’s the following code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;img src=&amp;quot;/post/2018-03-07-blogdown-insert-image-addin_files/screenshot.png&amp;quot; alt=&amp;quot;final image&amp;quot; width=&amp;quot;400&amp;quot;/&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and this is the image:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-03-07-blogdown-insert-image-addin_files/screenshot.png" alt="final image" width="400"/&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="optional-step-5" class="section level4"&gt;
&lt;h4&gt;Optional step 5&lt;/h4&gt;
&lt;p&gt;Now use the &lt;em&gt;Serve Site&lt;/em&gt; addin and check if you like your images. You might want to change the height/widths or alternate text. You could also wrap the HTML/Markdown code around it for linking to a website.&lt;/p&gt;
&lt;p&gt;You can also delete your original images, if for example, they are cluttering your &lt;code&gt;~/Desktop&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="conclusions" class="section level3"&gt;
&lt;h3&gt;Conclusions&lt;/h3&gt;
&lt;p&gt;I hope that you will find this new addin as useful as I’m finding it, or even more. Plus hopefully this blog post gives you an idea of the difficulties before this addin existed. Also, I want to thank Yihui Xie for guiding me, I’ve learnt quite a bit recently. Though I will still use &lt;code&gt;&amp;lt;-&lt;/code&gt; assignment operator for my own code hehe.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="acknowledgments" class="section level3"&gt;
&lt;h3&gt;Acknowledgments&lt;/h3&gt;
&lt;p&gt;This blog post was made possible thanks to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://bioconductor.org/packages/3.10/BiocStyle"&gt;BiocStyle&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Oles_2020'&gt;&lt;/a&gt;(&lt;a href='https://github.com/Bioconductor/BiocStyle'&gt;Oleś, Morgan, and Huber, 2020&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=blogdown"&gt;blogdown&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=devtools"&gt;devtools&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Wickham_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=devtools'&gt;Wickham, Hester, and Chang, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/em&gt; &lt;a id='cite-Boettiger_2019'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2019&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;as well as Yihui Xie’s help and encouragement in the &lt;a href="https://yihui.name/en/2018/02/bite-sized-pull-requests/"&gt;form of a signed sticker&lt;/a&gt; and the &lt;em&gt;Great Hacker&lt;/em&gt; title ^^. He also wrote &lt;a href="https://yihui.name/en/2018/03/second-pull-request/"&gt;a blog post&lt;/a&gt; about the &lt;em&gt;Insert Image&lt;/em&gt; addin.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-03-07-blogdown-insert-image-addin_files/Screen Shot 2018-03-08 at 12.12.07 AM.png" alt="great hacker signed sticker" width="400"/&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2019"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;.
R package version 1.0.10.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Oles_2020'&gt;&lt;/a&gt;&lt;a href="#cite-Oles_2020"&gt;[2]&lt;/a&gt;&lt;cite&gt;
A. Oleś, M. Morgan, and W. Huber.
&lt;em&gt;BiocStyle: Standard styles for vignettes and other Bioconductor documents&lt;/em&gt;.
R package version 2.14.4.
2020.
URL: &lt;a href="https://github.com/Bioconductor/BiocStyle"&gt;https://github.com/Bioconductor/BiocStyle&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Wickham_2019'&gt;&lt;/a&gt;&lt;a href="#cite-Wickham_2019"&gt;[3]&lt;/a&gt;&lt;cite&gt;
H. Wickham, J. Hester, and W. Chang.
&lt;em&gt;devtools: Tools to Make Developing R Packages Easier&lt;/em&gt;.
R package version 2.2.1.
2019.
URL: &lt;a href="https://CRAN.R-project.org/package=devtools"&gt;https://CRAN.R-project.org/package=devtools&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[4]&lt;/a&gt;&lt;cite&gt;
Y. Xie, A. P. Hill, and A. Thomas.
&lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;.
ISBN 978-0815363729.
Boca Raton, Florida: Chapman and Hall/CRC, 2017.
URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       macOS Catalina 10.15.2      
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       America/New_York            
##  date     2020-02-12                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package       * version date       lib source                            
##  assertthat      0.2.1   2019-03-21 [1] CRAN (R 3.6.0)                    
##  backports       1.1.5   2019-10-02 [1] CRAN (R 3.6.0)                    
##  bibtex          0.4.2.2 2020-01-02 [1] CRAN (R 3.6.0)                    
##  BiocManager     1.30.10 2019-11-16 [1] CRAN (R 3.6.1)                    
##  BiocStyle     * 2.14.4  2020-01-09 [1] Bioconductor                      
##  blogdown        0.17    2019-11-13 [1] CRAN (R 3.6.1)                    
##  bookdown        0.17    2020-01-11 [1] CRAN (R 3.6.0)                    
##  callr           3.4.1   2020-01-24 [1] CRAN (R 3.6.2)                    
##  cli             2.0.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  colorout      * 1.2-1   2019-05-07 [1] Github (jalvesaq/colorout@7ea9440)
##  crayon          1.3.4   2017-09-16 [1] CRAN (R 3.6.0)                    
##  desc            1.2.0   2018-05-01 [1] CRAN (R 3.6.0)                    
##  devtools      * 2.2.1   2019-09-24 [1] CRAN (R 3.6.1)                    
##  digest          0.6.23  2019-11-23 [1] CRAN (R 3.6.0)                    
##  ellipsis        0.3.0   2019-09-20 [1] CRAN (R 3.6.0)                    
##  evaluate        0.14    2019-05-28 [1] CRAN (R 3.6.0)                    
##  fansi           0.4.1   2020-01-08 [1] CRAN (R 3.6.0)                    
##  fs              1.3.1   2019-05-06 [1] CRAN (R 3.6.0)                    
##  glue            1.3.1   2019-03-12 [1] CRAN (R 3.6.0)                    
##  htmltools       0.4.0   2019-10-04 [1] CRAN (R 3.6.0)                    
##  httr            1.4.1   2019-08-05 [1] CRAN (R 3.6.0)                    
##  jsonlite        1.6     2018-12-07 [1] CRAN (R 3.6.0)                    
##  knitcitations * 1.0.10  2019-09-15 [1] CRAN (R 3.6.0)                    
##  knitr           1.27    2020-01-16 [1] CRAN (R 3.6.0)                    
##  lubridate       1.7.4   2018-04-11 [1] CRAN (R 3.6.0)                    
##  magrittr        1.5     2014-11-22 [1] CRAN (R 3.6.0)                    
##  memoise         1.1.0   2017-04-21 [1] CRAN (R 3.6.0)                    
##  pkgbuild        1.0.6   2019-10-09 [1] CRAN (R 3.6.0)                    
##  pkgload         1.0.2   2018-10-29 [1] CRAN (R 3.6.0)                    
##  plyr            1.8.5   2019-12-10 [1] CRAN (R 3.6.0)                    
##  prettyunits     1.1.1   2020-01-24 [1] CRAN (R 3.6.2)                    
##  processx        3.4.1   2019-07-18 [1] CRAN (R 3.6.0)                    
##  ps              1.3.0   2018-12-21 [1] CRAN (R 3.6.0)                    
##  R6              2.4.1   2019-11-12 [1] CRAN (R 3.6.1)                    
##  Rcpp            1.0.3   2019-11-08 [1] CRAN (R 3.6.0)                    
##  RefManageR      1.2.12  2019-04-03 [1] CRAN (R 3.6.0)                    
##  remotes         2.1.0   2019-06-24 [1] CRAN (R 3.6.0)                    
##  rlang           0.4.3   2020-01-24 [1] CRAN (R 3.6.2)                    
##  rmarkdown       2.1     2020-01-20 [1] CRAN (R 3.6.0)                    
##  rprojroot       1.3-2   2018-01-03 [1] CRAN (R 3.6.0)                    
##  sessioninfo     1.1.1   2018-11-05 [1] CRAN (R 3.6.0)                    
##  stringi         1.4.5   2020-01-11 [1] CRAN (R 3.6.0)                    
##  stringr         1.4.0   2019-02-10 [1] CRAN (R 3.6.0)                    
##  testthat        2.3.1   2019-12-01 [1] CRAN (R 3.6.0)                    
##  usethis       * 1.5.1   2019-07-04 [1] CRAN (R 3.6.0)                    
##  withr           2.1.2   2018-03-15 [1] CRAN (R 3.6.0)                    
##  xfun            0.12    2020-01-13 [1] CRAN (R 3.6.0)                    
##  xml2            1.2.2   2019-08-09 [1] CRAN (R 3.6.0)                    
##  yaml            2.2.0   2018-07-25 [1] CRAN (R 3.6.0)                    
## 
## [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>R markdown blog template</title>
      <link>https://lcolladotor.github.io/2018/02/17/r-markdown-blog-template/</link>
      <pubDate>Sat, 17 Feb 2018 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2018/02/17/r-markdown-blog-template/</guid>
      <description>


&lt;p&gt;This blog post is mostly for myself but maybe it’s useful to others. It contains my current R markdown blog template. I initially posted this as a question at &lt;a href="https://stackoverflow.com/questions/48844340/is-it-possible-to-create-a-rmd-file-template-for-the-blogdown-new-post-addin"&gt;StackOverflow&lt;/a&gt;. Then I read how much a burden we put in &lt;a href="https://yihui.name/en/2018/02/career-crisis/"&gt;Yihui Xie&lt;/a&gt; and decided that my current setup (copy-pasting) works just fine. In any case using &lt;code&gt;blogdown&lt;/code&gt; with the RStudio IDE is much simpler than what I used to do in the past with &lt;a href="http://lcolladotor.github.io/2013/11/09/new-Fellgernon-Bit-setup-in-Github/"&gt;jekyll&lt;/a&gt; or with even my prior &lt;a href="https://github.com/rstudio/blogdown/issues/42"&gt;setup with blogdown&lt;/a&gt;.&lt;/p&gt;
&lt;div id="bibliography-setup" class="section level3"&gt;
&lt;h3&gt;Bibliography setup&lt;/h3&gt;
&lt;p&gt;First I define the citation information I’ll need. By the way, I used &lt;a href="https://yihui.name/knitr/faq/"&gt;FAQ 7&lt;/a&gt; for showing the R code chunk.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    ```{r bibsetup, echo=FALSE, message=FALSE, warning=FALSE}
    ## Load knitcitations with a clean bibliography
    library(&amp;#39;knitcitations&amp;#39;)
    cleanbib()
    cite_options(hyperlink = &amp;#39;to.doc&amp;#39;, citation_format = &amp;#39;text&amp;#39;, style = &amp;#39;html&amp;#39;)
    
    bib &amp;lt;- c(&amp;#39;knitcitations&amp;#39; = citation(&amp;#39;knitcitations&amp;#39;),
             &amp;#39;blogdown&amp;#39; = citation(&amp;#39;blogdown&amp;#39;)[2])
    ```&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="post-content" class="section level3"&gt;
&lt;h3&gt;Post content&lt;/h3&gt;
&lt;p&gt;This is where I typically start to edit since the bibliography chunk is hidden.&lt;/p&gt;
&lt;/div&gt;
&lt;div id="r-image" class="section level3"&gt;
&lt;h3&gt;R image&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;    ```{r &amp;#39;plot&amp;#39;}
    ## This will create the /post/*_files/ directory
    ## where you can later copy the non-R images you want to use
    ## in the blog post
    plot(1:10, 10:1)
    ```&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/post/2018-02-17-r-markdown-blog-template_files/figure-html/plot-1.png" width="480" /&gt;&lt;/p&gt;
&lt;p&gt;Note that I modified the YAML portion of the post to set the figure width and height. You can also include a table of contents if you want, though it affects the summary of the post. Check the &lt;a href="https://bookdown.org/yihui/blogdown/output-format.html"&gt;output format&lt;/a&gt; section of the &lt;code&gt;blogdown&lt;/code&gt; book for more details &lt;a id='cite-Xie_2017'&gt;&lt;/a&gt;(&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;), including differences between &lt;code&gt;.Rmd&lt;/code&gt; and &lt;code&gt;.Rmarkdown&lt;/code&gt; files. Note that you can also use a &lt;code&gt;_output.yml&lt;/code&gt; file as described there.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;output:
  blogdown::html_page:
    toc: no
    fig_width: 5
    fig_height: 5&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="custom-image-syntax" class="section level3"&gt;
&lt;h3&gt;Custom image syntax&lt;/h3&gt;
&lt;p&gt;Here I remind myself of different ways I can include external images. Check &lt;a href="https://github.com/rstudio/blogdown/issues/239"&gt;blogdown issue 239&lt;/a&gt; for some background information.&lt;/p&gt;
&lt;p&gt;Markdown syntax for custom image:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;![](/post/2018-02-17-r-markdown-blog-template_files/LIBD.jpg)&lt;/code&gt;&lt;/pre&gt;
&lt;div class="figure"&gt;
&lt;img src="http://lcolladotor.github.io/post/2018-02-17-r-markdown-blog-template_files/LIBD.jpg" /&gt;

&lt;/div&gt;
&lt;p&gt;HTML syntax for centering image, including a link, and re-sizing the image to a fix width of 200 px.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;center&amp;gt;
&amp;lt;a href=&amp;quot;http://lcolladotor.github.io/&amp;quot;&amp;gt;&amp;lt;img alt = &amp;#39;some website&amp;#39; width=&amp;#39;200&amp;#39; src=&amp;#39;/post/2018-02-17-r-markdown-blog-template_files/LIBD.jpg&amp;#39; /&amp;gt;&amp;lt;/a&amp;gt;
&amp;lt;/center&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;center&gt;
&lt;a href="http://lcolladotor.github.io/"&gt;&lt;img alt = 'some website' width='200' src='http://lcolladotor.github.io/post/2018-02-17-r-markdown-blog-template_files/LIBD.jpg' /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;/div&gt;
&lt;div id="reproducibility" class="section level3"&gt;
&lt;h3&gt;Reproducibility&lt;/h3&gt;
&lt;pre class="r"&gt;&lt;code&gt;## Reproducibility info
library(&amp;#39;devtools&amp;#39;)
options(width = 120)
session_info()&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Session info ----------------------------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##  setting  value                       
##  version  R version 3.4.3 (2017-11-30)
##  system   x86_64, darwin15.6.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  tz       America/New_York            
##  date     2018-03-10&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Packages --------------------------------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##  package       * version date       source                               
##  backports       1.1.2   2017-12-13 CRAN (R 3.4.3)                       
##  base          * 3.4.3   2017-12-07 local                                
##  bibtex          0.4.2   2017-06-30 CRAN (R 3.4.1)                       
##  blogdown        0.5.10  2018-03-10 Github (lcolladotor/blogdown@471b086)
##  bookdown        0.7     2018-02-18 cran (@0.7)                          
##  colorout      * 1.2-0   2018-02-19 Github (jalvesaq/colorout@2f01173)   
##  compiler        3.4.3   2017-12-07 local                                
##  datasets      * 3.4.3   2017-12-07 local                                
##  devtools      * 1.13.5  2018-02-18 CRAN (R 3.4.3)                       
##  digest          0.6.15  2018-01-28 CRAN (R 3.4.3)                       
##  evaluate        0.10.1  2017-06-24 CRAN (R 3.4.1)                       
##  graphics      * 3.4.3   2017-12-07 local                                
##  grDevices     * 3.4.3   2017-12-07 local                                
##  htmltools       0.3.6   2017-04-28 CRAN (R 3.4.0)                       
##  httr            1.3.1   2017-08-20 CRAN (R 3.4.1)                       
##  jsonlite        1.5     2017-06-01 CRAN (R 3.4.0)                       
##  knitcitations * 1.0.8   2017-07-04 CRAN (R 3.4.1)                       
##  knitr           1.20    2018-02-20 cran (@1.20)                         
##  lubridate       1.7.3   2018-02-27 CRAN (R 3.4.3)                       
##  magrittr        1.5     2014-11-22 CRAN (R 3.4.0)                       
##  memoise         1.1.0   2017-04-21 CRAN (R 3.4.0)                       
##  methods       * 3.4.3   2017-12-07 local                                
##  plyr            1.8.4   2016-06-08 CRAN (R 3.4.0)                       
##  R6              2.2.2   2017-06-17 CRAN (R 3.4.0)                       
##  Rcpp            0.12.15 2018-01-20 CRAN (R 3.4.3)                       
##  RefManageR      0.14.20 2017-08-17 CRAN (R 3.4.1)                       
##  rmarkdown       1.9     2018-03-01 cran (@1.9)                          
##  rprojroot       1.3-2   2018-01-03 CRAN (R 3.4.3)                       
##  stats         * 3.4.3   2017-12-07 local                                
##  stringi         1.1.6   2017-11-17 CRAN (R 3.4.2)                       
##  stringr         1.3.0   2018-02-19 cran (@1.3.0)                        
##  tools           3.4.3   2017-12-07 local                                
##  utils         * 3.4.3   2017-12-07 local                                
##  withr           2.1.1   2017-12-19 CRAN (R 3.4.3)                       
##  xfun            0.1     2018-01-22 CRAN (R 3.4.3)                       
##  xml2            1.2.0   2018-01-24 CRAN (R 3.4.3)                       
##  yaml            2.1.18  2018-03-08 cran (@2.1.18)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="references" class="section level3"&gt;
&lt;h3&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; &lt;a id='cite-Boettiger_2017'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2017&lt;/a&gt;) and blog built using &lt;code&gt;blogdown&lt;/code&gt; (&lt;a href='https://github.com/rstudio/blogdown'&gt;Xie, Hill, and Thomas, 2017&lt;/a&gt;).&lt;/p&gt;
&lt;pre class="r"&gt;&lt;code&gt;## Chunk normaly with options:  results = &amp;#39;asis&amp;#39;, echo = FALSE, cache = FALSE
## Print bibliography
bibliography(style = &amp;#39;html&amp;#39;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;a id='bib-Boettiger_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Boettiger_2017"&gt;[1]&lt;/a&gt;&lt;cite&gt; C. Boettiger. &lt;em&gt;knitcitations: Citations for ‘Knitr’ Markdown Files&lt;/em&gt;. R package version 1.0.8. 2017. URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id='bib-Xie_2017'&gt;&lt;/a&gt;&lt;a href="#cite-Xie_2017"&gt;[2]&lt;/a&gt;&lt;cite&gt; Y. Xie, A. P. Hill and A. Thomas. &lt;em&gt;blogdown: Creating Websites with R Markdown&lt;/em&gt;. ISBN 978-0815363729. Boca Raton, Florida: Chapman and Hall/CRC, 2017. URL: &lt;a href="https://github.com/rstudio/blogdown"&gt;https://github.com/rstudio/blogdown&lt;/a&gt;.&lt;/cite&gt;
&lt;/p&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Updating R</title>
      <link>https://lcolladotor.github.io/2017/05/04/updating-r/</link>
      <pubDate>Thu, 04 May 2017 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2017/05/04/updating-r/</guid>
      <description>&lt;p&gt;As you might know by now, the latest R version was recently released (R 3.4.0). That means that you are &lt;em&gt;highly&lt;/em&gt; encouraged to update your R installation. There are several ways to do this some of which are documented in these other blog posts: 
&lt;a href="https://www.r-statistics.com/2013/03/updating-r-from-r-on-windows-using-the-installr-package/" target="_blank" rel="noopener"&gt;Tal Galili, 2013&lt;/a&gt;, 
&lt;a href="https://www.datascienceriot.com/how-to-upgrade-r-without-losing-your-packages/kris/" target="_blank" rel="noopener"&gt;Kris Eberwein, 2015&lt;/a&gt;. You would think that it&amp;rsquo;s just a matter of downloading the latest R installer for your OS, installing it, and continuing your analysis. The reality is a bit more complicated. The following short steps will make your life easier.&lt;/p&gt;
&lt;h2 id="save-your-list-of-currently-installed-packages"&gt;Save your list of currently installed packages&lt;/h2&gt;
&lt;p&gt;If you want to continue using R with all the packages you previously had installed, the best way is to save the list of packages you currently have before installing a new R version. You can do so with these lines of code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## Change accordingly
list_dir &amp;lt;- '/Users/lcollado/Dropbox/Computing/R'

## Get the list of installed packages
installed &amp;lt;- dir(.libPaths())

## Save the list for later use
save(installed, file = file.path(list_dir, paste0(Sys.Date(), '-installed.Rdata')))

## Explore the list
head(installed)

## [1] &amp;quot;abind&amp;quot;   &amp;quot;acepack&amp;quot; &amp;quot;ada&amp;quot;     &amp;quot;AER&amp;quot;     &amp;quot;affy&amp;quot;    &amp;quot;affyio&amp;quot;

length(installed)

## [1] 611
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="install-latest-r"&gt;Install latest R&lt;/h2&gt;
&lt;p&gt;Ok, now you have a list of installed packages. It&amp;rsquo;s like a restore point. Next, you need to get the latest R installer for your OS from 
&lt;a href="https://cran.r-project.org/" target="_blank" rel="noopener"&gt;CRAN&lt;/a&gt; and install the latest R. For example, for a Mac that would be 
&lt;a href="https://cran.r-project.org/bin/macosx/R-3.4.0.pkg" target="_blank" rel="noopener"&gt;R-3.4.0.pkg&lt;/a&gt;. Install it as usual.&lt;/p&gt;
&lt;h2 id="restore-your-packages"&gt;Restore your packages&lt;/h2&gt;
&lt;p&gt;By now you have a new R version installed but without all your favorite packages. So, how do you install them? You just need to open your latest list of installed packages and install them. Now, I&amp;rsquo;m a Bioconductor user which means that some of my packages are not on CRAN. But the following code will work for you even if all the packages you use are from CRAN.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## Change accordingly
list_dir &amp;lt;- '/Users/lcollado/Dropbox/Computing/R'

## Find the corresponding Rdata files
previous &amp;lt;- dir(path = list_dir, pattern = 'installed.Rdata')

## Load the latest one
load(file.path(list_dir, previous[length(previous)]))

## Just checking it
head(installed)

## [1] &amp;quot;abind&amp;quot;   &amp;quot;acepack&amp;quot; &amp;quot;ada&amp;quot;     &amp;quot;AER&amp;quot;     &amp;quot;affy&amp;quot;    &amp;quot;affyio&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, get the list of current R packages you have installed. Every new R installation comes with a few of them (the &lt;em&gt;base&lt;/em&gt; packages). You don&amp;rsquo;t need to install those.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;current &amp;lt;- dir(.libPaths())
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally, install the missing packages&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## For Bioconductor and CRAN packages
install.packages(&amp;quot;BiocManager&amp;quot;)
BiocManager::install(installed[!installed %in% current])
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and now you can continue on with your analysis &#128516; You didn&amp;rsquo;t even need to figure out the best order to install the packages!&lt;/p&gt;
&lt;h2 id="github-packages"&gt;GitHub packages&lt;/h2&gt;
&lt;p&gt;Some of your favorite R packages might only exist via GitHub. This list is likely short since most packages get distributed via CRAN. But if that&amp;rsquo;s the case, you can see which packages are missing by running:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## Check which packages are missing
current_post_installation &amp;lt;- dir(.libPaths())
installed[!installed %in% current_post_installation]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For example, in my case I use the 
&lt;a href="https://github.com/jalvesaq/colorout" target="_blank" rel="noopener"&gt;colorout&lt;/a&gt; package which lives only in GitHub. I have to install that one manually:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;install.packages('devtools')
library('devtools')
install_github(&amp;quot;jalvesaq/colorout&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Other times a package might not be compiling for the new R version or might no longer be supported (defunct).&lt;/p&gt;
&lt;h2 id="misc-for-bioconductor-developers"&gt;Misc for Bioconductor developers&lt;/h2&gt;
&lt;p&gt;If you are a Bioconductor developer or are planning on becoming one, then you need 2 versions of R at all times. One R for the bioc-release branch and another one for the bioc-devel branch. Sometimes it&amp;rsquo;s the same R version sometimes it&amp;rsquo;s not depending on the month of the year. Right now, Bioc-release (3.5) uses R 3.4.0 and Bioc-devel (3.6) also uses R 3.4.0. 
&lt;a href="http://r.research.att.com/" target="_blank" rel="noopener"&gt;R Switch&lt;/a&gt; for Mac users will be your friend. I can&amp;rsquo;t find the old bioc-devel mailing list thread where I first learned this, but the idea is to download the latest R tar ball, change the name from 3.4 to something else (3.4devel in my case), put it back together into a tar ball and then use this tar ball to install a second R version.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;## Download latest R tarball
wget http://r.research.att.com/el-capitan/R-3.4-branch/R-3.4-branch-el-capitan-sa-x86_64.tar.gz

## Un-tar it
tar -xvf R-3.4-branch-el-capitan-sa-x86_64.tar.gz

## Renamed files from 3.4 to 3.4 devel
mv Library/Frameworks/R.framework/Versions/3.4 Library/Frameworks/R.framework/Versions/3.4devel

## Put it back in a tar ball
tar -cvzf Rlib.tgz Library

## Install it
sudo tar fvxz Rlib.tgz -C /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There you go:&lt;/p&gt;
&lt;center&gt;
&lt;img alt = 'Rswitch' width='400' src='http://lcolladotor.github.io/figs/2017-05-04-updateR/rswitch.png' /&gt;
&lt;/center&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## Reproducibility info
library('devtools')
options(width = 120)
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-04

## Packages ---------------------------------------------------------------------------------------------------------------

##  package       * version date       source        
##  BiocInstaller * 1.27.2  2017-05-04 Bioconductor  
##  devtools      * 1.12.0  2016-12-05 CRAN (R 3.4.0)
##  digest          0.6.12  2017-01-27 CRAN (R 3.4.0)
##  evaluate        0.10    2016-10-11 cran (@0.10)  
##  knitr         * 1.15.1  2016-11-22 cran (@1.15.1)
##  magrittr        1.5     2014-11-22 cran (@1.5)   
##  memoise         1.1.0   2017-04-21 CRAN (R 3.4.0)
##  stringi         1.1.5   2017-04-07 cran (@1.1.5) 
##  stringr         1.2.0   2017-02-18 cran (@1.2.0) 
##  withr           1.0.2   2016-06-20 CRAN (R 3.4.0)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="want-more"&gt;Want more?&lt;/h3&gt;
&lt;p&gt;Check other 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt; student and alumni blogs at 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt; as well as topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>How to ask for help for Bioconductor packages</title>
      <link>https://lcolladotor.github.io/2017/03/06/how-to-ask-for-help-for-bioconductor-packages/</link>
      <pubDate>Mon, 06 Mar 2017 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2017/03/06/how-to-ask-for-help-for-bioconductor-packages/</guid>
      <description>&lt;div class="alert alert-note"&gt;
  &lt;div&gt;
    tl;dr Please post your question at the Bioconductor support website 
&lt;a href="https://support.bioconductor.org/" target="_blank" rel="noopener"&gt;https://support.bioconductor.org/&lt;/a&gt; and check the posting guide 
&lt;a href="http://www.bioconductor.org/help/support/posting-guide/" target="_blank" rel="noopener"&gt;http://www.bioconductor.org/help/support/posting-guide/&lt;/a&gt;. It&amp;rsquo;s important that you provide reproducible code and information about your R session.
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Recently I have been getting more questions about several packages I maintain. It&amp;rsquo;s great to see more interest from users, but at the same time most questions lack the information I need to help the users. I have also gotten most of the questions via email, which is why I am writing this post. As of today, I will no longer answer questions related to my Bioconductor packages via personal emails. This might sound harsh, but hopefully the rest of this post will convince you that it&amp;rsquo;s the best thing to do. You might also be interested in the basics of using 
&lt;a href="http://bioconductor.org/packages/release/bioc/vignettes/derfinder/inst/doc/derfinder-quickstart.html#basics" target="_blank" rel="noopener"&gt;derfinder&lt;/a&gt;, 
&lt;a href="http://bioconductor.org/packages/release/bioc/vignettes/regionReport/inst/doc/regionReport.html#basics" target="_blank" rel="noopener"&gt;regionReport&lt;/a&gt; or 
&lt;a href="http://bioconductor.org/packages/release/bioc/vignettes/recount/inst/doc/recount-quickstart.html#basics" target="_blank" rel="noopener"&gt;recount&lt;/a&gt;, among others.&lt;/p&gt;
&lt;p&gt;The Bioconductor project is a community project and it benefits from users interacting in public venues. When a user asks a question at the 
&lt;a href="https://support.bioconductor.org/" target="_blank" rel="noopener"&gt;Bioconductor support website&lt;/a&gt;, they are providing information that future users might be interested in. That is, the user (&lt;strong&gt;U1&lt;/strong&gt;) is contributing information to the overall documentation around the Bioconductor package they are asking a question about. Ideally, a new user (&lt;strong&gt;U2&lt;/strong&gt;) can then read through the question U1 wrote, check the solution, and move on. This is one of the main reasons why we (developers) want questions to be well documented. There are a couple of quick things that U1 can check that will make their question much more useful to the community.&lt;/p&gt;
&lt;center&gt;
&lt;a href="http://www.bioconductor.org/help/support/posting-guide/"&gt;&lt;img alt = 'shinycsv landing' width='600' src='http://lcolladotor.github.io/figs/2017-03-06-bioc-support/question.png' /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;h2 id="session-information"&gt;Session information&lt;/h2&gt;
&lt;p&gt;One of the strengths of Bioconductor is that all the packages have vignettes and lots of documentation. The packages are also checked regularly and must pass some tests. That also means that packages can change frequently, at least more frequently than CRAN packages. There&amp;rsquo;s also the added complexity that at any given point in time there is a release branch and a development branch. This means that there are many variables and saying that you are using the &amp;ldquo;latest version&amp;rdquo; doesn&amp;rsquo;t mean much to the developer. All of this information and more is part of the &lt;em&gt;R session information&lt;/em&gt;. That is why I and others request users to post their session information. It&amp;rsquo;s very easy to get, simply run the following code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## Install devtools if needed
# install.packages('devtools')

## Reproducibility info
library('devtools')
options(width = 120)
session_info()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The output might be too long to post in the 
&lt;a href="https://support.bioconductor.org/" target="_blank" rel="noopener"&gt;Bioconductor support website&lt;/a&gt;. The easy solution is to save the information you want displayed in a 
&lt;a href="https://gist.github.com/" target="_blank" rel="noopener"&gt;gist&lt;/a&gt;. Then simply add the gist link in your question. Note that you need to have the link under &amp;ldquo;text&amp;rdquo; formatting and not &amp;ldquo;code&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="code-to-reproduce-the-error"&gt;Code to reproduce the error&lt;/h2&gt;
&lt;p&gt;If U1 includes the session information, their question will be pretty good, but not ideal yet. Many of the questions I&amp;rsquo;ve been asked do not include code for me to figure out the exact steps of what they were doing. A lot of times I can infer pieces of what they were doing from their description of the problem. But doing so takes quite a bit of my time and effort, and is still not perfect. Now imagine that U2 is reading through the question: they would probably get lost!&lt;/p&gt;
&lt;p&gt;There is a wide range of things that U1 could have done. To help the developer, the best thing is for the user to include the code that lead to the error. The code should include how the data was loaded, so that the developer can run it themselves and check in more detail what went wrong. This means providing a small subset of the data or using some publicly available data.&lt;/p&gt;
&lt;p&gt;I realize that writing code that reproduces the error is not easy. But it helps a lot for learning more about R and Bioconductor. I can tell you that I went through the same process, and in my experience you can find out what you are doing wrong by writing the reproducible code.&lt;/p&gt;
&lt;h2 id="extra"&gt;Extra&lt;/h2&gt;
&lt;p&gt;Here are some other tips that are useful.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you run &lt;code&gt;traceback()&lt;/code&gt; immediately after getting the error and include the output in your question, that would be great. It makes it easier to check at what point the code failed and produced the error.&lt;/li&gt;
&lt;li&gt;Recently when I ask questions myself, I include the &amp;ldquo;non-evaluated code&amp;rdquo; (clean code in your script) and &amp;ldquo;evaluated code&amp;rdquo; (think of the R console: a mix of code and output). The non-evaluated code makes it easier for others to copy-paste the code into their R session without having to deal with any formatting issues (
&lt;a href="https://github.com/leekgroup/recount/issues/8#issue-210124094" target="_blank" rel="noopener"&gt;example&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;If you encounter a new error, post a new question instead of &amp;ldquo;replying&amp;rdquo; to the first one.&lt;/li&gt;
&lt;li&gt;Introduce yourself.&lt;/li&gt;
&lt;li&gt;Be polite.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By now you should be ready to post some great questions! Thanks for contributing to the Bioconductor community.&lt;/p&gt;
&lt;h3 id="want-more"&gt;Want more?&lt;/h3&gt;
&lt;p&gt;Check other 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt; student and alumni blogs at 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt; as well as topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Easily explore a table with shinycsv</title>
      <link>https://lcolladotor.github.io/2017/01/20/easily-explore-a-table-with-shinycsv/</link>
      <pubDate>Fri, 20 Jan 2017 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2017/01/20/easily-explore-a-table-with-shinycsv/</guid>
      <description>&lt;p&gt;Have you ever had to explore a table with data? I believe the answer is &lt;em&gt;yes&lt;/em&gt; for most people that work at a computer or even just use it for communicating with their friends and family. Tables of data pop up everywhere, for example in personal finance. Websites like 
&lt;a href="https://www.mint.com/" target="_blank" rel="noopener"&gt;Mint.com&lt;/a&gt; allow you to download your transactions in a 
&lt;a href="https://en.wikipedia.org/wiki/Comma-separated_values" target="_blank" rel="noopener"&gt;CSV&lt;/a&gt; file called &lt;code&gt;transactions.csv&lt;/code&gt;. CSV is one of the many formats for storing tables and most likely when you try to open the &lt;code&gt;transactions.csv&lt;/code&gt; file, it will open with Excel. Now, can you make a quick figure of one of your columns in your table?&lt;/p&gt;
&lt;p&gt;Some will answer yes, others no. The basic issue is that it&amp;rsquo;s not &lt;em&gt;super&lt;/em&gt; easy to explore your data in Excel or similar programs. Wait, shouldn&amp;rsquo;t it be easy? &#128533;&lt;/p&gt;
&lt;p&gt;What if you want to subset your data and want to re-make the plot? How about getting some simple statistics like the mean or frequency of some categories for a given variable? &#128552; These are some of the immediate tasks that are helpful when exploring data. Visually, making figures with two variables is also very common.&lt;/p&gt;
&lt;p&gt;Programmers and experts in Excel, Stata, &lt;code&gt;R&lt;/code&gt; among other options can perform these data explorations. It might take them a little bit of time to write the code or remember it or use the user interface menu of their program of choice. But what about everyone else?&lt;/p&gt;
&lt;p&gt;At the 
&lt;a href="http://www.libd.org/" target="_blank" rel="noopener"&gt;Lieber Institute for Brain Development&lt;/a&gt; where I work, it&amp;rsquo;s common for us to exchange data in tables, and thus explore data. That&amp;rsquo;s why we created &lt;code&gt;shinycsv&lt;/code&gt; &lt;a id='cite-shinycsv'&gt;&lt;/a&gt;(&lt;a href='https://github.com/LieberInstitute/shinycsv'&gt;Collado-Torres, Semick, and Jaffe, 2016&lt;/a&gt;). It&amp;rsquo;s an R package &lt;a id='cite-cran'&gt;&lt;/a&gt;(&lt;a href='https://www.R-project.org/'&gt;R Core Team, 2016&lt;/a&gt;) that contains a &lt;code&gt;shiny&lt;/code&gt; &lt;a id='cite-shiny'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=shiny'&gt;Chang, Cheng, Allaire, Xie, et al., 2017&lt;/a&gt;) application that allows users to interactively explore a table.&lt;/p&gt;
&lt;p&gt;Installing &lt;code&gt;R&lt;/code&gt; is a pretty high bar, that&amp;rsquo;s why we are hosting this application at 
&lt;a href="https://jhubiostatistics.shinyapps.io/shinycsv/" target="_blank" rel="noopener"&gt;https://jhubiostatistics.shinyapps.io/shinycsv/&lt;/a&gt;. Try it out!&lt;/p&gt;
&lt;center&gt;
&lt;a href="https://jhubiostatistics.shinyapps.io/shinycsv/"&gt;&lt;img alt = 'shinycsv landing' width='600' src='http://lcolladotor.github.io/figs/2017-01-20-shinycsv/landing.png' /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;h2 id="shinycsv-application"&gt;shinycsv application&lt;/h2&gt;
&lt;p&gt;The application includes data about cars to demonstrate what it can do. It&amp;rsquo;s a small data set that is commonly used for demonstration purposes. Anyhow, in the application you&amp;rsquo;ll notice a few tabs.&lt;/p&gt;
&lt;p&gt;The application shows the &lt;em&gt;&lt;strong&gt;raw data&lt;/strong&gt;&lt;/em&gt; in an interactive table that allows you to subset the observations by some criteria, search in the table, and sort in different ways. The &lt;em&gt;&lt;strong&gt;raw summary&lt;/strong&gt;&lt;/em&gt; tab shows quick statistical summaries which depend on the variable type (numerical, categorical, etc). If you interacted with the table in &lt;em&gt;raw data&lt;/em&gt; then the summaries at &lt;em&gt;raw summary&lt;/em&gt; will be based on the subset you selected.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;&lt;strong&gt;one variable&lt;/strong&gt;&lt;/em&gt; and &lt;em&gt;&lt;strong&gt;two variables&lt;/strong&gt;&lt;/em&gt; tabs are for making figures based on one or two variables at a time. The code in &lt;code&gt;shinycsv&lt;/code&gt; tries to guess what&amp;rsquo;s the best figure for a given type of variable and in case that you are interested in learning R, it also shows the exact code you can use to reproduce the figure in your computer. We added this feature to excite users about learning R. And it&amp;rsquo;s useful for advanced users too that might want to customize the resulting figures. Hm&amp;hellip;, you don&amp;rsquo;t like the colors we chose for the figure? Well go to &lt;em&gt;&lt;strong&gt;plot colors&lt;/strong&gt;&lt;/em&gt;, choose another color, and come back to see your new figure with the color of your choosing. &#128516;&lt;/p&gt;
&lt;p&gt;Hm&amp;hellip; but what if you don&amp;rsquo;t have a CSV file? Well, &lt;code&gt;shinycsv&lt;/code&gt; can handle many different tables thanks to &lt;code&gt;rio&lt;/code&gt; &lt;a id='cite-rio'&gt;&lt;/a&gt;(&lt;a href='#bib-rio'&gt;Chan, Chan, Leeper, and Becker, 2016&lt;/a&gt;). Even Excel sheets! &#128521;&lt;/p&gt;
&lt;p&gt;So, go ahead and test it out! We&amp;rsquo;ll be glad to hear your feedback at 
&lt;a href="https://github.com/LieberInstitute/shinycsv/issues" target="_blank" rel="noopener"&gt;LieberInstitute/shinycsv&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="notes"&gt;Notes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Note that when I referred to tables earlier, I referred to square tables with different variables (age, height, weight, etc) as columns as observations as rows. That is, Excel files with a single sheet with no comments or figures inside the Excel file.&lt;/li&gt;
&lt;li&gt;Are you interested in learning more about &lt;code&gt;R&lt;/code&gt; and &lt;code&gt;shiny&lt;/code&gt;? Maybe you&amp;rsquo;ll want to take a look at the 
&lt;a href="https://jhubiostatistics.shinyapps.io/shinycsv-showcase/" target="_blank" rel="noopener"&gt;showcase mode version of the application&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If you use &lt;code&gt;shinycsv::explore()&lt;/code&gt; locally, the file size limit is increased to 500 MB. Although at that point you might want to consider using &lt;code&gt;R&lt;/code&gt; or another programming language.&lt;/li&gt;
&lt;li&gt;What about casting variables? If you want to have fine control about casting the variables, save your data in a RData file. Sure, this requires an R user.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;## Reproducibility info
library('devtools')
options(width = 120)
session_info()

## Session info -----------------------------------------------------------------------------------------------------------

##  setting  value                                             
##  version  R Under development (unstable) (2016-10-26 r71594)
##  system   x86_64, darwin13.4.0                              
##  ui       X11                                               
##  language (EN)                                              
##  collate  en_US.UTF-8                                       
##  tz       America/New_York                                  
##  date     2017-01-20

## Packages ---------------------------------------------------------------------------------------------------------------

##  package       * version  date       source        
##  bibtex          0.4.0    2014-12-31 CRAN (R 3.4.0)
##  bitops          1.0-6    2013-08-17 CRAN (R 3.4.0)
##  devtools      * 1.12.0   2016-12-05 CRAN (R 3.4.0)
##  digest          0.6.11   2017-01-03 CRAN (R 3.4.0)
##  evaluate        0.10     2016-10-11 CRAN (R 3.4.0)
##  httr            1.2.1    2016-07-03 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)
##  lubridate       1.6.0    2016-09-13 CRAN (R 3.4.0)
##  magrittr        1.5      2014-11-22 CRAN (R 3.4.0)
##  memoise         1.0.0    2016-01-29 CRAN (R 3.4.0)
##  plyr            1.8.4    2016-06-08 CRAN (R 3.4.0)
##  R6              2.2.0    2016-10-05 CRAN (R 3.4.0)
##  Rcpp            0.12.9   2017-01-14 CRAN (R 3.4.0)
##  RCurl           1.95-4.8 2016-03-01 CRAN (R 3.4.0)
##  RefManageR      0.13.1   2016-11-13 CRAN (R 3.4.0)
##  RJSONIO         1.3-0    2014-07-28 CRAN (R 3.4.0)
##  stringi         1.1.2    2016-10-01 CRAN (R 3.4.0)
##  stringr         1.1.0    2016-08-19 CRAN (R 3.4.0)
##  withr           1.0.2    2016-06-20 CRAN (R 3.4.0)
##  XML             3.98-1.5 2016-11-10 CRAN (R 3.4.0)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; &lt;a id='cite-knitcitations'&gt;&lt;/a&gt;(&lt;a href='https://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2015&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-knitcitations'&gt;&lt;/a&gt;&lt;a href="#cite-knitcitations"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for 'Knitr' Markdown Files&lt;/em&gt;.
R package version 1.0.7.
2015.
URL: &lt;a href="https://CRAN.R-project.org/package=knitcitations"&gt;https://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-rio'&gt;&lt;/a&gt;&lt;a href="#cite-rio"&gt;[2]&lt;/a&gt;&lt;cite&gt;
C. Chan, G. C. Chan, T. J. Leeper and J. Becker.
&lt;em&gt;rio: A Swiss-army knife for data file I/O&lt;/em&gt;.
R package version 0.4.16.
2016.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-shiny'&gt;&lt;/a&gt;&lt;a href="#cite-shiny"&gt;[3]&lt;/a&gt;&lt;cite&gt;
W. Chang, J. Cheng, J. Allaire, Y. Xie, et al.
&lt;em&gt;shiny: Web Application Framework for R&lt;/em&gt;.
R package version 1.0.0.
2017.
URL: &lt;a href="https://CRAN.R-project.org/package=shiny"&gt;https://CRAN.R-project.org/package=shiny&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-shinycsv'&gt;&lt;/a&gt;&lt;a href="#cite-shinycsv"&gt;[4]&lt;/a&gt;&lt;cite&gt;
L. Collado-Torres, S. Semick and A. E. Jaffe.
&lt;em&gt;shinycsv: Explore a table interactively in a shiny application&lt;/em&gt;.
R package version 0.99.7.
2016.
URL: &lt;a href="https://github.com/LieberInstitute/shinycsv"&gt;https://github.com/LieberInstitute/shinycsv&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-cran'&gt;&lt;/a&gt;&lt;a href="#cite-cran"&gt;[5]&lt;/a&gt;&lt;cite&gt;
R Core Team.
&lt;em&gt;R: A Language and Environment for Statistical Computing&lt;/em&gt;.
R Foundation for Statistical Computing.
Vienna, Austria, 2016.
URL: &lt;a href="https://www.R-project.org/"&gt;https://www.R-project.org/&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;h3 id="want-more"&gt;Want more?&lt;/h3&gt;
&lt;p&gt;Check other 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt; student blogs at 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt; as well as topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Finding possible class schedules</title>
      <link>https://lcolladotor.github.io/2016/08/02/materias/</link>
      <pubDate>Tue, 02 Aug 2016 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2016/08/02/materias/</guid>
      <description>&lt;p&gt;Over the weekend my brother wanted to figure out his class schedule for the next semester. He is a veterinary medicine and zootechnology student at UNAM. For this upcoming semester there is a set of classes he has to take and each has 8 or so instructor options. The website where he finds the class times lists about 8 pre-constructed class schedules. So he normally finds one he likes quite a bit, and then manually starts checking if he can change X instructor for Y for a given class. He does this based on the referalls and information he has gathered about the instructors, plus he factors in whether it&amp;rsquo;d be an overall better schedule. For example, he might prefer to have a packed Tuesday if that means that he can leave early on Friday and avoid classes on Saturday.&lt;/p&gt;
&lt;p&gt;The problem is that it&amp;rsquo;s very easy to make a mistake. You (well he) gets all excited thinking that he&amp;rsquo;s found the perfect schedule. Only to then realize that there is a conflict between two classes. Or that the practical portion of a class is in a location one hour away from the university, meaning that the schedule he has selected won&amp;rsquo;t work. This process is very frustrating.&lt;/p&gt;
&lt;p&gt;I was watching him and I started to think if I could help him with some code. Turns out that it was straightforward to write some code to find which options are valid. Once I wrote a test case, it took us like half an hour to fill out the data. I know that tomorrow is when he and his classmates start registering for classes, so this information might help his classmates.&lt;/p&gt;
&lt;p&gt;First, I define some helper functions. These are rather straightforward but I&amp;rsquo;ll be using them later on. For example, &lt;code&gt;dias()&lt;/code&gt; is just there for typing less.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Helper functions
dias &amp;lt;- function(d, i) {
    paste0(d, i)
}

extract &amp;lt;- function(m, p) {
    m[[p]]
}

extract_names &amp;lt;- function(m, p) {
    names(m)[p]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next comes the input information. I organized it in a set of nested &lt;code&gt;list&lt;/code&gt; objects. The schedule is stored as a character vector. For example, Lucia Eliana&amp;rsquo;s class meets on Wednesdays (__M__iercoles in Spanish) from 9 to 11 am. I only keep the starting hours (9 and 10 am) because otherwise the code won&amp;rsquo;t detect valid opitons that include another class that starts at 11 am. For classes that are 1 hour away from the university, we included 1 hour before and 1 hour after the class.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Input class/prof info and schedule
materias &amp;lt;- list(
    repro = list(
        'lucia eliana' = c(dias('m', 9:10), dias('j', 9:10), dias('v', 8:13)),
        'esquivel lacroix' = c(dias('l', 14:15), dias('ma', 12:18), dias('m', 14:15)),
        'ismael porras' = c(dias('l', 9:10), dias('m', 8:14), dias('j', 9:10)),
        'esquivel lacroix 2' = c(dias('l', 14:15), dias('m', 14:15), dias('v', 12:18)),
        'salvador galina' = c(dias('ma', 8:13), dias('j', 9:10), dias('v', 9:10)),
        'alberto balcazar' = c(dias('l', 15:16), dias('j', 12:18), dias('v', 14:15)),
        'ana myriam boeta' = c(dias('l', 8:13), dias('m', 10:11), dias('v', 9:10)),
        'rafael eduardo paz' = c(dias('l', 11:17), dias('j', 14:15), dias('v', 16:17)),
        'juan heberth' = c(dias('ma', 9:10), dias('m', 11:17), dias('v', 11:12)),
        'vicente octavio mejia' = c(dias('ma', 8:17))
    ),
    economia = list(
        'valentin efren espinoza' = c(dias('l', 8:10), dias('ma', 9:11)),
        'maria del pilar velazquez' = c(dias('l', 16:18), dias('m', 16:18)),
        'arturo alonso pesado' = c(dias('l', 11:13), dias('j', 11:13)),
        'laura mendez' = c(dias('ma', 13:15), dias('m', 18:20)),
        'laura mendez 2' = c(dias('j', 11:13), dias('v', 11:13)),
        'manuela garcia' = c(dias('l', 17:19), dias('v', 16:18)),
        'francisco alejandro' = c(dias('ma', 7:9), dias('j', 7:9)),
        'isaac reyes' = c(dias('m', 13:15), dias('v', 13:15)),
        'jose luis tinoco' = c(dias('ma', 12:14), dias('m', 9:11)),
        'isaac reyes 2' = c(dias('l', 14:16), dias('ma', 14:16))
        
    ),
    bacterianas = list(
        'jose luis gutierrez' = dias('s', 8:11),
        'rodrigo mena' = c(dias('ma', 18:19), dias('j', 18:19)),
        'beatriz arellano' = c(dias('l', 7:8), dias('ma', 10:11)),
        'de la pena, ramirez ortega' = c(dias('j', 18:19), dias('v', 18:19)),
        'ramirez ortega' = c(dias('m', 7:8), dias('j', 7:8)),
        'rodrigo mena 2' = c(dias('ma', 16:17), dias('m', 16:17)),
        'de la pena' = dias('s', 8:11),
        'efren diaz aparicio' = dias('s', 8:11),
        'lucia del carmen favila' = dias('s', 8:11)
    ),
    parasitarias = list(
        'cintli martinez' = c(dias('j', 16:17), dias('v', 18:20)),
        'osvaldo froylan' = c(dias('ma', 18:19), dias('j', 18:20)),
        'maria quintero, agustin perez' = c(dias('ma', 13:14), dias('m', 7:9)),
        'maria quintero' = c(dias('m', 16:18), dias('j', 16:17)),
        'evangelina romero' = c(dias('ma', 7:8), dias('v', 7:9)),
        'guadarrama 01' = c(dias('m', 7:8), dias('j', 11:13)),
        'guadarrama 03' = c(dias('ma', 13:15), dias('v', 7:8)),
        'guadarrama 04' = c(dias('l', 16:17), dias('ma', 18:20)),
        'guadarrama 05' = c(dias('l', 7:9), dias('j', 7:8))
    ),
    diagnosticas = list(
        '1701' = c(dias('l', 11:13), dias('m', 11:16)),
        '1702' = c(dias('j', 13:15), dias('v', 13:18)),
        '1703' = c(dias('ma', 7:9), dias('v', 8:13)),
        '1704' = c(dias('l', 18:20), dias('j', 13:18)),
        '1705' = c(dias('l', 11:13), dias('m', 7:11)),
        '1706' = c(dias('ma', 15:17), dias('m', 15:19)),
        '1707' = c(dias('ma', 10:12), dias('j', 10:15)),
        '1708' = c(dias('l', 18:20), dias('ma', 15:19)),
        '1709' = c(dias('l', 11:13), dias('j', 8:13)),
        '1711' = c(dias('j', 13:15), dias('v', 10:13))
    )
)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now that the input information is complete, I use &lt;code&gt;expand.grid()&lt;/code&gt; to find out all the different possible options.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Get all the options
options &amp;lt;- expand.grid(lapply(materias, function(x) { seq_len(length(x))}))
dim(options)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 81000     5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There&amp;rsquo;s 81,00 of them including the classes that meet on Saturday. You can see why it&amp;rsquo;s a frustrating process to find which combination of classes work when doing this manually.&lt;/p&gt;
&lt;p&gt;Next, I explore all these options to find those that are valid, meaning that none of the classes overlap. I do this by finding which options have no duplicated hours from the character vectors defined earlier. Nothing fancy.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;valid &amp;lt;- apply(options, 1, function(input) {
    info &amp;lt;- mapply(extract, materias, input)
    !any(duplicated(unlist(info)))
})
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now that I have the valid options, I can find the names of the instructors for them. There&amp;rsquo;s 2,847 valid schedules in the end, out of the 81,000. That&amp;rsquo;s 3.5 percent!&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;valid_prof &amp;lt;- apply(options[valid, ], 1, function(input) {
    mapply(extract_names, materias, input)
})
ncol(valid_prof)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 2847
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can search the interactive version 
&lt;a href="https://lcolladotor.shinyapps.io/materias/" target="_blank" rel="noopener"&gt;here&lt;/a&gt; to select only the options with a given instructor. For example, in my brother&amp;rsquo;s case there are 30 valid options once he decided to prioritize two instructors as shown in the non-interactive table below.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Ideally, this code would create an interactive table, but it doesn't work for some reason:
#library('DT')
#datatable(t(valid_prof), options = list(pagingType='full_numbers', pageLength=10), rownames = FALSE)
valid_prof &amp;lt;- t(valid_prof)
rownames(valid_prof) &amp;lt;- seq_len(nrow(valid_prof))
top_options &amp;lt;- valid_prof[valid_prof[, 1] == 'lucia eliana' &amp;amp; valid_prof[, 2] %in% c('isaac reyes', 'isaac reyes 2'), ]
kable(top_options, format = 'markdown', row.names = TRUE)
&lt;/code&gt;&lt;/pre&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align:left"&gt;&lt;/th&gt;
&lt;th style="text-align:left"&gt;repro&lt;/th&gt;
&lt;th style="text-align:left"&gt;economia&lt;/th&gt;
&lt;th style="text-align:left"&gt;bacterianas&lt;/th&gt;
&lt;th style="text-align:left"&gt;parasitarias&lt;/th&gt;
&lt;th style="text-align:left"&gt;diagnosticas&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;5&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;jose luis gutierrez&lt;/td&gt;
&lt;td style="text-align:left"&gt;cintli martinez&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;11&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;rodrigo mena&lt;/td&gt;
&lt;td style="text-align:left"&gt;cintli martinez&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;14&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;beatriz arellano&lt;/td&gt;
&lt;td style="text-align:left"&gt;cintli martinez&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;19&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;ramirez ortega&lt;/td&gt;
&lt;td style="text-align:left"&gt;cintli martinez&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;25&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;de la pena&lt;/td&gt;
&lt;td style="text-align:left"&gt;cintli martinez&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;31&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;efren diaz aparicio&lt;/td&gt;
&lt;td style="text-align:left"&gt;cintli martinez&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;37&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia del carmen favila&lt;/td&gt;
&lt;td style="text-align:left"&gt;cintli martinez&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;46&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;jose luis gutierrez&lt;/td&gt;
&lt;td style="text-align:left"&gt;osvaldo froylan&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;50&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;beatriz arellano&lt;/td&gt;
&lt;td style="text-align:left"&gt;osvaldo froylan&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;58&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;ramirez ortega&lt;/td&gt;
&lt;td style="text-align:left"&gt;osvaldo froylan&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;67&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;de la pena&lt;/td&gt;
&lt;td style="text-align:left"&gt;osvaldo froylan&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;76&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;efren diaz aparicio&lt;/td&gt;
&lt;td style="text-align:left"&gt;osvaldo froylan&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;85&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia del carmen favila&lt;/td&gt;
&lt;td style="text-align:left"&gt;osvaldo froylan&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;123&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;jose luis gutierrez&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 01&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;130&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;rodrigo mena&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 01&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;134&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;beatriz arellano&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 01&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;137&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;de la pena, ramirez ortega&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 01&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;144&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;de la pena&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 01&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;151&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;efren diaz aparicio&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 01&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;158&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia del carmen favila&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 01&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;209&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;jose luis gutierrez&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 05&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;217&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;rodrigo mena&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 05&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;222&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;de la pena, ramirez ortega&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 05&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;232&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;de la pena&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 05&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;242&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;efren diaz aparicio&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 05&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;252&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia del carmen favila&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 05&lt;/td&gt;
&lt;td style="text-align:left"&gt;1701&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;872&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;jose luis gutierrez&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 05&lt;/td&gt;
&lt;td style="text-align:left"&gt;1704&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;885&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;de la pena&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 05&lt;/td&gt;
&lt;td style="text-align:left"&gt;1704&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;894&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;efren diaz aparicio&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 05&lt;/td&gt;
&lt;td style="text-align:left"&gt;1704&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align:left"&gt;903&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia eliana&lt;/td&gt;
&lt;td style="text-align:left"&gt;isaac reyes 2&lt;/td&gt;
&lt;td style="text-align:left"&gt;lucia del carmen favila&lt;/td&gt;
&lt;td style="text-align:left"&gt;guadarrama 05&lt;/td&gt;
&lt;td style="text-align:left"&gt;1704&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Reproducibility info
library('devtools')
session_info()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Session info --------------------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##  setting  value                       
##  version  R version 3.3.0 (2016-05-03)
##  system   x86_64, mingw32             
##  ui       RStudio (0.99.902)          
##  language (EN)                        
##  collate  English_United States.1252  
##  tz       America/Mexico_City         
##  date     2016-08-02
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Packages ------------------------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##  package   * version date       source        
##  devtools  * 1.12.0  2016-06-24 CRAN (R 3.3.1)
##  digest      0.6.9   2016-01-08 CRAN (R 3.3.0)
##  evaluate    0.9     2016-04-29 CRAN (R 3.3.0)
##  formatR     1.4     2016-05-09 CRAN (R 3.3.0)
##  highr       0.6     2016-05-09 CRAN (R 3.3.0)
##  knitr     * 1.13    2016-05-09 CRAN (R 3.3.0)
##  magrittr    1.5     2014-11-22 CRAN (R 3.3.0)
##  memoise     1.0.0   2016-01-29 CRAN (R 3.3.0)
##  rsconnect   0.4.3   2016-05-02 CRAN (R 3.3.0)
##  stringi     1.1.1   2016-05-27 CRAN (R 3.3.0)
##  stringr     1.0.0   2015-04-30 CRAN (R 3.3.0)
##  withr       1.0.2   2016-06-20 CRAN (R 3.3.1)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="want-more"&gt;Want more?&lt;/h3&gt;
&lt;p&gt;Check other 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt; student blogs at 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt; as well as topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Are you doing parallel computations in R? Then use BiocParallel</title>
      <link>https://lcolladotor.github.io/2016/03/07/BiocParallel/</link>
      <pubDate>Mon, 07 Mar 2016 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2016/03/07/BiocParallel/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s the morning of the first day of oral conferences at 
&lt;a href="https://twitter.com/search?q=%23ENAR2016&amp;amp;src=tyah" target="_blank" rel="noopener"&gt;#ENAR2016&lt;/a&gt;. I feel like I have a 
&lt;a href="https://en.wiktionary.org/wiki/Spidey-sense" target="_blank" rel="noopener"&gt;spidey sense&lt;/a&gt; since I woke up 3 min after an email from Jeff Leek; just a funny coincidence. Anyhow, I promised Valerie Obenchain at 
&lt;a href="https://twitter.com/hashtag/bioc2014" target="_blank" rel="noopener"&gt;#Bioc2014&lt;/a&gt; that I would write a post about one of my favorite Bioconductor packages: 
&lt;a href="http://www.bioconductor.org/packages/release/bioc/html/BiocParallel.html" target="_blank" rel="noopener"&gt;BiocParallel&lt;/a&gt; &lt;a id='cite-biocparallel'&gt;&lt;/a&gt;(&lt;a href='#bib-biocparallel'&gt;Morgan, Obenchain, Lang, and Thompson, 2016&lt;/a&gt;). By now it&amp;rsquo;s on the top 5% of downloaded Bioconductor packages, so many people know about it or are unaware that their favorite package uses it behind the scenes.&lt;/p&gt;
&lt;center&gt;
&lt;a href="http://www.bioconductor.org"&gt;&lt;img src="http://www.bioconductor.org/images/logo_bioconductor.gif" alt="BioconductorLogo" style="width: 260px;"/&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p&gt;While I haven&amp;rsquo;t blogged about &lt;code&gt;BiocParallel&lt;/code&gt; yet, I did give a presentation about it at our computing club back in April 2nd, 2015. See it 
&lt;a href="http://lcolladotor.github.io/BiocParallel-knitrBootstrap/" target="_blank" rel="noopener"&gt;here&lt;/a&gt; (
&lt;a href="https://github.com/lcolladotor/BiocParallel-knitrBootstrap" target="_blank" rel="noopener"&gt;source&lt;/a&gt;). I&amp;rsquo;m going to follow its structure in this post.&lt;/p&gt;
&lt;h2 id="parallel-computing"&gt;Parallel computing&lt;/h2&gt;
&lt;p&gt;Before even thinking about using &lt;code&gt;BiocParallel&lt;/code&gt; you have to decide whether parallel computing is the thing you need.&lt;/p&gt;
&lt;center&gt;
&lt;a href='http://gnoted.com/wp-content/uploads/2012/02/cloud_43-595x553.jpg'&gt;&lt;img alt = 'Cloud joke' height='553' src='http://lcolladotor.github.io/figs/2016-03-07-BiocParallel/cloud.jpg' /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p&gt;While I&amp;rsquo;m not talking about cloud computing, I still find this picture funny.&lt;/p&gt;
&lt;center&gt;
&lt;a href='http://www.mathworks.com/cmsimages/63635_wl_91710v00_po_fig2_wl.gif'&gt;&lt;img alt = 'Parallel diagram' height='400' src='http://lcolladotor.github.io/figs/2016-03-07-BiocParallel/parallel.gif' /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p&gt;There&amp;rsquo;s different types of parallel computing, but what I&amp;rsquo;m referring to here is called 
&lt;a href="https://en.wikipedia.org/wiki/Embarrassingly_parallel" target="_blank" rel="noopener"&gt;embarrassingly parallel&lt;/a&gt; where you have a task to do for a set of inputs, you split your inputs into subsets and perform the task on these subsets. Performing this task for one input a a time is called &lt;em&gt;serial programming&lt;/em&gt; and it&amp;rsquo;s what we do in most cases when using functions like &lt;code&gt;lapply()&lt;/code&gt; or &lt;code&gt;for&lt;/code&gt; loops.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;plot(y = 10 / (1:10), 1:10, xlab = 'Number of cores', ylab = 'Time',
    main = 'Ideal scenario', type = 'o', col = 'blue',
    cex = 2, cex.axis = 2, cex.lab = 1.5, cex.main = 2, pch = 16)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/figs/2016-03-07-BiocParallel/ideal-1.png" alt="center"&gt;&lt;/p&gt;
&lt;p&gt;You might be running a simulation for a different set of parameters (a parameter grid) and running each simulation could take some time. Parallel computing can help you speed up this problem. In the ideal scenario, the higher number of computing cores (units that evaluate subsets of your inputs) the less time you need to run your full analysis.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;plot(y = 10 / (1:10), 1:10, xlab = 'Number of cores', ylab = 'Time',
    main = 'Reality', type = 'o', col = 'blue',
    cex = 2, cex.axis = 2, cex.lab = 1.5, cex.main = 2, pch = 16)
lines(y = 10 / (1:10) * c(1, 1.05^(2:10) ), 1:10, col = 'red',
    type = 'o', cex = 2)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/figs/2016-03-07-BiocParallel/reality-1.png" alt="center"&gt;&lt;/p&gt;
&lt;p&gt;However, in reality parallel computing is not cost-free. It involves some communication costs, like sending the data to the cores, aggregating the results in a way that you can then easily use, among other things. So, it&amp;rsquo;ll be a bit slower than the ideal scenario but you can potentially still greatly reduce the overall time.&lt;/p&gt;
&lt;p&gt;Having said all of the above, lets say that you now want to do some parallel computing in &lt;code&gt;R&lt;/code&gt;. Where do you start? A pretty good place to start is the 
&lt;a href="http://cran.r-project.org/web/views/HighPerformanceComputing.html" target="_blank" rel="noopener"&gt;CRAN Task View: High-Performance and Parallel Computing with R&lt;/a&gt;. There you&amp;rsquo;ll find a lot of information about different packages that enable you to do parallel computing with &lt;code&gt;R&lt;/code&gt;.&lt;/p&gt;
&lt;center&gt;
&lt;a href='http://thumbs.dreamstime.com/x/word-cloud-parallel-computing-27198811.jpg'&gt;&lt;img alt = 'Confusing word cloud' height='367' src='http://lcolladotor.github.io/figs/2016-03-07-BiocParallel/wordcloud.jpg' /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p&gt;But you&amp;rsquo;ll soon be lost in a sea of new terms.&lt;/p&gt;
&lt;h2 id="why-use-biocparallel"&gt;Why use BiocParallel?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;It&amp;rsquo;s simple to use.&lt;/li&gt;
&lt;li&gt;You can try different parallel backends without changing your code.&lt;/li&gt;
&lt;li&gt;You can use it to submit cluster jobs.&lt;/li&gt;
&lt;li&gt;You&amp;rsquo;ll have access to great support from the Bioconductor developer team.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those are the big reasons of why I use &lt;code&gt;BiocParallel&lt;/code&gt;. But let me go through them a bit more slowly.&lt;/p&gt;
&lt;h3 id="birthday-example"&gt;Birthday example&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;m going to use as an example the birthday problem where you want to find out empirically the probability that two people share the same birthday in a room.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;birthday &amp;lt;- function(n) {
    m &amp;lt;- 10000
    x &amp;lt;- numeric(m)
    for(i in seq_len(m)) {
        b &amp;lt;- sample(seq_len(365), n, replace = TRUE)
        x[i] &amp;lt;- ifelse(length(unique(b)) == n, 0, 1)
    }
    mean(x)
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="naive-birthday-code"&gt;Naive birthday code&lt;/h4&gt;
&lt;p&gt;Once you have written the code for it, you can then use &lt;code&gt;lapply()&lt;/code&gt; or a &lt;code&gt;for&lt;/code&gt; loop to calculate the results.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;system.time( lapply(seq_len(100), birthday) )
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##    user  system elapsed 
##  25.610   0.442  27.430
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Takes around 25 seconds.&lt;/p&gt;
&lt;h4 id="via-domc"&gt;Via doMC&lt;/h4&gt;
&lt;p&gt;If you looked at 
&lt;a href="http://cran.r-project.org/web/views/HighPerformanceComputing.html" target="_blank" rel="noopener"&gt;CRAN Task View: High-Performance and Parallel Computing with R&lt;/a&gt; you might have found the &lt;code&gt;doMC&lt;/code&gt; &lt;a id='cite-domc'&gt;&lt;/a&gt;(&lt;a href='http://CRAN.R-project.org/package=doMC'&gt;Analytics and Weston, 2015&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;It allows you to run computations in parallel as shown below.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;library('doMC')
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Loading required package: foreach
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Loading required package: iterators
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Loading required package: parallel
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;registerDoMC(2)
system.time( x &amp;lt;- foreach(j = seq_len(100)) %dopar% birthday(j) )
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##    user  system elapsed 
##  12.819   0.246  13.309
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While it&amp;rsquo;s a bit faster, the main problem is that you had to change your code in order to be able to use it.&lt;/p&gt;
&lt;h4 id="with-biocparallel"&gt;With BiocParallel&lt;/h4&gt;
&lt;p&gt;This is how you would run things with &lt;code&gt;BiocParallel&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;library('BiocParallel')
system.time( y &amp;lt;- bplapply(seq_len(100), birthday) )
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##    user  system elapsed 
##   0.021   0.011  16.095
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The only change here is using &lt;code&gt;bplapply()&lt;/code&gt; instead of &lt;code&gt;lapply()&lt;/code&gt;, so just 2 characters. Well, that and loading the &lt;code&gt;BiocParallel&lt;/code&gt; package.&lt;/p&gt;
&lt;h3 id="biocparallels-advantages"&gt;BiocParallel&amp;rsquo;s advantages&lt;/h3&gt;
&lt;p&gt;There are many computation backends and one of the strongest features of &lt;code&gt;BiocParallel&lt;/code&gt; is that it&amp;rsquo;s easy to switch between them. For example, my computer can run the following options:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;registered()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## $MulticoreParam
## class: MulticoreParam 
##   bpjobname:BPJOB; bpworkers:2; bptasks:0; bptimeout:Inf; bpRNGseed:; bpisup:FALSE
##   bplog:FALSE; bpthreshold:INFO; bplogdir:NA
##   bpstopOnError:FALSE; bpprogressbar:FALSE
##   bpresultdir:NA
## cluster type: FORK 
## 
## $SnowParam
## class: SnowParam 
##   bpjobname:BPJOB; bpworkers:2; bptasks:0; bptimeout:Inf; bpRNGseed:; bpisup:FALSE
##   bplog:FALSE; bpthreshold:INFO; bplogdir:NA
##   bpstopOnError:FALSE; bpprogressbar:FALSE
##   bpresultdir:NA
## cluster type: SOCK 
## 
## $SerialParam
## class: SerialParam 
##   bplog:FALSE; bpthreshold:INFO
##   bpcatchErrors:FALSE
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If I was doing this in our computing cluster, I would see even more options.&lt;/p&gt;
&lt;p&gt;Now lets say that I want to test different computation backends, or even run things in serial mode so I can trace a bug down more easily. Well, all I have to do is change the &lt;code&gt;BPPARAM&lt;/code&gt; argument as shown below.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Test in serial mode
system.time( y.serial &amp;lt;- bplapply(1:10, birthday,
    BPPARAM = SerialParam()) )
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##    user  system elapsed 
##   2.577   0.033   2.733
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Try Snow
system.time( y.snow &amp;lt;- bplapply(1:10, birthday, 
    BPPARAM = SnowParam(workers = 2)) )
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##    user  system elapsed 
##   0.027   0.006   2.436
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Talking about computing clusters, you might be interested in using &lt;code&gt;BatchJobs&lt;/code&gt; &lt;a id='cite-batchjobs'&gt;&lt;/a&gt;(&lt;a href='http://www.jstatsoft.org/v64/i11/'&gt;Bischl, Lang, Mersmann, Rahnenführer, et al., 2015&lt;/a&gt;) just like 
&lt;a href="http://www.biostat.jhsph.edu/~prpatil/" target="_blank" rel="noopener"&gt;Prasad Patil&lt;/a&gt; did for his PhD work. Well, with &lt;code&gt;BiocParallel&lt;/code&gt; you can also chose to use the &lt;code&gt;BatchJobs&lt;/code&gt; backend. I have code showing this at the 
&lt;a href="http://lcolladotor.github.io/BiocParallel-knitrBootstrap/" target="_blank" rel="noopener"&gt;presentation I referenced earlier&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="where-do-i-start"&gt;Where do I start?&lt;/h2&gt;
&lt;p&gt;If you are convinced about using &lt;code&gt;BiocParallel&lt;/code&gt;, which I hope you are by now, check out the &lt;code&gt;Introduction to BiocParallel&lt;/code&gt; vignette available at 
&lt;a href="http://www.bioconductor.org/packages/release/bioc/html/BiocParallel.html" target="_blank" rel="noopener"&gt;BiocParallel&amp;rsquo;s landing page&lt;/a&gt;. It explains in more detail how to use it and it&amp;rsquo;s rich set of features. But if you just want to jump right in and start playing around with it, install it by running the following code:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;install.packages(&amp;quot;BiocManager&amp;quot;)
BiocManager::install(&amp;quot;BiocParallel&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="conclusions"&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;Like I said earlier, &lt;code&gt;BiocParallel&lt;/code&gt; is simple to use and has definite advantages over other solutions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can try different parallel backends without changing your code.&lt;/li&gt;
&lt;li&gt;You can use it to submit cluster jobs.&lt;/li&gt;
&lt;li&gt;You&amp;rsquo;ll have access to great support from the Bioconductor developer team. See 
&lt;a href="https://support.bioconductor.org/t/biocparallel/" target="_blank" rel="noopener"&gt;the biocparallel tag at the support website&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Have fun using it!&lt;/p&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Reproducibility info
library('devtools')
session_info()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Session info --------------------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##  setting  value                       
##  version  R version 3.2.2 (2015-08-14)
##  system   x86_64, darwin13.4.0        
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  tz       America/Chicago             
##  date     2016-03-07
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Packages ------------------------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##  package        * version  date       source        
##  bibtex           0.4.0    2014-12-31 CRAN (R 3.2.0)
##  BiocParallel   * 1.4.3    2015-12-16 Bioconductor  
##  bitops           1.0-6    2013-08-17 CRAN (R 3.2.0)
##  codetools        0.2-14   2015-07-15 CRAN (R 3.2.2)
##  devtools       * 1.10.0   2016-01-23 CRAN (R 3.2.3)
##  digest           0.6.9    2016-01-08 CRAN (R 3.2.3)
##  doMC           * 1.3.4    2015-10-13 CRAN (R 3.2.0)
##  evaluate         0.8      2015-09-18 CRAN (R 3.2.0)
##  foreach        * 1.4.3    2015-10-13 CRAN (R 3.2.0)
##  formatR          1.2.1    2015-09-18 CRAN (R 3.2.0)
##  futile.logger    1.4.1    2015-04-20 CRAN (R 3.2.0)
##  futile.options   1.0.0    2010-04-06 CRAN (R 3.2.0)
##  httr             1.1.0    2016-01-28 CRAN (R 3.2.3)
##  iterators      * 1.0.8    2015-10-13 CRAN (R 3.2.0)
##  knitcitations  * 1.0.7    2015-10-28 CRAN (R 3.2.0)
##  knitr          * 1.12.3   2016-01-22 CRAN (R 3.2.3)
##  lambda.r         1.1.7    2015-03-20 CRAN (R 3.2.0)
##  lubridate        1.5.0    2015-12-03 CRAN (R 3.2.3)
##  magrittr         1.5      2014-11-22 CRAN (R 3.2.0)
##  memoise          1.0.0    2016-01-29 CRAN (R 3.2.3)
##  plyr             1.8.3    2015-06-12 CRAN (R 3.2.1)
##  R6               2.1.2    2016-01-26 CRAN (R 3.2.3)
##  Rcpp             0.12.3   2016-01-10 CRAN (R 3.2.3)
##  RCurl            1.95-4.7 2015-06-30 CRAN (R 3.2.1)
##  RefManageR       0.10.6   2016-02-15 CRAN (R 3.2.3)
##  RJSONIO          1.3-0    2014-07-28 CRAN (R 3.2.0)
##  snow             0.4-1    2015-10-31 CRAN (R 3.2.0)
##  stringi          1.0-1    2015-10-22 CRAN (R 3.2.0)
##  stringr          1.0.0    2015-04-30 CRAN (R 3.2.0)
##  XML              3.98-1.3 2015-06-30 CRAN (R 3.2.0)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; &lt;a id='cite-knitcitations'&gt;&lt;/a&gt;(&lt;a href='http://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2015&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-domc'&gt;&lt;/a&gt;&lt;a href="#cite-domc"&gt;[1]&lt;/a&gt;&lt;cite&gt;
R. Analytics and S. Weston.
&lt;em&gt;doMC: Foreach Parallel Adaptor for 'parallel'&lt;/em&gt;.
R package version 1.3.4.
2015.
URL: &lt;a href="http://CRAN.R-project.org/package=doMC"&gt;http://CRAN.R-project.org/package=doMC&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-batchjobs'&gt;&lt;/a&gt;&lt;a href="#cite-batchjobs"&gt;[2]&lt;/a&gt;&lt;cite&gt;
B. Bischl, M. Lang, O. Mersmann, J. Rahnenführer, et al.
&amp;ldquo;BatchJobs and BatchExperiments: Abstraction Mechanisms for Using R in Batch Environments&amp;rdquo;.
In: &lt;em&gt;Journal of Statistical Software&lt;/em&gt; 64.11 (2015), pp. 1&amp;ndash;25.
URL: &lt;a href="http://www.jstatsoft.org/v64/i11/"&gt;http://www.jstatsoft.org/v64/i11/&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-knitcitations'&gt;&lt;/a&gt;&lt;a href="#cite-knitcitations"&gt;[3]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for 'Knitr' Markdown Files&lt;/em&gt;.
R package version 1.0.7.
2015.
URL: &lt;a href="http://CRAN.R-project.org/package=knitcitations"&gt;http://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-biocparallel'&gt;&lt;/a&gt;&lt;a href="#cite-biocparallel"&gt;[4]&lt;/a&gt;&lt;cite&gt;
M. Morgan, V. Obenchain, M. Lang and R. Thompson.
&lt;em&gt;BiocParallel: Bioconductor facilities for parallel evaluation&lt;/em&gt;.
R package version 1.4.3.
2016.&lt;/cite&gt;&lt;/p&gt;
&lt;h3 id="want-more"&gt;Want more?&lt;/h3&gt;
&lt;p&gt;Check other 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt; student blogs at 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt; as well as topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Teaching a short topic to beginner R users</title>
      <link>https://lcolladotor.github.io/2015/07/07/rmarkdown/</link>
      <pubDate>Tue, 07 Jul 2015 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2015/07/07/rmarkdown/</guid>
      <description>&lt;p&gt;A couple weeks ago I was given the opportunity to teach a 1 hr 30 min slot of an introduction to &lt;code&gt;R&lt;/code&gt; course. In the past, I&amp;rsquo;ve taught lectures for similar courses, and I ended up asking myself what would be the best short topic to teach and how to teach it.&lt;/p&gt;
&lt;h2 id="best-short-topic"&gt;Best short topic&lt;/h2&gt;
&lt;p&gt;There are two ways to answer the first question, one boring and one more interesting. The boring answer is that the course instructor selected the topic. The interesting one goes like this. I have taken short &lt;code&gt;R&lt;/code&gt; courses before and taught others, and it&amp;rsquo;s always overwhelming for the students. You get to cover many concepts, get familiarized with &lt;code&gt;R&lt;/code&gt;&amp;rsquo;s syntax, and in the end without lots of practice it&amp;rsquo;s very challenging to retain much of the information. I think that students love it when they learn how to do something simple that could be the first building block for many of their projects. In parallel, I think that one of the coolest &lt;code&gt;R&lt;/code&gt; topics you can learn in an hour is how to create reproducible documents with &lt;code&gt;rmarkdown&lt;/code&gt; &lt;a id='cite-rmarkdown'&gt;&lt;/a&gt;(&lt;a href='http://CRAN.R-project.org/package=rmarkdown'&gt;Allaire, Cheng, Xie, McPherson, et al., 2015&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Learning how to use a single function, &lt;code&gt;render()&lt;/code&gt; in this case, is as simple as it gets. And using the 
&lt;a href="http://www.rstudio.com/products/rstudio/#Desktop" target="_blank" rel="noopener"&gt;RStudio Desktop&lt;/a&gt; is even simpler. Of course, it can easily get complicated. For example, on a new computer you need to install all the LaTeX dependencies if you want to create PDF files. That task can take some time and maybe scare away some new users. But PDF files are really a plus in this case since you can start creating HTML and Word documents. Other complications arise when a user is interested in more control over formatting the file, but like I said earlier, all you need is a simple building block and &lt;code&gt;rmarkdown&lt;/code&gt; is clearly one of them.&lt;/p&gt;
&lt;p&gt;This is why the final answer to the first question was teaching how to use &lt;code&gt;rmarkdown&lt;/code&gt; to create reproducible reports (HTML, Word files) using &lt;code&gt;R&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="how-to-teach-it"&gt;How to teach it&lt;/h2&gt;
&lt;p&gt;Teaching a short topic to a beginner&amp;rsquo;s audience is no easy feat. In the past I&amp;rsquo;ve made lectures that have the code for every single step and many links to resources where students can learn some details. That is, I&amp;rsquo;ve created the lectures in such a way that a student can later use them as reference and follow them without an instructor explaining them.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s a strategy that I think works on the long run. However, it makes the actual lecture boring and very limited in interactivity. At the JHSPH biostat computing club, other students have chosen to use a lot of images, funny to witty quotes, and asked listeners to voice their opinions. I&amp;rsquo;ve come to enjoy those presentations and I decided to create my lecture following that trend.&lt;/p&gt;
&lt;p&gt;I started off with a series of questions about reproducible research and asked students to voice their opinions and to define a few key concepts. A couple were aware of the difference between reproducibility and replicability, but most were not. I also questioned them and presented them verbally with some famous cases, so they could realize that it&amp;rsquo;s a fairly complicated matter. Next I presented some answers and definitions from the 
&lt;a href="https://osf.io/s9tya/wiki/home/" target="_blank" rel="noopener"&gt;&lt;em&gt;Implementing Reproducible Research&lt;/em&gt;&lt;/a&gt; book.&lt;/p&gt;
&lt;p&gt;Specifically talking about &lt;code&gt;R&lt;/code&gt;, I showed the students several documents I&amp;rsquo;ve created in the past and asked whether they thought that they could reproduce the results or not. Basically, I wanted to highlight that when using &lt;code&gt;R&lt;/code&gt;, you really need the session information if you want to reproduce something. Specially if the analysis involves packages under heavy development.&lt;/p&gt;
&lt;p&gt;After having motivating the need for reproducible documents, I briefly showed what &lt;code&gt;rmarkdown&lt;/code&gt; is with some images from RStudio shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://rmarkdown.rstudio.com/images/markdownOverview.png" alt="Markdown overview"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://rmarkdown.rstudio.com/images/markdownChunk.png" alt="Markdown and R"&gt;&lt;/p&gt;
&lt;p&gt;That gave the students a general idea of how these documents look when you are writing them. But the most important part was showing them examples of how the resulting documents look like. That is, I showed them some complicated projects so they could imagine doing one themselves. The examples included some books, but given the audience I think that the one that motivated them most was Alyssa Frazee&amp;rsquo;s &lt;code&gt;polyester&lt;/code&gt; reproducible paper (check the 
&lt;a href="https://github.com/leekgroup/polyester_code/blob/master/polyester_manuscript.Rmd" target="_blank" rel="noopener"&gt;source here&lt;/a&gt;). I also showed them some of the cool stuff you can create with HTML documents: basically adding interactive elements.&lt;/p&gt;
&lt;p&gt;From there, we left the presentation and I demo&amp;rsquo;ed how to use RStudio to write &lt;code&gt;rmarkdown&lt;/code&gt; documents, the Markdown syntax, where to find help, etc.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://dgdc5.digitalgameslearning.org/dgdc_5th/wp-content/uploads/lc.png" alt="Lets code"&gt;&lt;/p&gt;
&lt;p&gt;By this point, I think the lecture was quite complete and the students were motivated. However, from my past experience, I&amp;rsquo;ve come to realize that students will easily forget a topic if they don&amp;rsquo;t practice doing it. That is why even before making the lecture I spent quite a bit of time designing two practice labs. Both labs involved creating a &lt;code&gt;rmarkdown&lt;/code&gt; document.&lt;/p&gt;
&lt;p&gt;The first lab included some cool illusion plots which involved a lot of &lt;code&gt;R&lt;/code&gt; code. The code wasn&amp;rsquo;t the point, but simply learning some of the basics such as what is a code chunk, some of Markdown&amp;rsquo;s syntax, specifying some code chunk options, adding the session information, and using inline &lt;code&gt;R&lt;/code&gt; code to show the date when the document was made. Ahh, and of course, uploading your HTML document to 
&lt;a href="http://rpubs.com/" target="_blank" rel="noopener"&gt;RPubs&lt;/a&gt; (see 
&lt;a href="http://rpubs.com/lcollado/illussion2015" target="_blank" rel="noopener"&gt;mine&lt;/a&gt;). I know that not everyone is a fan of RPubs, but I imagined that students would get super excited that they made something that they could then show their colleagues and friends. And some did!&lt;/p&gt;
&lt;p&gt;Sadly, we didn&amp;rsquo;t have enough time for the second lab. I did explain to the students what it was about, but they didn&amp;rsquo;t have time to do it themselves. For this second document, I wanted the students to learn how to create a document reporting some results where all the numbers in the text are written by &lt;code&gt;R&lt;/code&gt; instead of copy-pasting them.&lt;/p&gt;
&lt;h2 id="conclusions"&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;As you can see, I enjoyed thinking what to teach and specially how to teach a short topic to beginner &lt;code&gt;R&lt;/code&gt; students. Thanks to having one of the later sessions, I could teach them how to use &lt;code&gt;rmarkdown&lt;/code&gt; in a way that hopefully left them highly motivated to do it themselves. I hope that most of them will take that they learned in that module and others and apply them in their day to day work.&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;You can find the lecture itself 
&lt;a href="http://www.aejaffe.com/summerR_2015/modules/module12.html" target="_blank" rel="noopener"&gt;here&lt;/a&gt; but like I said earlier, it was designed for class and not for being used as a reference. However, the 
&lt;a href="http://www.aejaffe.com/summerR_2015/labs/module12_lab.R" target="_blank" rel="noopener"&gt;lab&lt;/a&gt; and it&amp;rsquo;s 
&lt;a href="http://www.aejaffe.com/summerR_2015/labs/mapping_module_labkey.R" target="_blank" rel="noopener"&gt;key&lt;/a&gt; might be more useful.&lt;/p&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; &lt;a id='cite-knitcitations'&gt;&lt;/a&gt;(&lt;a href='http://CRAN.R-project.org/package=knitcitations'&gt;Boettiger, 2015&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-rmarkdown'&gt;&lt;/a&gt;&lt;a href="#cite-rmarkdown"&gt;[1]&lt;/a&gt;&lt;cite&gt;
J. Allaire, J. Cheng, Y. Xie, J. McPherson, et al.
&lt;em&gt;rmarkdown: Dynamic Documents for R&lt;/em&gt;.
R package version 0.7.
2015.
URL: &lt;a href="http://CRAN.R-project.org/package=rmarkdown"&gt;http://CRAN.R-project.org/package=rmarkdown&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-knitcitations'&gt;&lt;/a&gt;&lt;a href="#cite-knitcitations"&gt;[2]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for Knitr Markdown Files&lt;/em&gt;.
R package version 1.0.6.
2015.
URL: &lt;a href="http://CRAN.R-project.org/package=knitcitations"&gt;http://CRAN.R-project.org/package=knitcitations&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;h3 id="want-more"&gt;Want more?&lt;/h3&gt;
&lt;p&gt;Check other 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt; student blogs at 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt; as well as topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Use hidden advanced arguments for user-friendly functions</title>
      <link>https://lcolladotor.github.io/2014/12/11/dots/</link>
      <pubDate>Thu, 11 Dec 2014 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2014/12/11/dots/</guid>
      <description>&lt;h2 id="as-a-user"&gt;As a user&lt;/h2&gt;
&lt;p&gt;Imagine that you are starting to learn how to use a specific &lt;code&gt;R&lt;/code&gt; package, lets call it &lt;code&gt;foo&lt;/code&gt;. You will look at the vignette (if there is one), use &lt;code&gt;help(package = foo)&lt;/code&gt;, or look at the reference manual (for example, 
&lt;a href="http://cran.r-project.org/web/packages/devtools/devtools.pdf" target="_blank" rel="noopener"&gt;devtools&amp;rsquo; ref man&lt;/a&gt;). Eventually, you will open the help page for the function(s) you are interested in using.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;?function_I_want_to_use
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In many packages, there is a main use case that is addressed by the package. A common strategy is to export a main function. That function will likely have a long list of arguments. So as a new user, you are suddenly exposed to a complicated help page and you will want to figure out which arguments you need to use.&lt;/p&gt;
&lt;h2 id="as-a-developer"&gt;As a developer&lt;/h2&gt;
&lt;p&gt;From the developer&amp;rsquo;s side, you want to give users control over several details. Each detail you want the user to control involves one more argument in your function. Sooner rather than later, you will have a long list of arguments. This increases the learning curve for new users of your package, and can potentially scare them away. That is contradictory of another goal you have as a developer: you want to get people to use your package.&lt;/p&gt;
&lt;p&gt;Lets say that you are developing the function &lt;code&gt;use_me()&lt;/code&gt;. If the details you want the users to control are actually arguments of other functions used inside &lt;code&gt;use_me()&lt;/code&gt;, then you can simplify your function by using the &lt;code&gt;...&lt;/code&gt; argument. This argument is very well explained at 
&lt;a href="http://www.burns-stat.com/the-three-dots-construct-in-r/" target="_blank" rel="noopener"&gt;The three-dots construct in R&lt;/a&gt; &lt;a id='cite-greycite20763'&gt;&lt;/a&gt;(&lt;a href='http://www.burns-stat.com/the-three-dots-construct-in-r/'&gt;Burns, 2013&lt;/a&gt;). It is very useful and can greatly simplify your life as a developer. Plus, it reduces the length of your help pages, thus making your package more user friendly.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/figs/2014-12-11-dots/unnamed-chunk-2-1.png" alt="center"&gt;&lt;/p&gt;
&lt;p&gt;However, if some of the details in &lt;code&gt;use_me()&lt;/code&gt; are not arguments to other functions, then the common strategy is to write two functions. One is a low level function with arguments for all the details which might or might not export. Then, you write a second function that is a wrapper for the low level function and pre-specifies values for all the details. See the next minimal example:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;# Don't export this function
.use_me &amp;lt;- function(arg1, arg2, verbose = TRUE) {
    if(verbose) message(paste(Sys.time(), 'working'))
    pmax(arg1, arg2)
}

#' @export
use_me &amp;lt;- function(arg1, ...) {
    .use_me(arg1, 0, ...)
}

## Lets see it in action
use_me(1:3)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## 2014-12-11 17:03:32 working
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 1 2 3
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;use_me(-1:1, verbose = FALSE)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 0 0 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this example, the help page for &lt;code&gt;use_me()&lt;/code&gt; is fairly short and friendly. You don&amp;rsquo;t expect users to be interested in changing &lt;code&gt;arg2&lt;/code&gt; much. Surely you could make it so the non-exported function &lt;code&gt;.use_me()&lt;/code&gt; sets a default value for &lt;code&gt;arg2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Another strategy is to specify inside &lt;code&gt;use_me()&lt;/code&gt; the default values for all the arguments you want to use while keeping the list of visible arguments short. That is, maintain the user friendliness of your functions while also giving them control over all the details. That is what you can do using &lt;code&gt;dots()&lt;/code&gt; from &lt;code&gt;dots&lt;/code&gt; &lt;a id='cite-dots'&gt;&lt;/a&gt;(&lt;a href='https://github.com/lcolladotor/dots'&gt;Collado-Torres, 2014&lt;/a&gt;). &lt;code&gt;dots()&lt;/code&gt; is a very simple function that checks if &lt;code&gt;...&lt;/code&gt; has a specific argument, and if absent, it returns a default value. It can be seen in action below:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;library('dots')
use_me_dots &amp;lt;- function(arg1, ...) {
    ## Default hidden arguments
    arg2 &amp;lt;- dots(name = 'arg2', value = 0, ...)
    verbose &amp;lt;- dots('verbose', TRUE, ...)
    
    ## Regular code
    if(verbose) message(paste(Sys.time(), 'working'))
    pmax(arg1, arg2)
}
use_me_dots(1:3)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## 2014-12-11 17:03:32 working
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 1 2 3
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;use_me_dots(-1:1, verbose = FALSE)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 0 0 1
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;use_me_dots(-1:1, verbose = FALSE, arg2 = 5)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 5 5 5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;dots&lt;/code&gt; is my solution to the problem of keeping functions user friendly while giving them control over all the details. The idea is that experienced users will be able to find what the advanced arguments are. While they could find them from the code itself, I do recommend describing the advanced arguments in a vignette targeted for these users.&lt;/p&gt;
&lt;h2 id="complications"&gt;Complications&lt;/h2&gt;
&lt;p&gt;Now, while &lt;code&gt;...&lt;/code&gt; is great, you might run into problems when &lt;code&gt;use_me()&lt;/code&gt; calls two functions that have different arguments and that don&amp;rsquo;t have the &lt;code&gt;...&lt;/code&gt; argument. Such a scenario is illustrated below.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;status &amp;lt;- function(arg3, status = TRUE) {
    if(status) print(arg3)
    return(invisible(NULL))
}
use_me_again &amp;lt;- function(arg1, ...) {
    res &amp;lt;- .use_me(arg1, 0, ...)
    status(res, ...)
    return(res)
}

## Seems to work
x &amp;lt;- use_me_again(1)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## 2014-12-11 17:03:32 working
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 1
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## But nope, it doesn't
use_me_again(1, verbose = FALSE, status = FALSE)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Error in .use_me(arg1, 0, ...): unused argument (status = FALSE)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This scenario can happen when you are using functions from other packages. It&amp;rsquo;s happened to me in cases where the main function does have a &lt;code&gt;...&lt;/code&gt; argument but uses several internal functions that don&amp;rsquo;t use it.&lt;/p&gt;
&lt;p&gt;In such situations, you might want to use &lt;code&gt;formal_call()&lt;/code&gt; from &lt;code&gt;dots&lt;/code&gt;. It figures out which are the arguments formally used by the function of interest and drops out un-used arguments from &lt;code&gt;...&lt;/code&gt;, thus avoiding this type of problem.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;use_me_fixed &amp;lt;- function(arg1, ...) {
    res &amp;lt;- formalCall(.use_me, arg1 = arg1, arg2 = 0, ...)
    formal_call(status, arg3 = res, ...)
    return(res)
}

## Works now!
use_me_fixed(1, verbose = FALSE, status = FALSE)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For a more complicated example, see the 
&lt;a href="http://lcolladotor.github.io/dots/dots.html#Complex_example" target="_blank" rel="noopener"&gt;dots complex example in the vignette&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="conclusions"&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;As a developer, it is possible to keep your functions user friendly while giving experienced users the option to control the fine tuning arguments which you don&amp;rsquo;t expect most users will want to tweak. My solution to this problem is implemented in 
&lt;a href="https://github.com/lcolladotor/dots" target="_blank" rel="noopener"&gt;dots&lt;/a&gt; (check it&amp;rsquo;s 
&lt;a href="http://lcolladotor.github.io/dots/" target="_blank" rel="noopener"&gt;vignette&lt;/a&gt;). I&amp;rsquo;d love to hear what you think about it! I am specially interested on what users think about the idea of hidden advanced arguments (documented in an advanced users vignette).&lt;/p&gt;
&lt;p&gt;I might try to get &lt;code&gt;dots&lt;/code&gt; into a repository: probably in 
&lt;a href="http://www.bioconductor.org/" target="_blank" rel="noopener"&gt;Bioconductor&lt;/a&gt; since most of the &lt;code&gt;dots&lt;/code&gt; code was first implemented for 
&lt;a href="http://www.bioconductor.org/packages/release/bioc/html/derfinder.html" target="_blank" rel="noopener"&gt;derfinder&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;PS I just found a similar function to &lt;code&gt;dots()&lt;/code&gt;. It&amp;rsquo;s &lt;code&gt;berryFunctions::owa()&lt;/code&gt; and you can find its 
&lt;a href="https://github.com/BerryBoessenkool/berryFunctions/blob/master/R/owa.r" target="_blank" rel="noopener"&gt;code here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; &lt;a id='cite-knitcitations'&gt;&lt;/a&gt;(&lt;a href='https://github.com/cboettig/knitcitations'&gt;Boettiger, 2014&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-knitcitations'&gt;&lt;/a&gt;&lt;a href="#cite-knitcitations"&gt;[1]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;em&gt;knitcitations: Citations for knitr markdown files&lt;/em&gt;.
R package version 1.0.4.
2014.
URL: &lt;a href="https://github.com/cboettig/knitcitations"&gt;https://github.com/cboettig/knitcitations&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-greycite20763'&gt;&lt;/a&gt;&lt;a href="#cite-greycite20763"&gt;[2]&lt;/a&gt;&lt;cite&gt;
P. Burns.
&lt;em&gt;The three-dots construct in R - Burns Statistics&lt;/em&gt;.
&lt;a href="http://www.burns-stat.com/the-three-dots-construct-in-r/"&gt;http://www.burns-stat.com/the-three-dots-construct-in-r/&lt;/a&gt;.
2013.
URL: &lt;a href="http://www.burns-stat.com/the-three-dots-construct-in-r/"&gt;http://www.burns-stat.com/the-three-dots-construct-in-r/&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-dots'&gt;&lt;/a&gt;&lt;a href="#cite-dots"&gt;[3]&lt;/a&gt;&lt;cite&gt;
L. Collado-Torres.
&lt;em&gt;dots: Simplifying function calls&lt;/em&gt;.
R package version 1.0.0.
2014.
URL: &lt;a href="https://github.com/lcolladotor/dots"&gt;https://github.com/lcolladotor/dots&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Reproducibility info
library('devtools')
options(width = 120)
session_info()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Session info-----------------------------------------------------------------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##  setting  value                                             
##  version  R Under development (unstable) (2014-11-01 r66923)
##  system   x86_64, darwin10.8.0                              
##  ui       X11                                               
##  language (EN)                                              
##  collate  en_US.UTF-8                                       
##  tz       America/New_York
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Packages---------------------------------------------------------------------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##  package       * version  date       source                                 
##  bibtex          0.3.6    2013-07-29 CRAN (R 3.2.0)                         
##  devtools      * 1.6.1    2014-10-07 CRAN (R 3.2.0)                         
##  digest          0.6.4    2013-12-03 CRAN (R 3.2.0)                         
##  dots          * 1.0.0    2014-11-14 Github (lcolladotor/dots@a933540)      
##  evaluate        0.5.5    2014-04-29 CRAN (R 3.2.0)                         
##  formatR         1.0      2014-08-25 CRAN (R 3.2.0)                         
##  httr            0.5      2014-09-02 CRAN (R 3.2.0)                         
##  knitcitations * 1.0.4    2014-11-03 Github (cboettig/knitcitations@508de74)
##  knitr         * 1.7      2014-10-13 CRAN (R 3.2.0)                         
##  lubridate       1.3.3    2013-12-31 CRAN (R 3.2.0)                         
##  memoise         0.2.1    2014-04-22 CRAN (R 3.2.0)                         
##  plyr            1.8.1    2014-02-26 CRAN (R 3.2.0)                         
##  RColorBrewer  * 1.0.5    2011-06-17 CRAN (R 3.2.0)                         
##  Rcpp            0.11.3   2014-09-29 CRAN (R 3.2.0)                         
##  RCurl           1.95.4.3 2014-07-29 CRAN (R 3.2.0)                         
##  RefManageR      0.8.40   2014-10-29 CRAN (R 3.2.0)                         
##  RJSONIO         1.3.0    2014-07-28 CRAN (R 3.2.0)                         
##  rstudioapi      0.1      2014-03-27 CRAN (R 3.2.0)                         
##  stringr         0.6.2    2012-12-06 CRAN (R 3.2.0)                         
##  XML             3.98.1.1 2013-06-20 CRAN (R 3.2.0)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="want-more"&gt;Want more?&lt;/h3&gt;
&lt;p&gt;Check other 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt; student blogs at 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt; as well as topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I wrote &lt;code&gt;dots&lt;/code&gt; a month ago and the post itself today during our bi-weekly blog meeting.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>An xpd-tion into R plot margins</title>
      <link>https://lcolladotor.github.io/2014/11/21/add-logo-in-R/</link>
      <pubDate>Fri, 21 Nov 2014 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2014/11/21/add-logo-in-R/</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a guest post by 
&lt;a href="http://www.biostat.jhsph.edu/~prpatil/" target="_blank" rel="noopener"&gt;Prasad Patil&lt;/a&gt; that answers the question: how to put a shape in the margin of an R plot?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The help page for &lt;strong&gt;R&lt;/strong&gt;&amp;rsquo;s &lt;code&gt;par()&lt;/code&gt; function is a somewhat impenetrable list
of abbreviations that allow you to manipulate anything and everything
in the plotting device. You may have used this function in the past
to create an array of plots (using &lt;code&gt;mfrow&lt;/code&gt; or &lt;code&gt;mfcol&lt;/code&gt;) or to set margins
(&lt;code&gt;mar&lt;/code&gt; or &lt;code&gt;mai&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Way down toward the end of the list is the often-overlooked &lt;code&gt;xpd&lt;/code&gt; parameter.
This value specifies where in the plotting device an object can actually
be plotted. The default is &lt;code&gt;xpd = FALSE&lt;/code&gt;, which means that plotting is clipped,
or restricted, to the plotting region. In other words, if your plot has
&lt;code&gt;xlim = c(0, 10)&lt;/code&gt; and &lt;code&gt;ylim = c(0, 10)&lt;/code&gt; and you try to plot the point (-1,  -1), it will
not appear anywhere in the device.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xpd&lt;/code&gt; takes two other values, &lt;code&gt;TRUE&lt;/code&gt; and &lt;code&gt;NA&lt;/code&gt;, which limit plotting to the figure
and device region, respectively. If you&amp;rsquo;re fuzzy on plotting terms, 
&lt;a href="http://research.stowers-institute.org/mcm/efg/R/Graphics/Basics/mar-oma/index.htm" target="_blank" rel="noopener"&gt;this
tutorial&lt;/a&gt;
presents those topics well.&lt;/p&gt;
&lt;h2 id="plotting-outside-the-plot"&gt;Plotting outside the plot&lt;/h2&gt;
&lt;p&gt;If you want to plot outside of the plotting region, I find that setting &lt;code&gt;xpd = NA&lt;/code&gt;
easiest since it opens up all external space. We also need to make sure that we
keep space outside of the plot so that we have room to place our objects. Let&amp;rsquo;s
say we want to put an ugly border above and below our plot:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;# Set xpd=NA and expand the top and bottom margins
par(xpd = NA, mar = par()$mar + c(2.5, 0, 1, 0))
plot(1:10)
# Note that the rectangle we make here has corner coordinates outside of
# our plotting device
rect(-5, 11, 12, 14, col=&amp;quot;red&amp;quot;)
# Random dots in our rectangluar region
points(runif(100, -4.2, 12.8), runif(100, 11.2, 13.6), col = &amp;quot;green&amp;quot;, pch = 19, cex = 1.2)
# And another rectangle for below
rect(-5, -1.7, 12, -3.5, col=&amp;quot;red&amp;quot;)
points(runif(100, -4.2, 12.8), runif(100, -3.3, -1.8), col = &amp;quot;green&amp;quot;, pch = 19, cex = 1.2)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/figs/2014-11-21-add-logo-in-R/plot-1.png" alt="center"&gt;&lt;/p&gt;
&lt;p&gt;Here we mentally extend the axes of our plot to determine where to put
our margin elements. One can imagine a diagonal for the top rectangle
running from (-5,11) to (12,14). Neither of these points appear in the plot
itself, but we used the established axes to estimate them and plot outside
the plotting region.&lt;/p&gt;
&lt;h2 id="images-outside-the-plot"&gt;Images outside the plot&lt;/h2&gt;
&lt;p&gt;Now let&amp;rsquo;s say we want to &lt;strong&gt;add a logo&lt;/strong&gt; or other external image in the margin
of our plot. We will use &lt;strong&gt;R&lt;/strong&gt;&amp;rsquo;s &lt;code&gt;png&lt;/code&gt; library to load a PNG image and
&lt;code&gt;rasterImage()&lt;/code&gt; to plot it:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## If needed: install.packages(&amp;quot;png&amp;quot;)
library(png)
img &amp;lt;- readPNG(&amp;quot;logo.png&amp;quot;)
par(xpd = NA, mar=par()$mar + c(3, 0, 0, 0))
plot(1:10)
rasterImage(img, 0.5, -2.5, 10.5, -1)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/figs/2014-11-21-add-logo-in-R/imgplot-1.png" alt="center"&gt;&lt;/p&gt;
&lt;p&gt;Here we used the &lt;code&gt;png&lt;/code&gt; library and the &lt;code&gt;r asterImage()&lt;/code&gt; command to read in and
plot the 
&lt;a href="http://lcolladotor.github.io/figs/2014-11-21-add-logo-in-R/logo.png" target="_blank" rel="noopener"&gt;&amp;ldquo;logo.png&amp;rdquo;&lt;/a&gt; file. Based on the previously-known dimensions of the
logo, we can choose which points to use as endpoints for the image. Note
that this image may appear stretched or contorted depending on the size
of your &lt;strong&gt;R&lt;/strong&gt; plot device, and it will not stay consistent if you resize.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Where do I start using Bioconductor?</title>
      <link>https://lcolladotor.github.io/2014/10/16/startBioC/</link>
      <pubDate>Thu, 16 Oct 2014 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2014/10/16/startBioC/</guid>
      <description>&lt;p&gt;I was recently asked &lt;em&gt;where do I get started with Bioconductor?&lt;/em&gt; and thought this would be a good short post.&lt;/p&gt;
&lt;h2 id="what-is-bioc"&gt;What is BioC?&lt;/h2&gt;
&lt;p&gt;Briefly, Bioconductor &lt;a id='cite-bioc'&gt;&lt;/a&gt;(&lt;a href='http://genomebiology.com/2004/5/10/R80'&gt;Gentleman, Carey, Bates, and others, 2004&lt;/a&gt;) is an open source project that hosts a wide range of tools for analyzing biological data with &lt;code&gt;R&lt;/code&gt; &lt;a id='cite-R'&gt;&lt;/a&gt;(&lt;a href='http://www.R-project.org/'&gt;R Core Team, 2014&lt;/a&gt;). These analysis tools are bundled into packages which are designed to answer specific questions or to provide key infrastructure. If this sounds like something you are interested in, visit 
&lt;a href="http://www.bioconductor.org/" target="_blank" rel="noopener"&gt;bioconductor.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Obviously, you need to know the basics about &lt;code&gt;R&lt;/code&gt; in order to use Bioconductor.&lt;/p&gt;
&lt;center&gt;
&lt;a href="http://www.bioconductor.org"&gt;&lt;img src="http://www.bioconductor.org/images/logo_bioconductor.gif" alt="BioconductorLogo" style="width: 260px;"/&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;h2 id="getting-started"&gt;Getting started&lt;/h2&gt;
&lt;p&gt;
&lt;a href="http://www.bioconductor.org/" target="_blank" rel="noopener"&gt;bioconductor.org&lt;/a&gt; has a section in it&amp;rsquo;s front page titled &lt;em&gt;get started with Bioconductor&lt;/em&gt;. There you will find links that explain how to install it or to explore the available packages.&lt;/p&gt;
&lt;h3 id="you-have-a-use-case"&gt;You have a use case&lt;/h3&gt;
&lt;p&gt;If you have a particular use case in mind, I recommend 
&lt;a href="http://www.bioconductor.org/packages/release/BiocViews.html#___Software" target="_blank" rel="noopener"&gt;browsing the software packages&lt;/a&gt; and searching for some key words. For example, you might be interested in &lt;em&gt;high throughput sequencing of RNAs&lt;/em&gt; and if you search &lt;em&gt;RNAseq&lt;/em&gt; or &lt;em&gt;RNA-seq&lt;/em&gt; you can find a good set of packages to start. Alternatively, use the &lt;em&gt;biocViews&lt;/em&gt; tree menu to explore specific categories of packages.&lt;/p&gt;
&lt;p&gt;Once you find a set of packages that have descriptions that appeal to you, explore their 
&lt;a href="http://www.bioconductor.org/help/package-vignettes/" target="_blank" rel="noopener"&gt;vignettes&lt;/a&gt;. These are either PDF or HTML documents that explain what the package does to new users. They also exemplify how to tie together the different functions in the package, which is a key piece of information. For example, in the &lt;em&gt;RNA-seq&lt;/em&gt; example you will find the 
&lt;a href="http://www.bioconductor.org/packages/release/bioc/html/DEXSeq.html" target="_blank" rel="noopener"&gt;DEXSeq&lt;/a&gt; package. &lt;code&gt;DEXseq&lt;/code&gt; &lt;a id='cite-DEXseq'&gt;&lt;/a&gt;(&lt;a href='http://dx.doi.org/10.1101/gr.133744.111'&gt;Anders, Reyes, and Huber, 2012&lt;/a&gt;) has a vignette called &lt;em&gt;Analyzing RNA-seq data for differential exon usage with the &amp;ldquo;DEXSeq&amp;rdquo; package&lt;/em&gt; and from the page of the package you can access the 
&lt;a href="http://www.bioconductor.org/packages/release/bioc/vignettes/DEXSeq/inst/doc/DEXSeq.pdf" target="_blank" rel="noopener"&gt;PDF vignette&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then it&amp;rsquo;s just a matter of exploring other packages, checking the vignettes and learning as you go.&lt;/p&gt;
&lt;h3 id="you-dont-have-a-use-case"&gt;You don&amp;rsquo;t have a use case&lt;/h3&gt;
&lt;p&gt;If you don&amp;rsquo;t have a specific use case in mind, it might pay off to start by exploring the 
&lt;a href="http://www.bioconductor.org/help/workflows/" target="_blank" rel="noopener"&gt;Bioconductor workflows&lt;/a&gt;. These documents explain how to use different packages to accomplish specific type of analyses. They are great to learn what you can do with Bioconductor!&lt;/p&gt;
&lt;p&gt;Another option is to look at the previous 
&lt;a href="http://www.bioconductor.org/help/course-materials/" target="_blank" rel="noopener"&gt;courses&lt;/a&gt;. For example, under the 
&lt;a href="http://www.bioconductor.org/help/course-materials/2008/" target="_blank" rel="noopener"&gt;2008 courses&lt;/a&gt; you&amp;rsquo;ll find to the course 
&lt;a href="http://www.lcg.unam.mx/~lcollado/R/" target="_blank" rel="noopener"&gt;R/Bioconductor Curso Intensivo (Spanish)&lt;/a&gt; which I taught back in the day. As much as I would like to self promote myself, the best starting point is the most recent BioC20XX course: 
&lt;a href="http://www.bioconductor.org/help/course-materials/2014/BioC2014/" target="_blank" rel="noopener"&gt;BioC2014&lt;/a&gt;. It has slides showcasing some of the newest packages and tutorials on how to use them.&lt;/p&gt;
&lt;p&gt;An alternative is to look at some of the 
&lt;a href="http://www.bioconductor.org/help/publications/" target="_blank" rel="noopener"&gt;Bioconductor publications&lt;/a&gt; which includes books about Bioconductor and research papers describing some of the packages.&lt;/p&gt;
&lt;p&gt;Once you find a set of packages that catch your eye, go look at their vignettes just like I explained in the &lt;em&gt;you have a use case&lt;/em&gt; scenario.&lt;/p&gt;
&lt;h2 id="help-tips"&gt;Help tips&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s not a matter of whether you will need help learning how to use Bioconductor. It&amp;rsquo;s just a matter of when. So don&amp;rsquo;t feel bad about having to ask for help!!&lt;/p&gt;
&lt;p&gt;The very first place to start is to look at 
&lt;a href="http://www.bioconductor.org/" target="_blank" rel="noopener"&gt;bioconductor.org&lt;/a&gt; at the &lt;em&gt;Help&lt;/em&gt; section in the bottom. For example, you can find youtube videos contributed under the 
&lt;a href="http://www.bioconductor.org/help/community/" target="_blank" rel="noopener"&gt;community&lt;/a&gt; section. There you can also find links to other blog posts explaining how to use Bioconductor. Take a peak at the other sections under &lt;em&gt;Help&lt;/em&gt; before using the 
&lt;a href="https://support.bioconductor.org/" target="_blank" rel="noopener"&gt;Bioconductor support site&lt;/a&gt;: it&amp;rsquo;s where you can ask very specific questions and interact with the maintainers of the packages you are using.&lt;/p&gt;
&lt;p&gt;Finally, if you are interested in new developments, then check the &lt;em&gt;latest newsletter&lt;/em&gt;, for example the 
&lt;a href="http://www.bioconductor.org/help/newsletters/2014_October/" target="_blank" rel="noopener"&gt;October 2014&lt;/a&gt; one.&lt;/p&gt;
&lt;p&gt;Good luck using Bioconductor!&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; &lt;a id='cite-knitcitations'&gt;&lt;/a&gt;(&lt;a href='https://github.com/cboettig/knitcitations'&gt;Boettiger, 2014&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-DEXseq'&gt;&lt;/a&gt;&lt;a href="#cite-DEXseq"&gt;[1]&lt;/a&gt;&lt;cite&gt;
S. Anders, A. Reyes and W. Huber.
&amp;ldquo;Detecting differential usage of exons from RNA-seq data.&amp;rdquo;
In: &lt;EM&gt;Genome Research&lt;/EM&gt; 22 (2012), p. 4025.
DOI: &lt;a href="http://dx.doi.org/10.1101/gr.133744.111"&gt;10.1101/gr.133744.111&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-knitcitations'&gt;&lt;/a&gt;&lt;a href="#cite-knitcitations"&gt;[2]&lt;/a&gt;&lt;cite&gt;
C. Boettiger.
&lt;EM&gt;knitcitations: Citations for knitr markdown files&lt;/EM&gt;.
R package version 1.0.2.
2014.
URL: &lt;a href="https://github.com/cboettig/knitcitations"&gt;https://github.com/cboettig/knitcitations&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-bioc'&gt;&lt;/a&gt;&lt;a href="#cite-bioc"&gt;[3]&lt;/a&gt;&lt;cite&gt;
R. C. Gentleman, V. J. Carey, D. M. Bates and others.
&amp;ldquo;Bioconductor: Open software development for computational biology and bioinformatics&amp;rdquo;.
In: &lt;EM&gt;Genome Biology&lt;/EM&gt; 5 (2004), p. R80.
URL: &lt;a href="http://genomebiology.com/2004/5/10/R80"&gt;http://genomebiology.com/2004/5/10/R80&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id='bib-R'&gt;&lt;/a&gt;&lt;a href="#cite-R"&gt;[4]&lt;/a&gt;&lt;cite&gt;
R Core Team.
&lt;EM&gt;R: A Language and Environment for Statistical Computing&lt;/EM&gt;.
R Foundation for Statistical Computing.
Vienna, Austria, 2014.
URL: &lt;a href="http://www.R-project.org/"&gt;http://www.R-project.org/&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;h3 id="want-more"&gt;Want more?&lt;/h3&gt;
&lt;p&gt;Check other 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt; student blogs at 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt; as well as topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Concerns that can deter potential orders for developing Shiny apps</title>
      <link>https://lcolladotor.github.io/2014/06/10/shiny-orders/</link>
      <pubDate>Tue, 10 Jun 2014 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2014/06/10/shiny-orders/</guid>
      <description>&lt;p&gt;A few weeks ago I was invited to a meeting where a group was interested in exploring options for replacing their contract with a propriety software. They invited me because they saw some resemblances between a 
&lt;a href="http://shiny.rstudio.com/" target="_blank" rel="noopener"&gt;Shiny&lt;/a&gt; application I made and the features they need. It is a relatively small project and it seemed feasible to implement, but well, some details could have been tricky to code. During the meeting I explained what 
&lt;a href="http://shiny.rstudio.com/" target="_blank" rel="noopener"&gt;Shiny&lt;/a&gt; is, showcased some of the 
&lt;a href="http://shiny.rstudio.com/" target="_blank" rel="noopener"&gt;Shiny&lt;/a&gt; apps I&amp;rsquo;ve made, and proposed some options including a simple site password.&lt;/p&gt;
&lt;p&gt;A few days after the meeting, they raised three concerns.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Privacy and security of their data. Specially with distribution of the site password.&lt;/li&gt;
&lt;li&gt;Technical support. They wanted something more than community support.&lt;/li&gt;
&lt;li&gt;Continuity of the project. Specially since their team might lack the technical expertise to support and modify the Shiny app after it is built.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These are all valid concerns and they are not something I have dealt with or been concerned with other 
&lt;a href="http://shiny.rstudio.com/" target="_blank" rel="noopener"&gt;Shiny&lt;/a&gt; apps I have deployed. Thus, I ended up finding more information and writing up a long reply which I am modifying into a post format here. If you identify other ways to approach these concerns that I missed, share the knowledge please!&lt;/p&gt;
&lt;h2 id="shiny-overview"&gt;Shiny overview&lt;/h2&gt;
&lt;center&gt;
&lt;a href="http://lcolladotor.github.io/figs/2014-06-10-shiny-orders/HelloShiny.png"&gt;&lt;img src="http://lcolladotor.github.io/figs/2014-06-10-shiny-orders/HelloShiny.png" alt="Workflow" style="width: 458px;"/&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p&gt;
&lt;a href="http://shiny.rstudio.com/" target="_blank" rel="noopener"&gt;Shiny&lt;/a&gt; is an &lt;code&gt;R&lt;/code&gt; package that allows creating web applications with &lt;code&gt;R&lt;/code&gt;. A user opens the app on their browser, specifies a given set of inputs, these are transmitted to an &lt;code&gt;R&lt;/code&gt; session, some code is evaluated with the input options, output is produced and transmitted back to the browser. Because it is so easy to use and useful, it has been very popular. That is the gist of it!&lt;/p&gt;
&lt;h2 id="deploying-a-shiny-app"&gt;Deploying a Shiny app&lt;/h2&gt;
&lt;p&gt;Once you develop a 
&lt;a href="http://shiny.rstudio.com/" target="_blank" rel="noopener"&gt;Shiny&lt;/a&gt; app, you have to deploy it on a server so users can access it through their browsers. Here I describe several options to do so.&lt;/p&gt;
&lt;p&gt;The application itself needs &amp;ldquo;Shiny Server&amp;rdquo; to run. An implementation of Shiny Server is free via 
&lt;a href="http://shinyapps.io/" target="_blank" rel="noopener"&gt;ShinyApps&lt;/a&gt; (&lt;strong&gt;option 1&lt;/strong&gt;) or if you have your own server you can install the open source version of Shiny Server (&lt;strong&gt;option 2&lt;/strong&gt;). Alternatively, you can pay for Shiny Server Pro and also install it in your own server (&lt;strong&gt;option 3&lt;/strong&gt;). Note that glimmer.rstudio.com is previous version of 
&lt;a href="http://shinyapps.io/" target="_blank" rel="noopener"&gt;ShinyApps&lt;/a&gt; and you can no longer get accounts on this server.&lt;/p&gt;
&lt;p&gt;Option 1 has the advantage of being completely free and that there is no need to pay for your own server. It does rely on 
&lt;a href="http://shinyapps.io/" target="_blank" rel="noopener"&gt;ShinyApps&lt;/a&gt; being online, which should not be a main problem since it is hosted on the cloud. Meaning that it is supposed to be robust.&lt;/p&gt;
&lt;p&gt;Option 2 has the advantage of having technical support for the server (not the app) from whoever is providing the server (could be a company or the school). However, you need to have someone capable of installing Shiny Server and updating it whenever it&amp;rsquo;s necessary to do so.&lt;/p&gt;
&lt;p&gt;Option 3 allows you to have high level password security (via SSL) to any Shiny app you host. Plus 
&lt;a href="http://www.rstudio.com/" target="_blank" rel="noopener"&gt;RStudio&lt;/a&gt; provides technical support for Shiny. The server technical support would still have to come from whoever is providing the server. The main disadvantage is that this option is very expensive (even with the academic pricing discount).&lt;/p&gt;
&lt;p&gt;Here is some information you might be interested on checking about Shiny:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.rstudio.com/shiny/" target="_blank" rel="noopener"&gt;Main site for Shiny&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.rstudio.com/shiny/server/" target="_blank" rel="noopener"&gt;Description for Shiny Server and Shiny Server Pro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.rstudio.com/shiny/commercial/academic-pricing" target="_blank" rel="noopener"&gt;Academic pricing for Shiny Server Pro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.rstudio.com/shiny/hosted/" target="_blank" rel="noopener"&gt;Description of ShinyApps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://shiny.rstudio.com/" target="_blank" rel="noopener"&gt;Site for learning how to code a web app using Shiny&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://shiny.rstudio.com/gallery/" target="_blank" rel="noopener"&gt;Examples of Shiny apps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="concerns"&gt;Concerns&lt;/h2&gt;
&lt;h3 id="privacy"&gt;Privacy&lt;/h3&gt;
&lt;p&gt;Privacy issues in terms of password sharing can be limited by changing the password frequently. Privacy in terms of protection versus hacking is a different subject and I could implement something like 
&lt;a href="http://spark.rstudio.com/withr/authentication/" target="_blank" rel="noopener"&gt;this demo&lt;/a&gt; (username: withr, password: 12345678) as described in this 
&lt;a href="http://withr.me/blog/2014/02/14/encrypt-users-password-with-md5-for-you-shiny-app/" target="_blank" rel="noopener"&gt;blog post&lt;/a&gt;. However, if you want further protection vs hacking, you would need Shiny Server Pro. 
&lt;a href="http://shiny.rstudio.com/gallery/authentication-and-database.html" target="_blank" rel="noopener"&gt;Here is a demo&lt;/a&gt; of the security provided by Shiny Server Pro  (with multiple users too). I understand that hacking was not the main concern you had, but well, as I said password-sharing can be mitigated by frequent changes to the app site.&lt;/p&gt;
&lt;h3 id="technical-support"&gt;Technical support&lt;/h3&gt;
&lt;p&gt;I mostly answered the different options regarding technical support when I described the three options for deploying a Shiny app. As for getting support from IT, they would need to learn how to use Shiny.&lt;/p&gt;
&lt;h3 id="continuity"&gt;Continuity&lt;/h3&gt;
&lt;p&gt;Shiny is one of the most important projects for 
&lt;a href="http://www.rstudio.com/" target="_blank" rel="noopener"&gt;RStudio&lt;/a&gt; so they invest a lot in it, the community provides great answers very quickly, and a lot of people are learning how to use it. If you need an R programmer later on instead of a student, you could describe the job at 
&lt;a href="http://www.r-users.com/" target="_blank" rel="noopener"&gt;R Users&lt;/a&gt; and employ someone that way. As far as the Biostats department is concerned, I know that several students are using Shiny and some have even published Shiny Apps in the academic literature. Here are some examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://spark.rstudio.com/mrosenblum/interAdapt/" target="_blank" rel="noopener"&gt;interAdapt&lt;/a&gt; is a Shiny app written by Aaron Fisher (Biostats student) and published 
&lt;a href="http://biostats.bepress.com/jhubiostat/paper262/" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;shinymethyl, a shiny application developed by Jean-Philippe Fortin described 
&lt;a href="http://shinymethyl.com/" target="_blank" rel="noopener"&gt;here&lt;/a&gt; with a 
&lt;a href="http://spark.rstudio.com/jfortin/shinyMethyl/" target="_blank" rel="noopener"&gt;demo here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://alyssafrazee.shinyapps.io/committees/" target="_blank" rel="noopener"&gt;committees&lt;/a&gt; is a Shiny app made by Alyssa Frazee for verifying your school oral and/or defense committees. It&amp;rsquo;s described in 
&lt;a href="http://alyssafrazee.com/committee-checker-2.html" target="_blank" rel="noopener"&gt;this post&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://muschellij2.shinyapps.io/ENAR_2014" target="_blank" rel="noopener"&gt;ENAR 2014&lt;/a&gt; is a Shiny app made by John Muschelli for the ENAR2014 conference which allowed you to quickly identify talks you might be interested in. It&amp;rsquo;s described in 
&lt;a href="http://hopstat.wordpress.com/2014/03/12/enar-2014-searcher-enar2014/" target="_blank" rel="noopener"&gt;this post&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="branding"&gt;Branding&lt;/h3&gt;
&lt;p&gt;Regarding branding, a Shiny App can be embedded on a website. For illustrating this, I embedded two apps I made 
&lt;a href="http://www.biostat.jhsph.edu/~lcollado/testShiny.html" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="conclusions"&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;In the end, this group decided to use something else instead of a 
&lt;a href="http://shiny.rstudio.com/" target="_blank" rel="noopener"&gt;Shiny&lt;/a&gt; app for now. I do not know exactly why they made that decision, but I can see that their concerns are probably shared with other potential 
&lt;a href="http://shiny.rstudio.com/" target="_blank" rel="noopener"&gt;Shiny&lt;/a&gt; users. These concerns are a challenge 
&lt;a href="http://www.rstudio.com/" target="_blank" rel="noopener"&gt;RStudio&lt;/a&gt; must be dealing with and I am curious to know how they would have approached them.&lt;/p&gt;
&lt;h4 id="want-more"&gt;Want more?&lt;/h4&gt;
&lt;p&gt;Check other 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt; student blogs at 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt; as well as topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This post is part of the summer 2014 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt;&amp;rsquo; iron blogger challenge.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Simple mortgage calculator</title>
      <link>https://lcolladotor.github.io/2014/04/22/mortgage-calculator-flexible-payments/</link>
      <pubDate>Tue, 22 Apr 2014 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2014/04/22/mortgage-calculator-flexible-payments/</guid>
      <description>&lt;p&gt;Have you ever thought of borrowing some money? A common case is when you have to borrow money for buying a house, which is called a mortgage. Wikipedia (&lt;span class="showtooltip" title="(2014). 'Mortgage loan - Wikipedia, the free encyclopedia.' ."&gt;&lt;a href="http://en.wikipedia.org/wiki/Mortgage_loan"&gt;&amp;lsquo;Mortgage loan&amp;rsquo; entry&lt;/a&gt;&lt;/span&gt;) goes into much more detail about the definition than what I&amp;rsquo;ll cover.&lt;/p&gt;
&lt;p&gt;One of the aspects you have to evaluate when considering a loan such as a mortgage is how much interest you will be charged and how long the loan will be. Those two determine your monthly payment.&lt;/p&gt;
&lt;h2 id="comparing-loans"&gt;Comparing loans&lt;/h2&gt;
&lt;p&gt;That is, given the loan amount, you can compare different loans that offer different rates and/or loan lengths. There are many tools out there that allow you to do so and are generally called mortgage calculators. Although the more detailed term is amortization calculator. From wikipedia(&lt;span class="showtooltip" title="(2014). 'Amortization calculator - Wikipedia, the free encyclopedia.' ."&gt;&lt;a href="http://en.wikipedia.org/wiki/Amortization_calculator"&gt;&amp;lsquo;Amortization calculator&amp;rsquo; entry&lt;/a&gt;&lt;/span&gt;) we find the so called annuity formula which helps you calculate your monthly payment.&lt;/p&gt;
&lt;p&gt;Several such mortgage calculators have been features in 
&lt;a href="http://www.r-bloggers.com/" target="_blank" rel="noopener"&gt;R Bloggers&lt;/a&gt; before such as (&lt;span class="showtooltip" title="C (2010). 'Mortgage Calculator (and Amortization Charts) with R.' ."&gt;&lt;a href="http://www.r-chart.com/2010/11/mortgage-calculator-and-amortization.html"&gt;C, 2010&lt;/a&gt;&lt;/span&gt;) and (&lt;span class="showtooltip" title="BioStatMatt (2014). 'Mortgage Refinance Calculator | BioStatMatt.' ."&gt;&lt;a href="http://biostatmatt.com/archives/1908"&gt;BioStatMatt&lt;/a&gt;&lt;/span&gt;). Plus there are many other alternatives on the web.&lt;/p&gt;
&lt;h2 id="my-use-case"&gt;My use case&lt;/h2&gt;
&lt;p&gt;However, a month or so ago I got curious about comparing some loans which had a different twist than normal. Given some circumstances, I wanted to compare some loans where the loaner is willing to receive payments every few months yet with interests being compounded (that is, calculated) on a different time frame. Obviously, the easiest would be to compound interest at the same frequency as payments are made. Plus, probably most banks would not offer such flexible loans.&lt;/p&gt;
&lt;p&gt;Digging around, I did find modifications to the annuity formula that allow non-monthly payments (&lt;span class="showtooltip" title="(2014). 'Compound Interest Calculator.' ."&gt;&lt;a href="http://www.calculator.net/compound-interest-calculator.html"&gt;Compound Interest Formula&lt;/a&gt;&lt;/span&gt;) and (&lt;span class="showtooltip" title="(2014). 'Compound Interest.' ."&gt;&lt;a href="http://math.about.com/library/weekly/aa042002a.htm"&gt;What is compound interest?&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;h2 id="shiny-app"&gt;shiny app&lt;/h2&gt;
&lt;p&gt;Being interested in &lt;code&gt;R&lt;/code&gt; code, 
&lt;a href="http://www.rstudio.com/shiny/" target="_blank" rel="noopener"&gt;shiny&lt;/a&gt; (&lt;span class="showtooltip" title="RStudio and Inc. (2014). shiny: Web Application Framework for R. R package version 0.9.1."&gt;&lt;a href="http://CRAN.R-project.org/package=shiny"&gt;RStudio Inc.&lt;/a&gt;&lt;/span&gt;) apps and trying out integrating 
&lt;a href="http://rcharts.io/" target="_blank" rel="noopener"&gt;rCharts&lt;/a&gt; (&lt;span class="showtooltip" title="Vaidyanathan R (2013). rCharts: Interactive Charts using Polycharts.js. R package version 0.4.2."&gt;&lt;a href=""&gt;Vaidyanathan, 2013&lt;/a&gt;&lt;/span&gt;) with shiny, I ended up coding my own mortgage calculator which you can find 
&lt;a href="http://glimmer.rstudio.com/lcolladotor/mortgage/" target="_blank" rel="noopener"&gt;here&lt;/a&gt; (&lt;span class="showtooltip" title="(2014). 'Simple Mortgage Calculator.' ."&gt;&lt;a href="http://glimmer.rstudio.com/lcolladotor/mortgage/"&gt;Simple Mortage Calculator&lt;/a&gt;&lt;/span&gt;). The code is publicly available at 
&lt;a href="https://github.com/lcolladotor/mortgage" target="_blank" rel="noopener"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It has a couple of simple inputs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Amount to borrow&lt;/li&gt;
&lt;li&gt;Interest rate&lt;/li&gt;
&lt;li&gt;Loan duration&lt;/li&gt;
&lt;li&gt;Payment frequency&lt;/li&gt;
&lt;li&gt;How frequently interests are compounded&lt;/li&gt;
&lt;li&gt;Month of the first payment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The option to begin the loan now but accept the first payment much later is there also because of the complicated use case I had in mind. Again, that is a feature a bank will most likely not offer. But it&amp;rsquo;s something I needed to take into consideration.&lt;/p&gt;
&lt;p&gt;Going back to the app, I tried explaining all the inputs as much as possible. The output is relatively straight forward.&lt;/p&gt;
&lt;p&gt;First, there is a line with focus D3 interactive plot (&lt;span class="showtooltip" title="Partners N (2014). 'Line Chart With View Finder - NVD3.' ."&gt;&lt;a href="http://nvd3.org//examples/lineWithFocus.html"&gt;Line Chart with View Finder&lt;/a&gt;&lt;/span&gt;) which shows the principal (the amount you owe) over months as well as how much you&amp;rsquo;ve paid already. The bottom panel allows you to zoom into a specific time range as shown below.&lt;/p&gt;
&lt;center&gt;
&lt;a href="http://lcolladotor.github.io/figs/2014-04-22-mortgage-calculator-flexible-payments/lineWithFocus.png"&gt;&lt;img src="http://lcolladotor.github.io/figs/2014-04-22-mortgage-calculator-flexible-payments/lineWithFocus.png" alt="Workflow" style="width: 775px;"/&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p&gt;Next, the information is shown in more detail as an interactive data table (&lt;span class="showtooltip" title="(2014). 'DataTables (table plug-in for jQuery).' ."&gt;&lt;a href="https://datatables.net/"&gt;DataTables&lt;/a&gt;&lt;/span&gt;) 12 months at a time. The interactive part makes it very easy to search for a specific month and look at the state of the loan.&lt;/p&gt;
&lt;p&gt;Finally, you can download the amortization table in CSV format for your records.&lt;/p&gt;
&lt;p&gt;PS You can also access the app via shinyapps at this 
&lt;a href="https://lcolladotor.shinyapps.io/mortgage2/" target="_blank" rel="noopener"&gt;url&lt;/a&gt;. It is the first time I&amp;rsquo;ve deployed an app there as I wanted to test shinyapps out.&lt;/p&gt;
&lt;h2 id="conclusions"&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;The experience of coding the 
&lt;a href="http://glimmer.rstudio.com/lcolladotor/mortgage/" target="_blank" rel="noopener"&gt;shiny app&lt;/a&gt; (&lt;span class="showtooltip" title="(2014). 'Simple Mortgage Calculator.' ."&gt;&lt;a href="http://glimmer.rstudio.com/lcolladotor/mortgage/"&gt;Simple Mortage Calculator&lt;/a&gt;&lt;/span&gt;) was interesting as I did learn a couple of new things. The same was true for figuring out the calculations for the more flexible options.&lt;/p&gt;
&lt;p&gt;Finally, but not least, the shiny app was useful for my use case and was informative for comparing different loan options. Hopefully it will be useful for other users!&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2014). knitcitations: Citations for knitr markdown files. R package version 0.5-0."&gt;&lt;a href="http://CRAN.R-project.org/package=knitcitations"&gt;Boettiger, 2014&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mortgage loan - Wikipedia, the free encyclopedia.  &lt;em&gt;Wikipedia&lt;/em&gt;  
&lt;a href="http://en.wikipedia.org/wiki/Mortgage_loan" target="_blank" rel="noopener"&gt;http://en.wikipedia.org/wiki/Mortgage_loan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Amortization calculator - Wikipedia, the free encyclopedia.  &lt;em&gt;Wikipedia&lt;/em&gt;  
&lt;a href="http://en.wikipedia.org/wiki/Amortization_calculator" target="_blank" rel="noopener"&gt;http://en.wikipedia.org/wiki/Amortization_calculator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C,   (2010) Mortgage Calculator (and Amortization Charts) with R.  &lt;em&gt;R-Chart&lt;/em&gt;  
&lt;a href="http://www.r-chart.com/2010/11/mortgage-calculator-and-amortization.html" target="_blank" rel="noopener"&gt;http://www.r-chart.com/2010/11/mortgage-calculator-and-amortization.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;BioStatMatt,  Mortgage Refinance Calculator | BioStatMatt.  &lt;em&gt;BioStatMatt&lt;/em&gt;  
&lt;a href="http://biostatmatt.com/archives/1908" target="_blank" rel="noopener"&gt;http://biostatmatt.com/archives/1908&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Compound Interest Calculator.  
&lt;a href="http://www.calculator.net/compound-interest-calculator.html" target="_blank" rel="noopener"&gt;http://www.calculator.net/compound-interest-calculator.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Compound Interest.  
&lt;a href="http://math.about.com/library/weekly/aa042002a.htm" target="_blank" rel="noopener"&gt;http://math.about.com/library/weekly/aa042002a.htm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simple Mortgage Calculator.  
&lt;a href="http://glimmer.rstudio.com/lcolladotor/mortgage/" target="_blank" rel="noopener"&gt;http://glimmer.rstudio.com/lcolladotor/mortgage/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Novus Partners,  Line Chart With View Finder - NVD3.  
&lt;a href="http://nvd3.org//examples/lineWithFocus.html" target="_blank" rel="noopener"&gt;http://nvd3.org//examples/lineWithFocus.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DataTables (table plug-in for jQuery).  &lt;em&gt;DataTables (jQuery plug-in)&lt;/em&gt;  
&lt;a href="https://datatables.net/" target="_blank" rel="noopener"&gt;https://datatables.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Carl Boettiger,   (2014) knitcitations: Citations for knitr markdown files.  
&lt;a href="http://CRAN.R-project.org/package=knitcitations" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=knitcitations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ramnath Vaidyanathan,   (2013) rCharts: Interactive Charts using Polycharts.js.&lt;/li&gt;
&lt;li&gt;RStudio , Inc. ,   (2014) shiny: Web Application Framework for R.  
&lt;a href="http://CRAN.R-project.org/package=shiny" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=shiny&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;sessionInfo()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## R version 3.1.0 (2014-04-10)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] knitcitations_0.5-0 bibtex_0.3-6        knitr_1.5.27       
## 
## loaded via a namespace (and not attached):
##  [1] codetools_0.2-8 digest_0.6.4    evaluate_0.5.3  formatR_0.10   
##  [5] httr_0.3        RCurl_1.95-4.1  stringr_0.6.2   tools_3.1.0    
##  [9] XML_3.98-1.1    xtable_1.7-3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check other 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt; student blogs at 
&lt;a href="http://bmorebiostat.com/" target="_blank" rel="noopener"&gt;Bmore Biostats&lt;/a&gt; as well as topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>rMaps Mexico map</title>
      <link>https://lcolladotor.github.io/2014/02/26/excited-by-willingness-to-help-get-things-done/</link>
      <pubDate>Wed, 26 Feb 2014 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2014/02/26/excited-by-willingness-to-help-get-things-done/</guid>
      <description>&lt;h2 id="its-exciting-when-great-people-help-each-other-get-things-done"&gt;It&amp;rsquo;s exciting when great people help each other get things done&lt;/h2&gt;
&lt;p&gt;This is a simple networking story, which might not be surprising to some but I was happily surprised by it. This is how the story goes:&lt;/p&gt;
&lt;p&gt;Two weeks ago &lt;code&gt;rMaps&lt;/code&gt; (&lt;span class="showtooltip" title="Vaidyanathan R (2014). rMaps: Interactive Maps from R. R package version 0.1."&gt;&lt;a href=""&gt;Vaidyanathan, 2014&lt;/a&gt;&lt;/span&gt;) was released. After making a 
&lt;a href="http://lcolladotor.github.io/2014/02/10/rMaps-released/#.Uwz64kJdV18" target="_blank" rel="noopener"&gt;blog post&lt;/a&gt; about it I thought about using it to make a map of the homicide rate in Mexico over the recent years. First, I had the question of how to make custom maps with &lt;code&gt;rMaps&lt;/code&gt;. 
&lt;a href="https://github.com/tyokota" target="_blank" rel="noopener"&gt;@tyokota&lt;/a&gt; had the same question and started asking 
&lt;a href="https://github.com/ramnathv" target="_blank" rel="noopener"&gt;Ramnath&lt;/a&gt; about it in 
&lt;a href="https://github.com/ramnathv/rMaps/issues/6" target="_blank" rel="noopener"&gt;rMaps issue 6&lt;/a&gt;. Then I realized I needed a specific file with the map information. Google lead me to 
&lt;a href="https://github.com/diegovalle" target="_blank" rel="noopener"&gt;@diegovalle&lt;/a&gt; who has created the map from official Mexican sources, downloaded the homicide data, cleaned it, and made several maps and analyses: all his work is very impressive! I thought that it&amp;rsquo;d be very cool if 
&lt;a href="https://github.com/diegovalle" target="_blank" rel="noopener"&gt;@diegovalle&lt;/a&gt; and 
&lt;a href="https://github.com/ramnathv" target="_blank" rel="noopener"&gt;Ramnath&lt;/a&gt; connected, and they did! I saw them interacting via Twitter (
&lt;a href="https://twitter.com/diegovalle/status/433619946434596864" target="_blank" rel="noopener"&gt;here&lt;/a&gt; and 
&lt;a href="https://twitter.com/ramnath_vaidya/status/433813747593801728" target="_blank" rel="noopener"&gt;here&lt;/a&gt;) and via 
&lt;a href="https://github.com/ramnathv/rMaps/issues/6" target="_blank" rel="noopener"&gt;GitHub&lt;/a&gt;. After sharing 
&lt;a href="https://github.com/diegovalle" target="_blank" rel="noopener"&gt;@diegovalle&lt;/a&gt;&amp;rsquo;s work with my friends, it turned out that some old friends already knew him (
&lt;a href="https://twitter.com/unRob/status/433675310542749696" target="_blank" rel="noopener"&gt;here&lt;/a&gt; and high school friends). Another friend was interested in additional features and I suggested her to contact 
&lt;a href="https://github.com/diegovalle" target="_blank" rel="noopener"&gt;@diegovalle&lt;/a&gt; via Twitter: he quickly replied as you can see 
&lt;a href="https://twitter.com/diegovalle/status/434444498341347328" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Beyond how impressive &lt;code&gt;rMaps&lt;/code&gt; and 
&lt;a href="https://github.com/diegovalle" target="_blank" rel="noopener"&gt;@diegovalle&lt;/a&gt;&amp;rsquo;s work on mexican data are, I was amazed by the willingness to help each other and how great people easily connected. I believe this is one of the great features of both GitHub and Twitter where you can share your code, ask questions, try to answer them, meet people working with your tools, etc. You can even offer to PayPal a beer like 
&lt;a href="https://github.com/tyokota" target="_blank" rel="noopener"&gt;@tyokota&lt;/a&gt; did.&lt;/p&gt;
&lt;p&gt;After all their great work, now someone like me (aka, without knowing javascript, Datamaps, etc) can walk you through an example of making an interactive choropleth map showing the homicides rates in Mexico from 1997 to 2013.&lt;/p&gt;
&lt;h2 id="homicides-rates-in-mexico-1997-2013"&gt;Homicides rates in Mexico 1997-2013&lt;/h2&gt;
&lt;p&gt;The first thing we need to make a custom map using &lt;code&gt;rMaps&lt;/code&gt; is a 
&lt;a href="http://en.wikipedia.org/wiki/TopoJSON" target="_blank" rel="noopener"&gt;topojson&lt;/a&gt; file which in this case specifies the mexican states boundaries. This process is explained in more detail by 
&lt;a href="https://github.com/tyokota" target="_blank" rel="noopener"&gt;@tyokota&lt;/a&gt; at 
&lt;a href="https://github.com/tyokota/custom-map" target="_blank" rel="noopener"&gt;custom-map&lt;/a&gt; which you can view 
&lt;a href="https://github.com/tyokota/custom-map/blob/master/custom-map.Rmd" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this particular example, 
&lt;a href="http://www.inegi.org.mx/" target="_blank" rel="noopener"&gt;INEGI&lt;/a&gt; which is the National Institute of Statistics and Geography of Mexico has a map of the mexican states. 
&lt;a href="https://github.com/diegovalle" target="_blank" rel="noopener"&gt;@diegovalle&lt;/a&gt; explained how to download it 
&lt;a href="https://github.com/ramnathv/rMaps/issues/6#issuecomment-34942284" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But before doing so, you might to install &lt;code&gt;topojson&lt;/code&gt; like I did below following the 
&lt;a href="https://github.com/mbostock/topojson/wiki/Installation" target="_blank" rel="noopener"&gt;installation instructions&lt;/a&gt;. In the terminal:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
## Install node.js following instructions at https://github.com/mbostock/topojson/wiki/Installation
brew install node
## Install topojson
npm install -g topojson

## Download map info from INEGI (Mexican official source)
curl -o estados.zip http://mapserver.inegi.org.mx/MGN/mge2010v5_0.zip
## Decompress file
unzip estados.zip
## Create shapefile
ogr2ogr states.shp Entidades_2010_5.shp -t_srs &amp;quot;+proj=longlat +ellps=WGS84 +no_defs +towgs84=0,0,0&amp;quot;
## id-property needed so that DataMaps knows how to color the map
topojson -o mx_states.json -s 1e-7 -q 1e5 states.shp -p state_code=+CVE_ENT,name=NOM_ENT --id-property NOM_ENT
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now that we have the 
&lt;a href="http://en.wikipedia.org/wiki/TopoJSON" target="_blank" rel="noopener"&gt;topojson&lt;/a&gt; file &lt;strong&gt;mx_states.json&lt;/strong&gt; we need to get the actual homicide data. 
&lt;a href="https://github.com/diegovalle" target="_blank" rel="noopener"&gt;@diegovalle&lt;/a&gt; has gone through the whole process of acquiring the data from official mexican sources and cleaning it. Lets download it.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;# Download crime data
## From crimenmexico.diegovalle.net/en/csv
## All local crimes at the state level
download.file(&amp;quot;http://crimenmexico.diegovalle.net/en/csv/fuero-comun-estados.csv.gz&amp;quot;, 
	&amp;quot;fuero-comun-estados.csv.gz&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The data is not completely ready for us to use it and we need to reshape it a bit. In particular, we want to consider only the intentional homicides and group the data by state and date. We can get this to work by using &lt;code&gt;dplyr&lt;/code&gt; (&lt;span class="showtooltip" title="Wickham H and Francois R (2014). dplyr: dplyr: a grammar of data manipulation. R package version 0.1.1."&gt;&lt;a href="http://CRAN.R-project.org/package=dplyr"&gt;Wickham &amp;amp; Francois, 2014&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Load required packages
library(&amp;quot;dplyr&amp;quot;)

## Load the crime data
crime &amp;lt;- read.csv(&amp;quot;fuero-comun-estados.csv.gz&amp;quot;)

## Only intentional homicides
crime &amp;lt;- subset(crime, crime == &amp;quot;HOMICIDIOS&amp;quot; &amp;amp; type == &amp;quot;DOLOSOS&amp;quot;)

## Sum homicides by firearm, etc and group by state and date
hom &amp;lt;- crime %.%
  filter(year %in% 1997:2013) %.%
  group_by(state_code, year, type) %.%
  summarise(total = sum(count, na.rm = TRUE),
            population = mean(population) ) %.%
  mutate(rate = total / population * 10^5) %.%
  arrange(state_code, year)

## How are states coded?
summary(hom$state_code)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    8.75   16.50   16.50   24.20   32.00
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We have the slight inconvenience that states are coded as integers from 1 to 32 instead of using their names. Using another of the files supplied by 
&lt;a href="https://github.com/diegovalle" target="_blank" rel="noopener"&gt;@diegovalle&lt;/a&gt; we can merge the codes. This requires using the &lt;code&gt;foreign&lt;/code&gt; (&lt;span class="showtooltip" title="R Core Team (2014). foreign: Read Data Stored by Minitab, S, SAS, SPSS, Stata, Systat, Weka, dBase.... R package version 0.8-59."&gt;&lt;a href="http://CRAN.R-project.org/package=foreign"&gt;R Core Team&lt;/a&gt;&lt;/span&gt;) package for loading a &lt;em&gt;dbf&lt;/em&gt; file and then merging both data sets with &lt;code&gt;plyr&lt;/code&gt; (&lt;span class="showtooltip" title="Wickham H (2011). 'The Split-Apply-Combine Strategy for Data Analysis.' Journal of Statistical Software, 40(1), pp. 1-29. ."&gt;&lt;a href="http://www.jstatsoft.org/v40/i01/"&gt;Wickham, 2011&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Needed for read.dbf
library(&amp;quot;foreign&amp;quot;)

## The dbf from the state shapefile needed to merge state_code with state
## names
codes &amp;lt;- read.dbf(&amp;quot;states.dbf&amp;quot;)
codes$NOM_ENT &amp;lt;- iconv(codes$NOM_ENT, &amp;quot;windows-1252&amp;quot;, &amp;quot;utf-8&amp;quot;)
codes$CVE_ENT &amp;lt;- as.numeric(codes$CVE_ENT)
codes$OID &amp;lt;- NULL
names(codes) &amp;lt;- c(&amp;quot;state_code&amp;quot;, &amp;quot;name&amp;quot;)

## Load plyr for join(). Loading it before creates a problem with the dplyr
## call above
library(&amp;quot;plyr&amp;quot;)

## Names needed for the map
hom &amp;lt;- join(hom, codes)

## Lets look at the data
head(hom)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##   state_code year    type total population   rate           name
## 1          1 1997 DOLOSOS   355     958126 37.051 Aguascalientes
## 2          1 1998 DOLOSOS    66     975585  6.765 Aguascalientes
## 3          1 1999 DOLOSOS    27     992515  2.720 Aguascalientes
## 4          1 2000 DOLOSOS    14    1009215  1.387 Aguascalientes
## 5          1 2001 DOLOSOS    22    1026437  2.143 Aguascalientes
## 6          1 2002 DOLOSOS    26    1044578  2.489 Aguascalientes
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Great! We now have state names under &lt;em&gt;name&lt;/em&gt; and the intentional homicide rate under &lt;em&gt;rate&lt;/em&gt; (in homicides per 100,000) for each specific &lt;em&gt;year&lt;/em&gt;. We can thus proceed to making the interactive choropleth map using the &lt;code&gt;ichoropleth&lt;/code&gt; function described by 
&lt;a href="https://github.com/ramnathv" target="_blank" rel="noopener"&gt;Ramnath&lt;/a&gt; 
&lt;a href="http://rmaps.github.io/blog/posts/animated-choropleths/index.html" target="_blank" rel="noopener"&gt;here&lt;/a&gt;. This requires specifying the 
&lt;a href="http://en.wikipedia.org/wiki/TopoJSON" target="_blank" rel="noopener"&gt;topojson&lt;/a&gt; file which is specified via &lt;em&gt;dataUrl&lt;/em&gt;, the name of the map specified via &lt;em&gt;scope&lt;/em&gt; and the most tricky part (for me at least) is that we need to specify the &lt;em&gt;setProjection&lt;/em&gt;. These are all properties of the 
&lt;a href="https://github.com/markmarkoh/datamaps" target="_blank" rel="noopener"&gt;Datamaps&lt;/a&gt; library. In particular, the wiki describes 
&lt;a href="https://github.com/markmarkoh/datamaps/blob/master/README.md#using-custom-maps" target="_blank" rel="noopener"&gt;how to use custom maps&lt;/a&gt; but this requires some javascript knowledge.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Make the map
library(&amp;quot;rMaps&amp;quot;)
d1 &amp;lt;- ichoropleth(rate ~ name, data = hom, ncuts = 9, pal = 'YlOrRd', 
    animate = 'year',  map = 'states'
)
## Note that I am hosting the mx_states.json in Dropbox
## but if you are doing it locally, you only need
## dataUrl = &amp;quot;mx_states.json&amp;quot;
d1$set(
  geographyConfig = list(
   dataUrl = &amp;quot;https://dl.dropboxusercontent.com/u/10794332/mx_states.json&amp;quot;
  ),
 scope = 'states',
 setProjection = '#! function( element, options ) {
   var projection, path;
   projection = d3.geo.mercator()
    .center([-89, 21]).scale(element.offsetWidth)
    .translate([element.offsetWidth / 2, element.offsetHeight / 2]);

   path = d3.geo.path().projection( projection );
   return {path: path, projection: projection};
  } !#'
)
d1$save('rMaps.html', cdn = TRUE)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The end result is shown below:&lt;/p&gt;
&lt;iframe src='
http://lcolladotor.github.io/figs/2014-02-26-excited-by-willingness-to-help-get-things-done/rMaps.html
' scrolling='no' seamless
class='rChart datamaps '
id=iframe-
chart1859838d5e973
width=100%
height=500px
 &gt;&lt;/iframe&gt;
&lt;p&gt;You can also share the map using the &lt;em&gt;publish&lt;/em&gt; method as shown below:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;d1$publish(&amp;quot;Intentional homicides rates for Mexico 1997-2013&amp;quot;)
## You'll need a GitHub account
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You will get a link to the rCharts viewer such as 
&lt;a href="http://rcharts.io/viewer/?9223554#.Uw1tNEJdV18" target="_blank" rel="noopener"&gt;this one&lt;/a&gt; or if you prefer, you can also view the result using Pagist as shown 
&lt;a href="http://www.pagist.info/9223554" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The code presented in this post was written by 
&lt;a href="https://github.com/diegovalle" target="_blank" rel="noopener"&gt;@diegovalle&lt;/a&gt; which can you view 
&lt;a href="http://bl.ocks.org/diegovalle/8967565" target="_blank" rel="noopener"&gt;here&lt;/a&gt; and 
&lt;a href="https://github.com/ramnathv" target="_blank" rel="noopener"&gt;Ramnath&lt;/a&gt; which is shown 
&lt;a href="https://github.com/ramnathv/rMaps/issues/6#issuecomment-34946041" target="_blank" rel="noopener"&gt;here&lt;/a&gt;. I also figured out the trick of hosting the 
&lt;a href="http://en.wikipedia.org/wiki/TopoJSON" target="_blank" rel="noopener"&gt;topojson&lt;/a&gt; file at Dropbox from 
&lt;a href="https://github.com/tyokota" target="_blank" rel="noopener"&gt;@tyokota&lt;/a&gt;&amp;rsquo;s 
&lt;a href="https://github.com/tyokota/custom-map/blob/master/custom-map.Rmd" target="_blank" rel="noopener"&gt;code&lt;/a&gt; as I was running into &lt;em&gt;Access-Control-Allow-Origin&lt;/em&gt; errors when hosting it in my academic website. Finally, but not least, 
&lt;a href="https://github.com/ramnathv" target="_blank" rel="noopener"&gt;Ramnath&lt;/a&gt; appropriately insists that all of this would not be possible without libraries such as 
&lt;a href="https://github.com/markmarkoh/datamaps" target="_blank" rel="noopener"&gt;Datamaps&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2014). knitcitations: Citations for knitr markdown files. R package version 0.5-0."&gt;&lt;a href="http://CRAN.R-project.org/package=knitcitations"&gt;Boettiger, 2014&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hadley Wickham, Romain Francois,   (2014) dplyr: dplyr: a grammar of data manipulation.  
&lt;a href="http://CRAN.R-project.org/package=dplyr" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=dplyr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;R Core Team ,   (2014) foreign: Read Data Stored by Minitab, S, SAS, SPSS, Stata, Systat, Weka,
dBase, &amp;hellip;.  
&lt;a href="http://CRAN.R-project.org/package=foreign" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=foreign&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Carl Boettiger,   (2014) knitcitations: Citations for knitr markdown files.  
&lt;a href="http://CRAN.R-project.org/package=knitcitations" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=knitcitations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hadley Wickham,   (2011) The Split-Apply-Combine Strategy for Data Analysis.  &lt;em&gt;Journal of Statistical Software&lt;/em&gt;  &lt;strong&gt;40&lt;/strong&gt;  (1)   1-29  
&lt;a href="http://www.jstatsoft.org/v40/i01/" target="_blank" rel="noopener"&gt;http://www.jstatsoft.org/v40/i01/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ramnath Vaidyanathan,   (2014) rMaps: Interactive Maps from R.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;sessionInfo()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## R version 3.0.2 (2013-09-25)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] rMaps_0.1.1         plyr_1.8            foreign_0.8-59     
## [4] dplyr_0.1.1         knitcitations_0.5-0 bibtex_0.3-6       
## [7] knitr_1.5          
## 
## loaded via a namespace (and not attached):
##  [1] assertthat_0.1     digest_0.6.4       evaluate_0.5.1    
##  [4] formatR_0.10       grid_3.0.2         httr_0.2          
##  [7] lattice_0.20-24    rCharts_0.4.2      RColorBrewer_1.0-5
## [10] Rcpp_0.11.0        RCurl_1.95-4.1     RJSONIO_1.0-3     
## [13] stringr_0.6.2      tools_3.0.2        whisker_0.3-2     
## [16] XML_3.95-0.2       xtable_1.7-1       yaml_2.1.10
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check other topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Automatically coloring your R output in the terminal using colorout</title>
      <link>https://lcolladotor.github.io/2014/02/17/colorout/</link>
      <pubDate>Mon, 17 Feb 2014 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2014/02/17/colorout/</guid>
      <description>&lt;p&gt;Thanks to Alyssa Frazee I just learned about the &lt;code&gt;colorout&lt;/code&gt; package (&lt;span class="showtooltip" title="Aquino J (2013). colorout: Colorize R output on terminal emulators. R package version 1.0-2."&gt;&lt;a href="http://www.lepem.ufc.br/jaa/colorout.html"&gt;Aquino, 2013&lt;/a&gt;&lt;/span&gt;). It modifies &lt;code&gt;R&lt;/code&gt; so that the output is in different colors, making it much more pleasant to use &lt;code&gt;R&lt;/code&gt; in the terminal.&lt;/p&gt;
&lt;p&gt;Do note that &lt;code&gt;colorout&lt;/code&gt; is not available from CRAN, but you can easily install by following the instructions on the &lt;code&gt;colorout&lt;/code&gt; site (&lt;span class="showtooltip" title="(2014). 'colorout.' ."&gt;&lt;a href="http://www.lepem.ufc.br/jaa/colorout.html"&gt;Official site&lt;/a&gt;&lt;/span&gt;) reproduced below:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;download.file(&amp;quot;http://www.lepem.ufc.br/jaa/colorout_1.0-2.tar.gz&amp;quot;, destfile = &amp;quot;colorout_1.0-2.tar.gz&amp;quot;)
install.packages(&amp;quot;colorout_1.0-2.tar.gz&amp;quot;, type = &amp;quot;source&amp;quot;, repos = NULL)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The next step is to then load &lt;code&gt;colorout&lt;/code&gt; automatically when I start &lt;code&gt;R&lt;/code&gt;. The problem is that I don&amp;rsquo;t use &lt;code&gt;R&lt;/code&gt; solely on the terminal. I easily figured out how to do so thanks to the error message you get when attempting to load &lt;code&gt;colorout&lt;/code&gt; on the R GUI. I thus ended up adding the following lines to my &lt;code&gt;.Rprofile&lt;/code&gt; (both locally and in the cluster):&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Change colors when running R in the terminal
if (Sys.getenv(&amp;quot;TERM&amp;quot;) == &amp;quot;xterm-256color&amp;quot;) library(&amp;quot;colorout&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now I have pretty &lt;code&gt;R&lt;/code&gt; output in the terminal! Thanks again Alyssa! See her original tweet below:&lt;/p&gt;
&lt;blockquote class="twitter-tweet" lang="en"&gt;&lt;p&gt;problem: R output in Terminal isn&amp;#39;t colorful. SOLUTION: &lt;a href="http://t.co/Vd6OoRoUU5"&gt;http://t.co/Vd6OoRoUU5&lt;/a&gt;&lt;/p&gt;&amp;mdash; Alyssa Frazee (@acfrazee) &lt;a href="https://twitter.com/acfrazee/statuses/435517664975269888"&gt;February 17, 2014&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;p&gt;&lt;code&gt;colorout&lt;/code&gt; has been around for a while and was even at CRAN for some time. I guess that I&amp;rsquo;m just late to the party.&lt;/p&gt;
&lt;p&gt;If the default &lt;code&gt;colorout&lt;/code&gt; colors don&amp;rsquo;t work for you, check functions such as &lt;code&gt;setOutputColors256&lt;/code&gt;. This 
&lt;a href="http://musicallyut.blogspot.com/2012/07/colors-in-r-console.html" target="_blank" rel="noopener"&gt;post&lt;/a&gt; shows how you can do it and includes screenshots of the output. Other package details are included 
&lt;a href="http://www.inside-r.org/packages/cran/colorout" target="_blank" rel="noopener"&gt;here&lt;/a&gt; and 
&lt;a href="http://thr3ads.net/r-help/2011/11/1629717-New-package-colorout-to-colorize-R-output-on-terminal-emulators" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2014). knitcitations: Citations for knitr markdown files. R package version 0.5-0."&gt;&lt;a href="http://CRAN.R-project.org/package=knitcitations"&gt;Boettiger, 2014&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jakson Aquino,   (2013) colorout: Colorize R output on terminal emulators.  
&lt;a href="http://www.lepem.ufc.br/jaa/colorout.html" target="_blank" rel="noopener"&gt;http://www.lepem.ufc.br/jaa/colorout.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;colorout.  
&lt;a href="http://www.lepem.ufc.br/jaa/colorout.html" target="_blank" rel="noopener"&gt;http://www.lepem.ufc.br/jaa/colorout.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Carl Boettiger,   (2014) knitcitations: Citations for knitr markdown files.  
&lt;a href="http://CRAN.R-project.org/package=knitcitations" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=knitcitations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;sessionInfo()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## R version 3.0.2 (2013-09-25)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] knitcitations_0.5-0 bibtex_0.3-6        knitr_1.5          
## 
## loaded via a namespace (and not attached):
##  [1] codetools_0.2-8 digest_0.6.4    evaluate_0.5.1  formatR_0.10   
##  [5] httr_0.2        RCurl_1.95-4.1  stringr_0.6.2   tools_3.0.2    
##  [9] XML_3.95-0.2    xtable_1.7-1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check other topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>rMaps released</title>
      <link>https://lcolladotor.github.io/2014/02/10/rMaps-released/</link>
      <pubDate>Mon, 10 Feb 2014 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2014/02/10/rMaps-released/</guid>
      <description>&lt;p&gt;
&lt;a href="https://github.com/ramnathv" target="_blank" rel="noopener"&gt;Ramnath Vaidyanathan&lt;/a&gt; just released his new &lt;code&gt;R&lt;/code&gt; interactive package, &lt;code&gt;rMaps&lt;/code&gt; (&lt;span class="showtooltip" title="Vaidyanathan R (2014). rMaps: Interactive Maps from R. R package version 0.1."&gt;&lt;a href=""&gt;Vaidyanathan, 2014&lt;/a&gt;&lt;/span&gt;). The packages relies on the development version of his widely known &lt;code&gt;rCharts&lt;/code&gt; package (&lt;span class="showtooltip" title="Vaidyanathan R (2013). rCharts: Interactive Charts using Polycharts.js. R package version 0.4.2."&gt;&lt;a href=""&gt;Vaidyanathan, 2013&lt;/a&gt;&lt;/span&gt;) as well as javascript libraries that specialize in maps. If you don&amp;rsquo;t know Ramnath, he is one of the most active &lt;code&gt;R&lt;/code&gt; developers out there!! You can see that from his 
&lt;a href="https://github.com/ramnathv" target="_blank" rel="noopener"&gt;GitHub profile&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The package is very new and still under development, but I bet that Ramnath released it to get us users excited and maybe find some helpful hands to document it and further develop it.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t know about you, but I surely got excited about the package from his intro video:&lt;/p&gt;
&lt;iframe width="560" height="315" src="//www.youtube.com/embed/sSbb3PyaSu8" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;It&amp;rsquo;s a simple screen cast with good music.&lt;/p&gt;
&lt;p&gt;In the 
&lt;a href="https://github.com/ramnathv/rMaps" target="_blank" rel="noopener"&gt;GitHub rMaps&lt;/a&gt; repository you can find the simple installation instructions as well as three different examples. They all work if you run them in the latest version of 
&lt;a href="http://www.rstudio.com/" target="_blank" rel="noopener"&gt;RStudio&lt;/a&gt; otherwise you might run into a couple minor hiccups like 
&lt;a href="https://github.com/ramnathv/rMaps/issues/1" target="_blank" rel="noopener"&gt;I did&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Just to get you excited, this is the third example where you can easily add markers with pop ups.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;suppressMessages(library(&amp;quot;rMaps&amp;quot;))
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;map &amp;lt;- Leaflet$new()
map$setView(c(51.505, -0.09), zoom = 13)
map$tileLayer(provider = &amp;quot;Stamen.Watercolor&amp;quot;)
map$marker(c(51.5, -0.09), bindPopup = &amp;quot;Hi. I am a popup&amp;quot;)
map
&lt;/code&gt;&lt;/pre&gt;
&lt;center&gt;
&lt;a href="http://lcolladotor.github.io/figs/2014-02-10-rMaps-released/example3.png"&gt;&lt;img src="http://lcolladotor.github.io/figs/2014-02-10-rMaps-released/example3.png" alt="Workflow" style="width: 808px;"/&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p&gt;You can view the interactive version of the example 
&lt;a href="http://www.biostat.jhsph.edu/~lcollado/misc/rMaps/file5d8743376948.html" target="_blank" rel="noopener"&gt;here&lt;/a&gt; &amp;ndash; I&amp;rsquo;m sure that a feature will be added later to make it easy to share the maps you make.&lt;/p&gt;
&lt;p&gt;Overall, I think that this is a great start and I look forward to using it. For now, don&amp;rsquo;t be discouraged with the lack of documentation. I&amp;rsquo;m sure that if you 
&lt;a href="https://github.com/ramnathv/rMaps/issues" target="_blank" rel="noopener"&gt;ask nicely&lt;/a&gt; Ramnath will answer asap!&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2014). knitcitations: Citations for knitr markdown files. R package version 0.5-0."&gt;&lt;a href="http://CRAN.R-project.org/package=knitcitations"&gt;Boettiger, 2014&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Carl Boettiger,   (2014) knitcitations: Citations for knitr markdown files.  
&lt;a href="http://CRAN.R-project.org/package=knitcitations" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=knitcitations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ramnath Vaidyanathan,   (2013) rCharts: Interactive Charts using Polycharts.js.&lt;/li&gt;
&lt;li&gt;Ramnath Vaidyanathan,   (2014) rMaps: Interactive Maps from R.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;sessionInfo()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## R version 3.0.2 (2013-09-25)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] rMaps_0.1           knitcitations_0.5-0 bibtex_0.3-6       
## [4] knitr_1.5          
## 
## loaded via a namespace (and not attached):
##  [1] codetools_0.2-8    digest_0.6.4       evaluate_0.5.1    
##  [4] formatR_0.10       grid_3.0.2         httr_0.2          
##  [7] lattice_0.20-24    plyr_1.8           rCharts_0.4.2     
## [10] RColorBrewer_1.0-5 RCurl_1.95-4.1     RJSONIO_1.0-3     
## [13] stringr_0.6.2      tools_3.0.2        whisker_0.3-2     
## [16] XML_3.95-0.2       xtable_1.7-1       yaml_2.1.10
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check other topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>How to upload files to Dropbox and Google Docs from R</title>
      <link>https://lcolladotor.github.io/2014/02/05/DropboxAndGoogleDocsFromR/</link>
      <pubDate>Wed, 05 Feb 2014 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2014/02/05/DropboxAndGoogleDocsFromR/</guid>
      <description>&lt;p&gt;Have you ever wondered whether you can upload files from &lt;code&gt;R&lt;/code&gt; to 
&lt;a href="https://www.dropbox.com/" target="_blank" rel="noopener"&gt;Dropbox&lt;/a&gt; and/or 
&lt;a href="docs.google.com"&gt;Google Docs&lt;/a&gt;? I recently asked myself this question while making my most recent 
&lt;a href="http://www.rstudio.com/shiny/" target="_blank" rel="noopener"&gt;Shiny&lt;/a&gt; app (more later).&lt;/p&gt;
&lt;p&gt;The answer is yes, you can upload files from &lt;code&gt;R&lt;/code&gt; to these cloud services!&lt;/p&gt;
&lt;h2 id="dropbox"&gt;Dropbox&lt;/h2&gt;
&lt;p&gt;As far as I know, the best &lt;code&gt;R&lt;/code&gt; package for uploading files to Dropbox is &lt;code&gt;rDrop&lt;/code&gt; (&lt;span class="showtooltip" title="Ram K and Temple Lang D (2012). rDrop: Dropbox R interface.. R package version 0.3-0."&gt;&lt;a href="http://github.com/karthikram/rDrop"&gt;Ram &amp;amp; Temple Lang, 2012&lt;/a&gt;&lt;/span&gt;). The whole setup is very well explained in it&amp;rsquo;s GitHub repository (&lt;span class="showtooltip" title="karthik (2014). 'karthik/rDrop.' ."&gt;&lt;a href="https://github.com/karthik/rDrop"&gt;Karthik&lt;/a&gt;&lt;/span&gt;). Basically you have to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install the package and it&amp;rsquo;s dependencies (some are only on GitHub).&lt;/li&gt;
&lt;li&gt;Create a Dropbox app in your account.&lt;/li&gt;
&lt;li&gt;Get the credentials info.&lt;/li&gt;
&lt;li&gt;Authorize your access to the Dropbox app from &lt;code&gt;R&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Save that info for later use.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dropbox_save"&gt;dropbox_save()&lt;/h3&gt;
&lt;p&gt;Then uploading any type of &lt;code&gt;R&lt;/code&gt; object to Dropbox becomes as easy as using the &lt;code&gt;dropbox_save()&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;For example, lets save a simple vector with random data.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;suppressMessages(library(&amp;quot;rDrop&amp;quot;))

## Define credentials or load them if you defined them already
## dropbox_credentials &amp;lt;- dropbox_auth('Your app key', 'Your app secret')
load(&amp;quot;dropbox_credentials.Rdata&amp;quot;)

## Lets create some random data
set.seed(20140205)
x &amp;lt;- rnorm(1000)

## Lets check the args of the uploading function
args(dropbox_save)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## function (cred, ..., list = character(), file = stop(&amp;quot;'file' must be specified&amp;quot;), 
##     envir = parent.frame(), precheck = TRUE, verbose = FALSE, 
##     curl = getCurlHandle(), ext = &amp;quot;.rda&amp;quot;, .opts = list()) 
## NULL
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;
## Then lets upload it to dropbox on the public folder
done &amp;lt;- dropbox_save(dropbox_credentials, x, file = &amp;quot;public/x&amp;quot;)

## The result has some information, like the path of where you upload the
## file
names(done)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##  [1] &amp;quot;revision&amp;quot;     &amp;quot;rev&amp;quot;          &amp;quot;thumb_exists&amp;quot; &amp;quot;bytes&amp;quot;       
##  [5] &amp;quot;modified&amp;quot;     &amp;quot;client_mtime&amp;quot; &amp;quot;path&amp;quot;         &amp;quot;is_dir&amp;quot;      
##  [9] &amp;quot;icon&amp;quot;         &amp;quot;root&amp;quot;         &amp;quot;mime_type&amp;quot;    &amp;quot;size&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;done$path
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] &amp;quot;/public/x.rda&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can now actually download the &amp;ldquo;x.rda&amp;rdquo; file from 
&lt;a href="https://dl.dropboxusercontent.com/u/261002456/x.rda" target="_blank" rel="noopener"&gt;here&lt;/a&gt;. That&amp;rsquo;s in case that you also wanted to share the file, and is obviously optional.&lt;/p&gt;
&lt;p&gt;Note that you can get the link from withing &lt;code&gt;R&lt;/code&gt; and don&amp;rsquo;t even need to use the Dropbox site.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;dropbox_share(dropbox_credentials, file = &amp;quot;public/x.rda&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## $url
## [1] &amp;quot;https://db.tt/xzf3huXf&amp;quot;
## 
## $expires
## [1] &amp;quot;Tue, 01 Jan 2030 00:00:00 +0000&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="dropbox_put"&gt;dropbox_put()&lt;/h3&gt;
&lt;p&gt;What if you want to upload an actual file and not only &lt;code&gt;R&lt;/code&gt; objects? That&amp;rsquo;s where &lt;code&gt;dropbox_put()&lt;/code&gt; shines. Below is an example where we create an image, save it as a pdf file, and upload it to Dropbox.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Lets create a sample file, in this case a pdf file
pdf(&amp;quot;dropboxFig.pdf&amp;quot;)
hist(x, freq = FALSE, col = &amp;quot;light blue&amp;quot;)
tmp &amp;lt;- dev.off()

## Lets check the args for the uploading function
args(dropbox_put)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## function (cred, what, filename = what, curl = getCurlHandle(), 
##     ..., verbose = FALSE, contentType = &amp;quot;application/octet-stream&amp;quot;) 
## NULL
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;
## Now, lets upload the file
done &amp;lt;- dropbox_put(dropbox_credentials, what = &amp;quot;dropboxFig.pdf&amp;quot;, filename = &amp;quot;public/dropboxFig.pdf&amp;quot;)

## Again, the result contains some information about the file
names(done)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##  [1] &amp;quot;revision&amp;quot;     &amp;quot;rev&amp;quot;          &amp;quot;thumb_exists&amp;quot; &amp;quot;bytes&amp;quot;       
##  [5] &amp;quot;modified&amp;quot;     &amp;quot;client_mtime&amp;quot; &amp;quot;path&amp;quot;         &amp;quot;is_dir&amp;quot;      
##  [9] &amp;quot;icon&amp;quot;         &amp;quot;root&amp;quot;         &amp;quot;mime_type&amp;quot;    &amp;quot;size&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can view the result 
&lt;a href="https://dl.dropboxusercontent.com/u/261002456/dropboxFig.pdf" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="google-docs"&gt;Google Docs&lt;/h2&gt;
&lt;p&gt;From what I found, it seems to me that &lt;code&gt;RGoogleDocs&lt;/code&gt; (&lt;span class="showtooltip" title="Lang DT (2014). RGoogleDocs: Primitive interface to Google Documents from R. R package version 0.7-0."&gt;&lt;a href=""&gt;Temple Lang&lt;/a&gt;&lt;/span&gt;) is the package you&amp;rsquo;ll want to use for interacting with Google Docs from R. The manual (&lt;span class="showtooltip" title="(2014). 'An simple R interface to Google Documents.' ."&gt;&lt;a href="http://www.omegahat.org/RGoogleDocs/run.html"&gt;Temple Lang&lt;/a&gt;&lt;/span&gt;) explains all what you pretty much need to know. You should know though that you can only upload certain types of files.&lt;/p&gt;
&lt;p&gt;For example, you can upload a text file as shown below.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;suppressMessages(library(&amp;quot;RGoogleDocs&amp;quot;))

## Load password
load(&amp;quot;gpasswd.Rdata&amp;quot;)

## Something to write
text &amp;lt;- &amp;quot;Hello world!\n&amp;quot;

## Authentificate
auth &amp;lt;- getGoogleAuth(&amp;quot;lcolladotor@gmail.com&amp;quot;, gpasswd)

## Connect to Google
con &amp;lt;- getGoogleDocsConnection(auth)

## Check the args for the uploading function
args(uploadDoc)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## function (content, con, name, type = as.character(findType(content)), 
##     binary = FALSE, asText = FALSE, folder = NULL, replace = TRUE, 
##     ...) 
## NULL
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;
## Upload the file
done &amp;lt;- uploadDoc(content = text, con = con, name = &amp;quot;testFile.txt&amp;quot;, type = &amp;quot;txt&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can view the file 
&lt;a href="https://docs.google.com/document/d/1QCInrPitTJrmXiyA6TlNuQIEhi344MQl1C3zqqoqAVY/edit?usp=sharing" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="conclusions"&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;rDrop&lt;/code&gt; (&lt;span class="showtooltip" title="Ram K and Temple Lang D (2012). rDrop: Dropbox R interface.. R package version 0.3-0."&gt;&lt;a href="http://github.com/karthikram/rDrop"&gt;Ram &amp;amp; Temple Lang, 2012&lt;/a&gt;&lt;/span&gt;) is very cool and easy to use. Compared to Google Docs, you have much greater flexibility on the type of files you can upload. I guess that will change in the future if there is a Google Drive from &lt;code&gt;R&lt;/code&gt; package.&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2014). knitcitations: Citations for knitr markdown files. R package version 0.5-0."&gt;&lt;a href="http://CRAN.R-project.org/package=knitcitations"&gt;Boettiger, 2014&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;karthik,  karthik/rDrop.  &lt;em&gt;GitHub&lt;/em&gt;  
&lt;a href="https://github.com/karthik/rDrop" target="_blank" rel="noopener"&gt;https://github.com/karthik/rDrop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;An simple R interface to Google Documents.  
&lt;a href="http://www.omegahat.org/RGoogleDocs/run.html" target="_blank" rel="noopener"&gt;http://www.omegahat.org/RGoogleDocs/run.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Carl Boettiger,   (2014) knitcitations: Citations for knitr markdown files.  
&lt;a href="http://CRAN.R-project.org/package=knitcitations" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=knitcitations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Karthik Ram, Duncan  Temple Lang,   (2012) rDrop: Dropbox R interface..  
&lt;a href="http://github.com/karthikram/rDrop" target="_blank" rel="noopener"&gt;http://github.com/karthikram/rDrop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Duncan Lang,  RGoogleDocs: Primitive interface to Google Documents from R.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;sessionInfo()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## R version 3.0.2 (2013-09-25)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] RGoogleDocs_0.7-0   rDrop_0.3-0         stringr_0.6.2      
##  [4] plyr_1.8            ROAuth_0.92.0       digest_0.6.4       
##  [7] RCurl_1.95-4.1      bitops_1.0-6        RJSONIO_1.0-3      
## [10] knitcitations_0.5-0 bibtex_0.3-6        knitr_1.5          
## 
## loaded via a namespace (and not attached):
## [1] evaluate_0.5.1 formatR_0.10   httr_0.2       tools_3.0.2   
## [5] XML_3.95-0.2   xtable_1.7-1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check other topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Creating awesome reports for multiple audiences using knitrBootstrap</title>
      <link>https://lcolladotor.github.io/2013/12/10/knitrBootstrap/</link>
      <pubDate>Tue, 10 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/12/10/knitrBootstrap/</guid>
      <description>&lt;p&gt;As a biostatistics student, I use &lt;code&gt;R&lt;/code&gt; very frequently when analyzing data. At the same time, I interact with other researchers, some who know how to use &lt;code&gt;R&lt;/code&gt; (R crowd) and some who don&amp;rsquo;t (yet!): no-R crowd. This means that I have to be able to communicate my results to two crowds. It is important that I can quickly provide the code in case that the &lt;code&gt;R&lt;/code&gt; savvy want to look at it: maybe they find a bug and report it ^^. Ideally I want to avoid having to write (organize, share, etc) two crowd-specific reports.&lt;/p&gt;
&lt;p&gt;A solution to this problem is to create reproducible reports that contain the R code, the results, and interpretation. For the specific scenario I am talking about, reproducibility is a plus, however I believe that it is important for research; albeit not the topic of this post. One of the strongest packages out there to create such reports is &lt;code&gt;knitr&lt;/code&gt; (&lt;span class="showtooltip" title="Xie Y (2013). Dynamic Documents with R and knitr. Chapman and Hall/CRC. ISBN 978-1482203530."&gt;&lt;a href="http://yihui.name/knitr/"&gt;Xie, 2013&lt;/a&gt;&lt;/span&gt;). It is specially easy to create &lt;code&gt;Rmd&lt;/code&gt; files from which you can generate HTML reports. Then using 
&lt;a href="http://www.rstudio.com/" target="_blank" rel="noopener"&gt;RStudio&lt;/a&gt; you can share them via 
&lt;a href="http://rpubs.com/" target="_blank" rel="noopener"&gt;RPubs&lt;/a&gt;, a private folder on Dropbox, etc. From example, 
&lt;a href="http://rpubs.com/lcollado/2618" target="_blank" rel="noopener"&gt;this is a presentation&lt;/a&gt; without the slide formatting I shared more than a year ago.&lt;/p&gt;
&lt;p&gt;Using &lt;code&gt;knitr&lt;/code&gt; (&lt;span class="showtooltip" title="Xie Y (2013). Dynamic Documents with R and knitr. Chapman and Hall/CRC. ISBN 978-1482203530."&gt;&lt;a href="http://yihui.name/knitr/"&gt;Xie, 2013&lt;/a&gt;&lt;/span&gt;) is definitely a step in the right direction. However, you soon find yourself desiring a better template. This is where &lt;code&gt;knitrBootstrap&lt;/code&gt; (&lt;span class="showtooltip" title="Hester J (2013). knitrBootstrap: Knitr Bootstrap framework.. R package version 0.9.0."&gt;&lt;a href="http://CRAN.R-project.org/package=knitrBootstrap"&gt;Hester, 2013&lt;/a&gt;&lt;/span&gt;) comes in. This package was initialized in March 20th, 2013 by 
&lt;a href="http://jimhester.com/" target="_blank" rel="noopener"&gt;Jim Hester&lt;/a&gt; and hosted on it&amp;rsquo;s 
&lt;a href="https://github.com/jimhester/knitrBootstrap" target="_blank" rel="noopener"&gt;GitHub repository&lt;/a&gt;. I was sold on the idea early on and I am now making this post in part as a tribute to celebrate that it has been available via 
&lt;a href="http://cran.at.r-project.org/web/packages/knitrBootstrap/index.html" target="_blank" rel="noopener"&gt;CRAN&lt;/a&gt; for nearly 5 months now.&lt;/p&gt;
&lt;p&gt;So what can you do with &lt;code&gt;knitrBootstrap&lt;/code&gt; (&lt;span class="showtooltip" title="Hester J (2013). knitrBootstrap: Knitr Bootstrap framework.. R package version 0.9.0."&gt;&lt;a href="http://CRAN.R-project.org/package=knitrBootstrap"&gt;Hester, 2013&lt;/a&gt;&lt;/span&gt;)? In my opinion, you get the ideal solution (or very close at the least) to the problem I described at the beginning. Basically, you get a HTML report that has the interpretation and results which is what the no-R crowd wants to read, and the R code easily available at the click of a button for the R crowd. In addition, the report is much more nicely formatted which is pleasant to the eye. Furthermore, a menu with the sections is included which is very useful when navigating the report and for jumping to specific sections. To save space, the plots are saved as thumbnails and you can click on them to get the full view. Finally, you can choose to display toggle menus for allowing the users to change the default text and code formatting.&lt;/p&gt;
&lt;p&gt;How do you use this package? The main workhorse is the &lt;code&gt;knit_boostrap()&lt;/code&gt; function. The initial arguments are similar to those you find in &lt;code&gt;knitr::knit()&lt;/code&gt; while the new features are controlled using:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;boot_style&lt;/code&gt; You can select out of 11 or so options for the default formatting. Basically, you choose one of the Bootstrap themes available.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;code_style&lt;/code&gt; Similar to &lt;code&gt;boot_style&lt;/code&gt; but for controlling the appearance of the code chunks.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chooser&lt;/code&gt; Allows you to control if you want a toggle menu so the user can choose (hence the name) the bootstrap and/or code styles.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;thumbsize&lt;/code&gt; For controlling the size of figure thumbnails.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;show_code&lt;/code&gt; Whether by default the code is shown. I set this to &lt;code&gt;FALSE&lt;/code&gt; in order to get a report that by default is accessible for the no-R crowd. The R crowd can then click to see the code for each code chunk or use the menu on the bottom to show all the code at once.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;show_output&lt;/code&gt; Similar to &lt;code&gt;show_code&lt;/code&gt; but for controlling the visibility of the output produced from the code. I set this to &lt;code&gt;TRUE&lt;/code&gt; as you normally want to show the output to both the no-R and R crowds.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;show_figure&lt;/code&gt; Whether you want to show the plots or not.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;graphics&lt;/code&gt; Used only for controlling the toggle menus for the bootstrap and code styles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you have decided which options you want to use, it is as simple as running the following code for your &lt;code&gt;Rmd&lt;/code&gt; file (named &lt;code&gt;file.Rmd&lt;/code&gt; in the example):&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Install if needed
install.packages(&amp;quot;knitrBootstrap&amp;quot;)

## knit with knitrBootstrap
library(&amp;quot;knitrBootstrap&amp;quot;)
knit_bootstrap(&amp;quot;file.Rmd&amp;quot;, code_style = &amp;quot;Brown Paper&amp;quot;, chooser = c(&amp;quot;boot&amp;quot;, &amp;quot;code&amp;quot;), 
    show_code = FALSE)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Things get a tiny bit more complicated if you want to use 
&lt;a href="http://www.rstudio.com/" target="_blank" rel="noopener"&gt;RStudio&lt;/a&gt;. You basically have to modify your &lt;code&gt;.Rprofile&lt;/code&gt; file, then load RStudio and change the settings to weave files with &lt;code&gt;knitr&lt;/code&gt;instead of using &lt;code&gt;Sweave&lt;/code&gt;. Then, you have to use &lt;code&gt;knitr::render_html()&lt;/code&gt; on the &lt;code&gt;Rmd&lt;/code&gt; file itself. Below is a short example of the &lt;code&gt;.Rprofile&lt;/code&gt; modified to use &lt;code&gt;knitrBootstrap&lt;/code&gt; and the basic &lt;code&gt;Rmd&lt;/code&gt; example.&lt;/p&gt;
&lt;script src="https://gist.github.com/lcolladotor/6445771.js"&gt;&lt;/script&gt;
&lt;p&gt;You can view the final output 
&lt;a href="http://rpubs.com/lcollado/11210" target="_blank" rel="noopener"&gt;here&lt;/a&gt;. Note that you might need to click on &amp;ldquo;hide toolbars&amp;rdquo; (a RPubs option) to clearly view the menus on the bottom.&lt;/p&gt;
&lt;p&gt;If you are like me and use 
&lt;a href="https://github.com/textmate/textmate" target="_blank" rel="noopener"&gt;Textmate&lt;/a&gt; as your text editor, you can knit the &lt;code&gt;Rmd&lt;/code&gt; files with &lt;code&gt;knitrBootstrap&lt;/code&gt; and preview them directly on the Textmate viewr using a command like this (modified from the SWeave bundle):&lt;/p&gt;
&lt;script src="https://gist.github.com/lcolladotor/7884334.js"&gt;&lt;/script&gt;
&lt;p&gt;Other usage options are described in the 
&lt;a href="http://jimhester.github.io/knitrBootstrap" target="_blank" rel="noopener"&gt;knitrBootstrap help page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To close off, let me emphasize how useful it is to be able to generate a single report that is pleasant to the eye, contains all the information, and is easily sharable for both the R and no-R crowds. Plus it&amp;rsquo;s reproducible!&lt;/p&gt;
&lt;p&gt;I really like this package and would like to thank 
&lt;a href="http://jimhester.com/" target="_blank" rel="noopener"&gt;Jim Hester&lt;/a&gt; for this great package! Keep up the good work! I even use &lt;code&gt;knitrBootstrap&lt;/code&gt; in 
&lt;a href="https://github.com/lcolladotor/derfinderReport" target="_blank" rel="noopener"&gt;derfinderReport&lt;/a&gt; which generates reports on the results from 
&lt;a href="https://github.com/lcolladotor/derfinder" target="_blank" rel="noopener"&gt;derfinder&lt;/a&gt;, a package that I am currently developing.&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2013). knitcitations: Citations for knitr markdown files. R package version 0.4-7."&gt;&lt;a href="http://CRAN.R-project.org/package=knitcitations"&gt;Boettiger, 2013&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Carl Boettiger,   (2013) knitcitations: Citations for knitr markdown files.  
&lt;a href="http://CRAN.R-project.org/package=knitcitations" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=knitcitations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Yihui Xie,   (2013) Dynamic Documents with {R} and knitr.  
&lt;a href="http://yihui.name/knitr/" target="_blank" rel="noopener"&gt;http://yihui.name/knitr/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jim Hester,   (2013) knitrBootstrap: Knitr Bootstrap framework..  
&lt;a href="http://CRAN.R-project.org/package=knitrBootstrap" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=knitrBootstrap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;sessionInfo()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## R version 3.0.2 (2013-09-25)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] knitrBootstrap_0.9.0 knitcitations_0.4-7  bibtex_0.3-6        
## [4] knitr_1.5           
## 
## loaded via a namespace (and not attached):
##  [1] codetools_0.2-8 digest_0.6.4    evaluate_0.5.1  formatR_0.10   
##  [5] httr_0.2        markdown_0.6.3  RCurl_1.95-4.1  stringr_0.6.2  
##  [9] tools_3.0.2     XML_3.95-0.2    xtable_1.7-1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check other topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Trying to reduce the memory overhead when using mclapply</title>
      <link>https://lcolladotor.github.io/2013/11/14/Reducing-memory-overhead-when-using-mclapply/</link>
      <pubDate>Thu, 14 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/11/14/Reducing-memory-overhead-when-using-mclapply/</guid>
      <description>&lt;p&gt;I am currently trying to understand how to reduce the memory used by &lt;code&gt;mclapply&lt;/code&gt;. This function is rather complicated and others have explained the differences versus &lt;code&gt;parLapply&lt;/code&gt; (&lt;span class="showtooltip" title="A\_Skelton73 (2013). 'understanding the differences between mclapply and parLapply in R.' ."&gt;&lt;a href="http://stackoverflow.com/questions/17196261/understanding-the-differences-between-mclapply-and-parlapply-in-r"&gt;A_Skelton73, 2013&lt;/a&gt;&lt;/span&gt;; &lt;span class="showtooltip" title="lockedoff (2012). 'Using mclapply, foreach, or something else in [r] to operate on an object in parallel?' ."&gt;&lt;a href="http://stackoverflow.com/questions/11036702/using-mclapply-foreach-or-something-else-in-r-to-operate-on-an-object-in-par"&gt;lockedoff, 2012&lt;/a&gt;&lt;/span&gt; ) and also made it clear that in &lt;code&gt;mclapply&lt;/code&gt;  each job does not know if the others are running out of memory and thus cannot trigger &lt;code&gt;gc&lt;/code&gt; (&lt;span class="showtooltip" title="(2013). ' [R-sig-hpc] mclapply: rm intermediate objects and returning	memory .' ."&gt;&lt;a href="https://mailman.stat.ethz.ch/pipermail/r-sig-hpc/2012-October/001534.html"&gt;Urbanek, 2012&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;While I still struggle to understand all the details of &lt;code&gt;mclapply&lt;/code&gt;, I can successfully use it to reduce computation time at the expense of a very high memory load. I am still looking for tips on how to reduce this memory load.&lt;/p&gt;
&lt;p&gt;Here is what I have done.&lt;/p&gt;
&lt;h2 id="problem-setting"&gt;Problem setting&lt;/h2&gt;
&lt;p&gt;I have a large data set on the form of a data.frame. I want to apply a function that works using subsets of the data.frame without the need for communication between the chunks, and I want to apply the function fast. In other words, I can safely split the matrix and speed the computation process using &lt;code&gt;mclapply&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;While this works, I would like to minimize memory consumption.&lt;/p&gt;
&lt;h2 id="toy-data"&gt;Toy data&lt;/h2&gt;
&lt;p&gt;Here is just some toy data for the example.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## The real data set is much larger than this
set.seed(20131113)
data &amp;lt;- data.frame(matrix(rnorm(1e+05), ncol = 10))
dim(data)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 10000    10
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="approach-1"&gt;Approach 1&lt;/h2&gt;
&lt;p&gt;The first approach I have used is to pre-split the data and then use &lt;code&gt;mclapply&lt;/code&gt; over the split data. For illustrative purposes, lets say that the function I want to apply is just &lt;code&gt;rowMeans&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Pre-split the data
dataSplit &amp;lt;- split(data, rep(1:10, each = 1000))

## Approach 1
library(&amp;quot;parallel&amp;quot;)
res1 &amp;lt;- mclapply(dataSplit, rowMeans, mc.cores = 2)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This gets the job done, but because my real &lt;code&gt;dataSplit&lt;/code&gt; is much larger in memory, using say 8-10 cores blows up the memory.&lt;/p&gt;
&lt;h3 id="best-way-to-pre-split"&gt;Best way to pre-split?&lt;/h3&gt;
&lt;p&gt;If I know that if I am using \( n \) number of cores (in this example \( n=2 \) ) and the data set has \( m \) rows, then one option for approach #1 is to split the data into \( n \) chunks each of size \( m / n \) (rounding if needed).&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Pre-split the data into m/n chunks
dataSplit1b &amp;lt;- split(data, rep(1:2, each = 5000))

## Approach 1b
res1b &amp;lt;- mclapply(dataSplit1b, rowMeans, mc.cores = 2)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The memory needed is then in part determined by the chunksize (1000 vs 5000 shown above). One excellent suggestion (via Ben) is to reduce the memory load using this approach is to just smaller chunks. However, the runtime of the function I want to apply (&lt;code&gt;rowMeans&lt;/code&gt; in the example) is not very sensible to the chunksize used, thus using very small chunks is not ideal as it increases computation time. Finding the sweet point is tricky, but using chunksizes of \(m / (2n) \) could certainly help memory wise without majorly affecting computation time.&lt;/p&gt;
&lt;h2 id="approach-2"&gt;Approach 2&lt;/h2&gt;
&lt;p&gt;One suggestion (via Roger) is to use an environment in order to minimize copying (and thus memory load) while using &lt;code&gt;mclapply&lt;/code&gt; over a set of indexes.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Save the split data in an environment
my.env &amp;lt;- new.env()
my.env$data1 &amp;lt;- dataSplit1b[[1]]
my.env$data2 &amp;lt;- dataSplit1b[[2]]

## Function that takes indexes, then extracts the data from the environment
applyMyFun &amp;lt;- function(idx, env) {
    eval(parse(text = paste0(&amp;quot;result &amp;lt;- env$&amp;quot;, ls(env)[idx])))
    rowMeans(result)
}

## Approach 2
index &amp;lt;- 1:2
names(index) &amp;lt;- 1:2
res2 &amp;lt;- mclapply(index, applyMyFun, env = my.env, mc.cores = 2)

## Same result?
identical(res1b, res2)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] TRUE
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="approach-3"&gt;Approach 3&lt;/h2&gt;
&lt;p&gt;Another suggestion (via Roger) is to save the data chunks and load them individually inside the function that I pass to &lt;code&gt;mclapply&lt;/code&gt;. This does not seem ideal in terms of having to create the temporary chunk data files. But I would expect this method to have the lowest memory footprint.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Save the chunks
for (i in names(dataSplit1b)) {
    chunk &amp;lt;- dataSplit1b[[i]]
    output &amp;lt;- paste0(&amp;quot;chunk&amp;quot;, i, &amp;quot;.Rdata&amp;quot;)
    save(chunk, file = output)
}

## Function that loads the chunk
applyMyFun2 &amp;lt;- function(idx) {
    load(paste0(&amp;quot;chunk&amp;quot;, idx, &amp;quot;.Rdata&amp;quot;))
    rowMeans(chunk)
}

## Approach 3
res3 &amp;lt;- mclapply(index, applyMyFun2, mc.cores = 2)

## Same result?
identical(res1b, res3)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] TRUE
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="computation-time-comparison"&gt;Computation time comparison&lt;/h2&gt;
&lt;p&gt;Computation time wise, approaches 2 and 3 do not seem very different. Approach 1b seems a tiny bit faster. [Edit: the order of the best approach might change slightly if you re-run this code]&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;library(&amp;quot;microbenchmark&amp;quot;)
micro &amp;lt;- microbenchmark(mclapply(dataSplit1b, rowMeans, mc.cores = 2), mclapply(index, 
    applyMyFun, env = my.env, mc.cores = 2), mclapply(index, applyMyFun2, mc.cores = 2))
micro
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Unit: milliseconds
##                                                     expr   min    lq
##            mclapply(dataSplit1b, rowMeans, mc.cores = 2) 17.43 19.97
##  mclapply(index, applyMyFun, env = my.env, mc.cores = 2) 17.05 19.20
##               mclapply(index, applyMyFun2, mc.cores = 2) 17.19 23.11
##  median    uq   max neval
##   21.41 26.00 65.53   100
##   20.60 23.92 43.67   100
##   24.56 28.39 46.99   100
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;library(&amp;quot;ggplot2&amp;quot;)
autoplot(micro)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://lcolladotor.github.io/figs/2013-11-14-Reducing-memory-overhead-when-using-mclapply/compTime.png" alt="center"&gt;&lt;/p&gt;
&lt;h2 id="memory-wise-comparison"&gt;Memory wise comparison&lt;/h2&gt;
&lt;p&gt;Relying on the cluster tools for calculating the maximum memory used, I ran each approach (1b, 2, and 3) ten times each using 2 cores using the scripts available in 
&lt;a href="https://gist.github.com/lcolladotor/7462753" target="_blank" rel="noopener"&gt;this gist&lt;/a&gt;. The maximum memory used showed no variability (within an approach) and the results are that approach 1b used 1.224G RAM, approach 2 used 1.176G RAM, and approach 3 used 1.177G RAM. Not a huge difference. Due to having to write and then load, approach 3 was slower than the other two.&lt;/p&gt;
&lt;p&gt;Re-doing the previous test but using 20 cores lead to very similar wall clock computation times between all three approaches and to approaches 1b and 2 for 2 cores. This is due to the nature of the example, aka &lt;code&gt;rowMeans&lt;/code&gt; is fast even with the larger chunks. Approach 1b used 7.728G RAM, approach 2 used 7.674G RAM, and approach 3 used 7.690G RAM. Hm&amp;hellip;&lt;/p&gt;
&lt;p&gt;Using 20 cores with previously created data files (either the split data for approaches 1b and 2, or the chunk files for approach 3) has a very different memory footprint. Approach 1b used in average 6.0744G RAM, approach 2 used 4.2647G RAM
, and approach 3 used 2.6545G RAM.&lt;/p&gt;
&lt;h3 id="edit"&gt;Edit&lt;/h3&gt;
&lt;p&gt;Ryan from (&lt;span class="showtooltip" title="(2013). ' [Bioc-devel] Trying to reduce the memory overhead when using mclapply .' ."&gt;&lt;a href="https://stat.ethz.ch/pipermail/bioc-devel/2013-November/004930.html"&gt;Ryan 2013&lt;/a&gt;&lt;/span&gt;) contributed a fourth approach which used 6.794G RAM when starting from scratch with 20 cores. This approach definitely beats the other ones under the condition of starting from scratch. Note that just creating the &lt;code&gt;data&lt;/code&gt; object uses 558.938M RAM: multiplied by 20 it would be around 10.92G RAM.&lt;/p&gt;
&lt;h2 id="conclusions"&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;Using 2 or 20 cores, approach 2 beat by a very small margin approaches 3 and 1b in terms of memory usage. However, all approaches failed in terms of not having the memory blow up as you increase the number of cores when starting from scratch.&lt;/p&gt;
&lt;p&gt;If a lower memory option is used for splitting the data and creating the chunk files, approach 3 seems like the winner in terms of memory usage. So in pure terms of lowering the memory load on &lt;code&gt;mclapply&lt;/code&gt; approach 3 wins, although you still need to create the chunk files and do so without much memory usage.&lt;/p&gt;
&lt;p&gt;If you have any ideas or suggestions, please let me know! Thank you!&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2013). knitcitations: Citations for knitr markdown files. R package version 0.4-7."&gt;&lt;a href="http://CRAN.R-project.org/package=knitcitations"&gt;Boettiger, 2013&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A_Skelton73,   (2013) understanding the differences between mclapply and parLapply in R.  &lt;em&gt;understanding the differences between mclapply and parLapply in R - Stack Overflow&lt;/em&gt;  
&lt;a href="http://stackoverflow.com/questions/17196261/understanding-the-differences-between-mclapply-and-parlapply-in-r" target="_blank" rel="noopener"&gt;http://stackoverflow.com/questions/17196261/understanding-the-differences-between-mclapply-and-parlapply-in-r&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;lockedoff,   (2012) Using mclapply, foreach, or something else in [r] to operate on an object in parallel?.  &lt;em&gt;Using mclapply, foreach, or something else in [r] to operate on an object in parallel? - Stack Overflow&lt;/em&gt;  
&lt;a href="http://stackoverflow.com/questions/11036702/using-mclapply-foreach-or-something-else-in-r-to-operate-on-an-object-in-par" target="_blank" rel="noopener"&gt;http://stackoverflow.com/questions/11036702/using-mclapply-foreach-or-something-else-in-r-to-operate-on-an-object-in-par&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[R-sig-hpc] mclapply: rm intermediate objects and returning	memory
.  
&lt;a href="https://mailman.stat.ethz.ch/pipermail/r-sig-hpc/2012-October/001534.html" target="_blank" rel="noopener"&gt;https://mailman.stat.ethz.ch/pipermail/r-sig-hpc/2012-October/001534.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Bioc-devel] Trying to reduce the memory overhead when using mclapply
.  
&lt;a href="https://stat.ethz.ch/pipermail/bioc-devel/2013-November/004930.html" target="_blank" rel="noopener"&gt;https://stat.ethz.ch/pipermail/bioc-devel/2013-November/004930.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Carl Boettiger,   (2013) knitcitations: Citations for knitr markdown files.  
&lt;a href="http://CRAN.R-project.org/package=knitcitations" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=knitcitations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;sessionInfo()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## R version 3.0.2 (2013-09-25)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] parallel  stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
## [1] microbenchmark_1.3-0 ggplot2_0.9.3.1      knitcitations_0.4-7 
## [4] bibtex_0.3-6         knitr_1.5           
## 
## loaded via a namespace (and not attached):
##  [1] codetools_0.2-8    colorspace_1.2-4   dichromat_2.0-0   
##  [4] digest_0.6.4       evaluate_0.5.1     formatR_0.10      
##  [7] grid_3.0.2         gtable_0.1.2       httr_0.2          
## [10] labeling_0.2       MASS_7.3-29        munsell_0.4.2     
## [13] plyr_1.8           proto_0.3-10       RColorBrewer_1.0-5
## [16] RCurl_1.95-4.1     reshape2_1.2.2     scales_0.2.3      
## [19] stringr_0.6.2      tools_3.0.2        XML_3.95-0.2      
## [22] xtable_1.7-1
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="scripts"&gt;Scripts&lt;/h3&gt;
&lt;p&gt;The scripts are available in 
&lt;a href="https://gist.github.com/lcolladotor/7462753" target="_blank" rel="noopener"&gt;this gist&lt;/a&gt;. The main one is &lt;code&gt;testApproach.R&lt;/code&gt; while the other ones are just job-submitters.&lt;/p&gt;
&lt;script src="https://gist.github.com/lcolladotor/7462753.js"&gt;&lt;/script&gt;
&lt;p&gt;Check other topics on 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Creating your Jekyll-Bootstrap powered blog for R blogging</title>
      <link>https://lcolladotor.github.io/2013/11/09/new-Fellgernon-Bit-setup-in-Github/</link>
      <pubDate>Sat, 09 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/11/09/new-Fellgernon-Bit-setup-in-Github/</guid>
      <description>&lt;p&gt;As you might have noticed, I recently decided to move &lt;code&gt;Fellgernon Bit&lt;/code&gt; from 
&lt;a href="http://bit.ly/FellgernonBit" target="_blank" rel="noopener"&gt;Tumblr&lt;/a&gt; to 
&lt;a href="http://bit.ly/FellBit" target="_blank" rel="noopener"&gt;GitHub&lt;/a&gt;. There are a couple of reasons why I made this change.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I wanted a more professional-looking blog.
&lt;ul&gt;
&lt;li&gt;There are not many R blogs on Tumblr, and well, long text posts are not really meant for Tumblr.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Better code highlighting.
&lt;ul&gt;
&lt;li&gt;I had enabled R code highlighting using the highlighting instructions from Jeffrey Horner (&lt;span class="showtooltip" title="@jeffreyhorner (2013). 'Blog with R Markdown and tumblr: Part I.' ."&gt;&lt;a href="http://jeffreyhorner.tumblr.com/post/25804518110/blog-with-r-markdown-and-tumblr-part-i"&gt;Horner, Part I&lt;/a&gt;&lt;/span&gt;). The instructions are great! I guess I just got lazy to tweak the CSS of my Tumblr blog to fix some things I didn&amp;rsquo;t like.&lt;/li&gt;
&lt;li&gt;I also want to be able to highlight code from other languages, like &lt;code&gt;bash&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Make it easier to embed any HTML code.
&lt;ul&gt;
&lt;li&gt;Yes, you can write posts at Tumblr in pure HTML but sometimes things break as Tumblr doesn&amp;rsquo;t like them.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Easier process of writing posts using Rmd files.
&lt;ul&gt;
&lt;li&gt;The steps in Horner&amp;rsquo;s guide (&lt;span class="showtooltip" title="@jeffreyhorner (2013). 'Blog with R Markdown and tumblr: Part II.' ."&gt;&lt;a href="http://jeffreyhorner.tumblr.com/post/25943954723/blog-with-r-markdown-and-tumblr-part-ii"&gt;Horner, Part II&lt;/a&gt;&lt;/span&gt;) are quite involved. Instead of those steps, I was just knitting my posts and then manually copying the html code in the &lt;code&gt;body&lt;/code&gt; tags, then pasting it in Tumblr.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Easy way to host figures and link to them.
&lt;ul&gt;
&lt;li&gt;I have previously hosted pictures through Picasa Web Albums, but with the push towards Google Plus they made it harder to embed solo pictures (you can embed Google+ posts though).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I had also previously heard about 
&lt;a href="http://jekyllrb.com/" target="_blank" rel="noopener"&gt;Jekyll&lt;/a&gt;-powered blogs, specially thanks to Yihui Xie&amp;rsquo;s blog (&lt;span class="showtooltip" title="Xie Y (2013). 'Statistics, R, Graphics and Fun | Yihui Xie.' ."&gt;&lt;a href="http://yihui.name/en/"&gt;Xie, English version&lt;/a&gt;&lt;/span&gt;). At the time when I first learned about this type of blog it seemed challenging so I never dedicated the time to really learn about it. What ended up movitivating me to do so was our new student bloggers group 
&lt;a href="https://twitter.com/jhubiostat" target="_blank" rel="noopener"&gt;@jhubiostat&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Let me describe how I set up 
&lt;a href="http://bit.ly/FellBit" target="_blank" rel="noopener"&gt;Fellgernon Bit @ GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="setting-up-fellgernon-bit--githubhttpbitlyfellbit"&gt;Setting up 
&lt;a href="http://bit.ly/FellBit" target="_blank" rel="noopener"&gt;Fellgernon Bit @ GitHub&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="creating-the-jekyll-bootstrap-blog"&gt;Creating the Jekyll-Bootstrap blog&lt;/h3&gt;
&lt;p&gt;My main guide to setup the blog comes from a post by J. Fisher (&lt;span class="showtooltip" title="Fisher JC (2012). 'Blog with Knitr and Jekyll.' ."&gt;&lt;a href="http://jfisher-usgs.github.io/r/2012/07/03/knitr-jekyll/"&gt;Fisher, 2012&lt;/a&gt;&lt;/span&gt;) which points to another of his posts (&lt;span class="showtooltip" title="Fisher JC (2012). 'Jekyll Build on Windows.' ."&gt;&lt;a href="http://jfisher-usgs.github.io/lessons/2012/05/30/jekyll-build-on-windows/"&gt;Fisher, 2012b&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;h4 id="install-jekyll"&gt;Install Jekyll&lt;/h4&gt;
&lt;p&gt;Before doing anything, I first had to install 
&lt;a href="http://jekyllrb.com/" target="_blank" rel="noopener"&gt;Jekyll&lt;/a&gt;. To do so I recommend checking the installation documentation (&lt;span class="showtooltip" title="(2013). 'Installation.' ."&gt;&lt;a href="http://jekyllrb.com/docs/installation/"&gt;Jekyll Installation&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;To install 
&lt;a href="http://jekyllrb.com/" target="_blank" rel="noopener"&gt;Jekyll&lt;/a&gt;, I needed to have 
&lt;a href="https://www.ruby-lang.org/en/downloads/" target="_blank" rel="noopener"&gt;Ruby&lt;/a&gt; and 
&lt;a href="http://rubygems.org/pages/download" target="_blank" rel="noopener"&gt;RubyGems&lt;/a&gt;. Since I use 
&lt;a href="http://www.macports.org/" target="_blank" rel="noopener"&gt;MacPorts&lt;/a&gt; these are the steps I used:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
## Update MacPorts, can take a while!!
sudo port selfupdate
sudo port upgrade outdated

## Search for Ruby and install it
## I think that Jekyll needs 1.9+ since I had 1.8 already installed
port search ruby
sudo port install ruby19
## Set as default version
sudo port select --set ruby ruby19

## Check which version you have
ruby --version

## I manually set mine to be ruby1.9
cd /opt/local/bin
sudo ln -s ruby1.9 ruby
ruby --version 
## This is mine:
## ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With Ruby in place, I could then install jekyll.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
sudo gem install jekyll
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that you can also do this after initializing the blog.&lt;/p&gt;
&lt;h3 id="initialize-blog"&gt;Initialize blog&lt;/h3&gt;
&lt;p&gt;Following the instructions (&lt;span class="showtooltip" title="Fisher JC (2012). 'Jekyll Build on Windows.' ."&gt;&lt;a href="http://jfisher-usgs.github.io/lessons/2012/05/30/jekyll-build-on-windows/"&gt;Fisher, 2012b&lt;/a&gt;&lt;/span&gt;) I then acquired all the setup files for 
&lt;a href="http://jekyllbootstrap.com/" target="_blank" rel="noopener"&gt;Jekyll-Bootstrap&lt;/a&gt;. The installation instructions are quite straight forward as you will see (&lt;span class="showtooltip" title="(2013). 'Jekyll Quick Start | ruhoh universal static blog generator.' ."&gt;&lt;a href="http://jekyllbootstrap.com/usage/jekyll-quick-start.html"&gt;JB Quick Start&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;First, I created the &lt;code&gt;lcolladotor.github.com&lt;/code&gt; repository on GitHub. As my GitHub username is &lt;code&gt;lcolladotor&lt;/code&gt;, by default GitHub will consider the &lt;code&gt;lcolladotor.github.com&lt;/code&gt; repository as a GitHub pages repository and publish it. Thus creating 
&lt;a href="http://lcolladotor.github.io/" target="_blank" rel="noopener"&gt;lcolladotor.github.io/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once the repository was created, I added the Jekyll-Bootstrap files.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
## Initialize repo with Jekyll-Bootstrap files
git clone https://github.com/plusjade/jekyll-bootstrap.git lcolladotor.github.com
cd lcolladotor.github.com/
git remote set-url origin git@github.com:lcolladotor/lcolladotor.github.com.git
git push -u origin master
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="change-theme-to-twitter-20"&gt;Change theme to Twitter-2.0&lt;/h3&gt;
&lt;p&gt;Jekyll-Bootstrap includes several themes (&lt;span class="showtooltip" title="(2013). 'Using Themes | ruhoh universal static blog generator.' ."&gt;&lt;a href="http://jekyllbootstrap.com/usage/jekyll-theming.html"&gt;JB Themes&lt;/a&gt;&lt;/span&gt;) which you check on their 
&lt;a href="http://themes.jekyllbootstrap.com/" target="_blank" rel="noopener"&gt;theme explorer&lt;/a&gt;. I think that 
&lt;a href="http://jfisher-usgs.github.io/" target="_blank" rel="noopener"&gt;J. Fisher&amp;rsquo;s blog&lt;/a&gt; looks good with Twitter-2.0 and decided to follow his lead. Furthermore, he has customized a few things (check 
&lt;a href="https://github.com/jfisher-usgs/jfisher-usgs.github.com/commits/master" target="_blank" rel="noopener"&gt;his blog&amp;rsquo;s history&lt;/a&gt;) which I just plan on using.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
## Install Twitter-2.0 theme
rake theme:install git=&amp;quot;https://github.com/gdagley/theme-twitter-2.0&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="code-highlighting"&gt;Code highlighting&lt;/h3&gt;
&lt;p&gt;The default Jekyll highlighting setup uses 
&lt;a href="http://pygments.org/" target="_blank" rel="noopener"&gt;pygments&lt;/a&gt;. I am basing my statement on the documentation for the &lt;em&gt;highlight&lt;/em&gt; argument in &lt;code&gt;?knitr::render_jekyll&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;which code highlighting engine to use: for pygments, the Liquid syntax is used (default approach Jekyll)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So I installed Pygments.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
## Install Pygments, assuming you have Python installed
curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
sudo easy_install Pygments
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that (&lt;span class="showtooltip" title="Fisher JC (2012). 'Jekyll Build on Windows.' ."&gt;&lt;a href="http://jfisher-usgs.github.io/lessons/2012/05/30/jekyll-build-on-windows/"&gt;Fisher, 2012b&lt;/a&gt;&lt;/span&gt;) details some other steps. I basically copied his 
&lt;a href="https://github.com/jfisher-usgs/jfisher-usgs.github.com/blob/master/assets/themes/twitter-2.0/css/syntax.css" target="_blank" rel="noopener"&gt;syntax.css&lt;/a&gt; file and saved it as &lt;code&gt;/assets/themes/twitter-2.0/css/syntax.css&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Note that you do have to add to &lt;code&gt;_includes/themes/twitter-2.0/default.html&lt;/code&gt; the following line:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-{html}"&gt;&amp;lt;link href=&amp;quot;/assets/themes/twitter-2.0/css/syntax.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you can see 
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/blob/master/_includes/themes/twitter-2.0/default.html" target="_blank" rel="noopener"&gt;on my own file&lt;/a&gt; in line 23 (currently) I am using a Liquid syntax instead of specifying the full path.&lt;/p&gt;
&lt;h3 id="import-posts"&gt;Import posts&lt;/h3&gt;
&lt;p&gt;Next I had to import my posts from Tumblr. Jekyll has a varied set of tools that allow you to quickly import posts which I recommend using if you are migrating your blog (&lt;span class="showtooltip" title="(2013). 'Blog migrations.' ."&gt;&lt;a href="http://jekyllrb.com/docs/migrations/"&gt;Blog Migrations&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;The Tumblr importer allows you to either import them into HTML format or Markdown format. I first tried Markdown, but ran into some problems. So I decided to import them into HTML format, and rename them to Markdown.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
## Install importing tools
sudo gem install jekyll-import --pre

## Import the posts
cd ~/
mkdir tmp
/opt/local/bin/ruby1.9 -rubygems -e 'require &amp;quot;jekyll/jekyll-import/tumblr&amp;quot;; JekyllImport::Tumblr.process(&amp;quot;http://fellgernon.tumblr.com&amp;quot;, &amp;quot;html&amp;quot;, true, false, false)'
## There is a post that the converter didn't like, so I had to set to &amp;quot;private&amp;quot; mode


## Rename from HTML to Markdown
cd _posts/tumblr/
for i in *html; do echo $i; filename=$(basename &amp;quot;$i&amp;quot;); filename2=&amp;quot;${filename%.*}&amp;quot;; echo $filename2; mv $i ${filename2}.md; done

## Move the posts to _posts
mv ~/tmp/_posts/tumblr/*md ~/WhereYouHaveYourLocalGitRepoCopy/lcollado.github.com/_posts/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I then had to do some manual edits on the posts, specially for code chunks. For example, 
&lt;a href="https://raw.github.com/lcolladotor/lcolladotor.github.com/master/_posts/2013-05-09-reading-an-r-file-from-github.md" target="_blank" rel="noopener"&gt;this post&lt;/a&gt; has R chunks which I had to surround by:&lt;/p&gt;
&lt;script src="https://gist.github.com/lcolladotor/7388043.js"&gt;&lt;/script&gt;
&lt;p&gt;To complete the posts, I made sure the YAML front matter was correct and defined categories since I only had tags in Tumblr.&lt;/p&gt;
&lt;h3 id="viewing-your-blog-locally"&gt;Viewing your blog locally&lt;/h3&gt;
&lt;p&gt;Once you have the posts, you can use Jekyll to view your blog locally.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
## Go to your directory
~/WhereYouHaveYourLocalGitRepoCopy/lcollado.github.com/

## Generate the static view of your blog
jekyll serve
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In my case, &lt;code&gt;jekyll serve&lt;/code&gt; prompted a couple of errors which I had to go to the posts and edit. For example, some HTML tag that I opened but didn&amp;rsquo;t close. Stuff like that.&lt;/p&gt;
&lt;p&gt;Once you run the previous command, you can then view your site on your browser at http://localhost:4000/&lt;/p&gt;
&lt;h3 id="customizing"&gt;Customizing&lt;/h3&gt;
&lt;p&gt;The very first thing you must change is the _config.yml file. The file you copied from Jekyll-Bootstrap includes instructions on how to do so. If you learn by example, take a peek at 
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/blob/master/_config.yml" target="_blank" rel="noopener"&gt;mine&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In my case, I use 
&lt;a href="http://disqus.com/" target="_blank" rel="noopener"&gt;Disqus&lt;/a&gt; for comments and 
&lt;a href="http://www.google.com/analytics" target="_blank" rel="noopener"&gt;Google Analytics&lt;/a&gt; for tracking visits. Since I was also using 
&lt;a href="http://disqus.com/" target="_blank" rel="noopener"&gt;Disqus&lt;/a&gt; for my Tumblr blog, I used 
&lt;a href="http://disqus.com/" target="_blank" rel="noopener"&gt;Disqus&lt;/a&gt;&amp;rsquo; tools to migrate the comments. Finally, I use 
&lt;a href="http://feedburner.google.com/" target="_blank" rel="noopener"&gt;FeedBurner&lt;/a&gt; for my RSS feed, which I was able to update to the new 
&lt;a href="http://lcolladotor.github.io/rss.xml" target="_blank" rel="noopener"&gt;RSS generated by Fellgernon Bit @ GitHub&lt;/a&gt;. Thus, the subscribers to 
&lt;a href="http://feeds.feedburner.com/FellgernonBit" target="_blank" rel="noopener"&gt;feeds.feedburner.com/FellgernonBit&lt;/a&gt; didn&amp;rsquo;t have to change anything.&lt;/p&gt;
&lt;p&gt;I also added 
&lt;a href="https://www.addthis.com/get/smart-layers#.Un5oIpTF2Ql" target="_blank" rel="noopener"&gt;AddThis Smart Layers&lt;/a&gt; with 
&lt;a href="https://bitly.com/" target="_blank" rel="noopener"&gt;bit.ly&lt;/a&gt; shortening to the site and a 
&lt;a href="http://www.clustrmaps.com/" target="_blank" rel="noopener"&gt;ClustrMap&lt;/a&gt; as you can see in 
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/blob/master/_layouts/page.html" target="_blank" rel="noopener"&gt;_layouts/page.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As for math, I am currently using the rdiscount flavor of Markdown and loading the MathJax script as you can see in 
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/blob/master/_layouts/default.html" target="_blank" rel="noopener"&gt;_layouts/default.html&lt;/a&gt;. However, note that we shoudn&amp;rsquo;t ask too much power out of Markdown for math (&lt;span class="showtooltip" title="Xie Y (2013). 'Markdown or LaTeX? | Yihui Xie.' ."&gt;&lt;a href="http://yihui.name/en/2013/10/markdown-or-latex/"&gt;Xie, 2013&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;To use rdiscount locally, I also had to install it. I have also tried out kramdown.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
## Markdown flavors
sudo gem install rdiscount
sudo gem install kramdown

## I don't remember why I also installed this:
sudo gem install nokogiri
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I then customized the index and added other pages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/blob/master/index.html" target="_blank" rel="noopener"&gt;index.html&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Used code from Jason Fisher to add the pagination.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/blob/master/about.html" target="_blank" rel="noopener"&gt;about.html&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Simple description&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/blob/master/_includes/themes/twitter-2.0/default.html" target="_blank" rel="noopener"&gt;_includes/themes/twitter-2.0/default.html&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;I added a CSS drop down menu (constructed with 
&lt;a href="http://cssmenumaker.com/builder/1044267" target="_blank" rel="noopener"&gt;CSS Menu Maker&lt;/a&gt;) with the blogs I follow. For this I also had to modify 
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/commit/15e03fdc317399b37521f130269adf3e7da7efb3" target="_blank" rel="noopener"&gt;_assets/themes/twitter-2.0/css/style.css&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I modified the footer to mention that my posts are under the Creative Commons License version 3 BY-NC-SA. An idea I took from Yihui Xie&amp;rsquo;s blog.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since I am interested in getting my blog to be a part of 
&lt;a href="http://www.r-bloggers.com/" target="_blank" rel="noopener"&gt;R-bloggers&lt;/a&gt;, I created an RSS specific for the posts under the &lt;code&gt;rstats&lt;/code&gt; category to comply with their requirements (&lt;span class="showtooltip" title="Galili T (2013). 'add your blog!' ."&gt;&lt;a href="http://www.r-bloggers.com/add-your-blog/"&gt;Add your blog!&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;For the category-specific RSS I used &lt;code&gt;feed.category.xml&lt;/code&gt; (&lt;span class="showtooltip" title="(2013). 'jekyll-rss-feeds.' ."&gt;&lt;a href="https://github.com/snaptortoise/jekyll-rss-feeds"&gt;Jekyll RSS Feed Templates&lt;/a&gt;&lt;/span&gt;) and created 
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/blob/master/rss-rstats.xml" target="_blank" rel="noopener"&gt;rss-rstats.xml&lt;/a&gt; [see 
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/blob/master/atom-rstats.xml" target="_blank" rel="noopener"&gt;atom-rstats.xml&lt;/a&gt; if you prefer Atom RSS] which is then processed and converted to 
&lt;a href="http://feeds.feedburner.com/FellgernonBit-rstats" target="_blank" rel="noopener"&gt;feeds.feedburner.com/FellgernonBit-rstats&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note that I use 
&lt;a href="http://feedburner.google.com/" target="_blank" rel="noopener"&gt;FeedBurner&lt;/a&gt; to then create 
&lt;a href="https://twitter.com/fellgernon" target="_blank" rel="noopener"&gt;Twitter updates&lt;/a&gt; linking to back to the posts. Also, for the rstats one I add the 
&lt;a href="https://twitter.com/search?q=%23rstats" target="_blank" rel="noopener"&gt;#rstats&lt;/a&gt; hashtag to the post.&lt;/p&gt;
&lt;h3 id="writing-an-r-post"&gt;Writing an R post&lt;/h3&gt;
&lt;p&gt;J. Fisher again explains in detail how to blog using Knitr and Jekyll (&lt;span class="showtooltip" title="Fisher JC (2012). 'Blog with Knitr and Jekyll.' ."&gt;&lt;a href="http://jfisher-usgs.github.io/r/2012/07/03/knitr-jekyll/"&gt;Fisher, 2012&lt;/a&gt;&lt;/span&gt;). Since I use 
&lt;a href="https://github.com/textmate/textmate" target="_blank" rel="noopener"&gt;TextMate2&lt;/a&gt; as my text editor, I went ahead and modified his code and created a command to do so.&lt;/p&gt;
&lt;p&gt;Basically, I modified the &lt;code&gt;knit&lt;/code&gt; command from the &lt;code&gt;SWeave&lt;/code&gt; TextMate bundle and added J. Fisher&amp;rsquo;s code. I saved it under the &lt;code&gt;Menu Actions&lt;/code&gt; of the &lt;code&gt;SWeave&lt;/code&gt; bundle and linked it to &lt;code&gt;alt + e&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For this to work, I use Google Chrome with the 
&lt;a href="https://chrome.google.com/webstore/detail/jmchmkecamhbiokiopfpnfgbidieafmd" target="_blank" rel="noopener"&gt;Markdown Preview&lt;/a&gt; extension installed.&lt;/p&gt;
&lt;p&gt;This is the 
&lt;a href="https://gist.github.com/lcolladotor/7388033" target="_blank" rel="noopener"&gt;code for the TextMate command&lt;/a&gt;. You could certainly make it much more concise and drop things, but I like to see a quick preview of the post. However, I still recommend using &lt;code&gt;jekyll serve&lt;/code&gt; for a final thorough preview of the post before pushing it to GitHub.&lt;/p&gt;
&lt;script src="https://gist.github.com/lcolladotor/7388033.js"&gt;&lt;/script&gt;
&lt;h3 id="things-i-might-add"&gt;Things I might add&lt;/h3&gt;
&lt;p&gt;Carl Boettiger has a great site &amp;ndash;specially the 
&lt;a href="http://carlboettiger.info/lab-notebook.html" target="_blank" rel="noopener"&gt;Lab Notebook&lt;/a&gt; part&amp;ndash; and he describes all the tools he used for making it (&lt;span class="showtooltip" title="Boettiger C (2013). 'About this site.' ."&gt;&lt;a href="http://carlboettiger.info/README.html"&gt;Boettiger, 2013&lt;/a&gt;&lt;/span&gt;). One of the features I would like to add to my site is the &lt;code&gt;history&lt;/code&gt; button on the right sidebar he has on his posts which link to the GitHub history of the post. For example check 
&lt;a href="http://carlboettiger.info/2013/09/25/mozilla-software-review.html" target="_blank" rel="noopener"&gt;this post&lt;/a&gt; and its 
&lt;a href="https://github.com/cboettig/labnotebook/commits/master/_posts/2013-09-25-mozilla-software-review.md" target="_blank" rel="noopener"&gt;history&lt;/a&gt;. I think that it can be very useful for those interested in any edits made to the posts. For example, I had to fix a couple of things on one of my recent posts as you can see 
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com/commits/master/_posts/2013-11-07-bmorebiostats.md" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Looking around, I found the code needed for this to work in Carl&amp;rsquo;s repository: 
&lt;a href="https://github.com/cboettig/labnotebook/blob/master/_includes/sidebar.html" target="_blank" rel="noopener"&gt;_includes/sidebar.html&lt;/a&gt;, 
&lt;a href="https://github.com/cboettig/labnotebook/tree/master/_plugins/jekyll-labnotebook-plugins" target="_blank" rel="noopener"&gt;_plugins/jekyll-labnotebook-plugins&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However, GitHub currently does not support Jekyll plugins. Meaning that if you use any plugins, you have to create the site locally and then push it to GitHub instead of just pushing the new posts and letting GitHub handle creating the site. It&amp;rsquo;s not a huge deal, but for now I&amp;rsquo;ll rely on GitHub and keep things simple for me.&lt;/p&gt;
&lt;h2 id="if-i-were-to-do-it-again"&gt;If I were to do it again&lt;/h2&gt;
&lt;p&gt;Once you install Jekyll, I think the easiest way to set up your own blog is to fork another person&amp;rsquo;s blog&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/jfisher-usgs/jfisher-usgs.github.com" target="_blank" rel="noopener"&gt;J. Fisher&amp;rsquo;s&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/yihui/en" target="_blank" rel="noopener"&gt;Yihui Xie&amp;rsquo;s&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cboettig/labnotebook" target="_blank" rel="noopener"&gt;Carl Boettiger&amp;rsquo;s&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/lcolladotor/lcolladotor.github.com" target="_blank" rel="noopener"&gt;mine&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;or someone else blog you like.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then delete their posts, give attribution, and customize things like the blog title and other things you would have to customize on any blogging platform (RSS, comments provider, etc).&lt;/p&gt;
&lt;p&gt;Obviously Jekyll gives you much more control over your site, but at the same time, you must also dedicate enough time to learn what to change and make sure that things don&amp;rsquo;t break.&lt;/p&gt;
&lt;h3 id="post-template"&gt;Post template&lt;/h3&gt;
&lt;p&gt;To finish describing my setup, 
&lt;a href="https://gist.github.com/lcolladotor/7387745" target="_blank" rel="noopener"&gt;here is my post template&lt;/a&gt;.&lt;/p&gt;
&lt;script src="https://gist.github.com/lcolladotor/7387745.js"&gt;&lt;/script&gt;
&lt;h2 id="wrap-up"&gt;Wrap up&lt;/h2&gt;
&lt;p&gt;I hope that you will find some of this information useful if you are thinking of starting your &lt;code&gt;R&lt;/code&gt; blog powered by Jekyll-Bootstrap and hosted by GitHub.&lt;/p&gt;
&lt;p&gt;Note that since the blog is hosted in GitHub, others can send you pull requests to fix things and/or create guest posts. Just as easily you can make it a multi-author blog by changing the collaborators setting of the GitHub repository.&lt;/p&gt;
&lt;p&gt;This wouldn&amp;rsquo;t have been possible without J. Fisher&amp;rsquo;s posts and many other resources available online.&lt;/p&gt;
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2013). knitcitations: Citations for knitr markdown files. R package version 0.4-7."&gt;&lt;a href="http://CRAN.R-project.org/package=knitcitations"&gt;Boettiger, 2013b&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;@jeffreyhorner,  Blog with R Markdown and tumblr: Part I.  &lt;em&gt;Jeffrey Horner&lt;/em&gt;  
&lt;a href="http://jeffreyhorner.tumblr.com/post/25804518110/blog-with-r-markdown-and-tumblr-part-i" target="_blank" rel="noopener"&gt;http://jeffreyhorner.tumblr.com/post/25804518110/blog-with-r-markdown-and-tumblr-part-i&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;@jeffreyhorner,  Blog with R Markdown and tumblr: Part II.  &lt;em&gt;Jeffrey Horner&lt;/em&gt;  
&lt;a href="http://jeffreyhorner.tumblr.com/post/25943954723/blog-with-r-markdown-and-tumblr-part-ii" target="_blank" rel="noopener"&gt;http://jeffreyhorner.tumblr.com/post/25943954723/blog-with-r-markdown-and-tumblr-part-ii&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Yihui Xie,  Statistics, R, Graphics and Fun | Yihui Xie.  
&lt;a href="http://yihui.name/en/" target="_blank" rel="noopener"&gt;http://yihui.name/en/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jason Fisher,   (2012) Blog with Knitr and Jekyll.  
&lt;a href="http://jfisher-usgs.github.io/r/2012/07/03/knitr-jekyll/" target="_blank" rel="noopener"&gt;http://jfisher-usgs.github.io/r/2012/07/03/knitr-jekyll/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jason Fisher,   (2012) Jekyll Build on Windows.  
&lt;a href="http://jfisher-usgs.github.io/lessons/2012/05/30/jekyll-build-on-windows/" target="_blank" rel="noopener"&gt;http://jfisher-usgs.github.io/lessons/2012/05/30/jekyll-build-on-windows/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installation.  &lt;em&gt;Jekyll â&#128;¢ Simple, blog-aware, static sites&lt;/em&gt;  
&lt;a href="http://jekyllrb.com/docs/installation/" target="_blank" rel="noopener"&gt;http://jekyllrb.com/docs/installation/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jekyll Quick Start | ruhoh universal static blog generator.  
&lt;a href="http://jekyllbootstrap.com/usage/jekyll-quick-start.html" target="_blank" rel="noopener"&gt;http://jekyllbootstrap.com/usage/jekyll-quick-start.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Using Themes | ruhoh universal static blog generator.  
&lt;a href="http://jekyllbootstrap.com/usage/jekyll-theming.html" target="_blank" rel="noopener"&gt;http://jekyllbootstrap.com/usage/jekyll-theming.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Blog migrations.  &lt;em&gt;Jekyll â&#128;¢ Simple, blog-aware, static sites&lt;/em&gt;  
&lt;a href="http://jekyllrb.com/docs/migrations/" target="_blank" rel="noopener"&gt;http://jekyllrb.com/docs/migrations/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tal Galili,  add your blog!.  &lt;em&gt;R-bloggers&lt;/em&gt;  
&lt;a href="http://www.r-bloggers.com/add-your-blog/" target="_blank" rel="noopener"&gt;http://www.r-bloggers.com/add-your-blog/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;jekyll-rss-feeds.  &lt;em&gt;GitHub&lt;/em&gt;  
&lt;a href="https://github.com/snaptortoise/jekyll-rss-feeds" target="_blank" rel="noopener"&gt;https://github.com/snaptortoise/jekyll-rss-feeds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Yihui Xie,   (2013) Markdown or LaTeX? | Yihui Xie.  
&lt;a href="http://yihui.name/en/2013/10/markdown-or-latex/" target="_blank" rel="noopener"&gt;http://yihui.name/en/2013/10/markdown-or-latex/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Carl Boettiger,   (2013) About this site.  &lt;em&gt;Lab Notebook&lt;/em&gt;  
&lt;a href="http://carlboettiger.info/README.html" target="_blank" rel="noopener"&gt;http://carlboettiger.info/README.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Carl Boettiger,   (2013) knitcitations: Citations for knitr markdown files.  
&lt;a href="http://CRAN.R-project.org/package=knitcitations" target="_blank" rel="noopener"&gt;http://CRAN.R-project.org/package=knitcitations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="reproducibility"&gt;Reproducibility&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;sessionInfo()
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## R version 3.0.2 (2013-09-25)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] knitcitations_0.4-7 bibtex_0.3-6        knitr_1.5          
## 
## loaded via a namespace (and not attached):
##  [1] codetools_0.2-8 digest_0.6.4    evaluate_0.5.1  formatR_0.10   
##  [5] httr_0.2        RCurl_1.95-4.1  stringr_0.6.2   tools_3.0.2    
##  [9] XML_3.95-0.2    xtable_1.7-1
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>ggplot Tutorial</title>
      <link>https://lcolladotor.github.io/2013/06/21/ggplot-Tutorial/</link>
      <pubDate>Fri, 21 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/06/21/ggplot-Tutorial/</guid>
      <description>&lt;p&gt;&lt;a href="http://www.ceb-institute.org/bbs/wp-content/uploads/2011/09/handout_ggplot2.pdf"&gt;ggplot Tutorial&lt;/a&gt;&lt;br/&gt;&lt;p&gt;I liked the &lt;a href="http://www.ceb-institute.org/bbs/wp-content/uploads/2011/09/handout_ggplot2.pdf"&gt;following ggplot2 tutorial&lt;/a&gt; which is featured in Gabriela de Queiroz’s blog called &lt;a href="http://unbiasedestimator.tumblr.com/"&gt;unbiasedestimator&lt;/a&gt;. The tutorial looks very neatly presented and I’m sure that it will be very helpful to anyone just getting started with ggplot2 before they jump into &lt;a href="http://ggplot2.org/book/"&gt;ggplot2: Elegant Graphics for Data Analysis&lt;/a&gt; by Hadley Wickham or &lt;a href="http://shop.oreilly.com/product/0636920023135.do"&gt;R Graphics Cookbook&lt;/a&gt; by Winston Chang.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The tutorial is very nicely formatted with code in bold highlighting  parts that change something in the plot. Overall, the tutorial explains how to use qplot() although it does have a longer example using ggplot() to make survival curves.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Check it out!&lt;/p&gt;
&lt;p&gt;&lt;a class="tumblr_blog" href="http://unbiasedestimator.tumblr.com/post/26148780483/ggplot-tutorial"&gt;unbiasedestimator&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Good tutorial about the R package.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;“ggplot2 is an R package for producing statistical, or data, graphics, but it is unlike most other graphics packages because it has a deep underlying grammar. [..]”&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; - H.Wickham, ggplot2, Use R, DOI 10.1007/978-0-387-98141_1, © Springer Science+Business Media, LLC 2009 -&lt;img alt="image" height="403" src="http://slycoder.files.wordpress.com/2009/08/day-of-week.png" width="691"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" height="461" src="http://r.789695.n4.nabble.com/file/n1689957/plot1.jpeg" width="462"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" height="309" src="http://revolution-computing.typepad.com/.a/6a010534b1db25970b0120a55e3eab970b-500pi" width="500"/&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title>userR2013 data analysis contest: data exploration</title>
      <link>https://lcolladotor.github.io/2013/06/12/userR2013-data-analysis-contest-data-exploration/</link>
      <pubDate>Wed, 12 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/06/12/userR2013-data-analysis-contest-data-exploration/</guid>
      <description>&lt;h1&gt;Description&lt;/h1&gt;
&lt;p&gt;The useR2013 conference is organizing a data analysis contest, check the &lt;a href="http://www.edii.uclm.es/%7EuseR-2013/docs/announce.pdf"&gt;rules here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;They have a package called &lt;strong&gt;useR2013DAC&lt;/strong&gt; with two data sets: one from La Liga and the other one from the Formula 1. Once you download and install the package (&lt;a href="http://www.edii.uclm.es/%7EuseR-2013/#contest"&gt;available here&lt;/a&gt;), you can quickly explore the data using the following R commands:&lt;/p&gt;
&lt;h1&gt;Data exploration&lt;/h1&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Load the package
library(useR2013DAC)

## Explore laliga data
data(laliga)
head(laliga)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;##    Season Week               HomeTeam                    AwayTeam
## 1 2008/09    1   Athletic Club Bilbao     Union Deportiva Almeria
## 2 2008/09    1        Atlético Madrid                   Málaga CF
## 3 2008/09    1          Betis Sevilla Real Club Recreativo Huelva
## 4 2008/09    1             CA Osasuna               Villarreal CF
## 5 2008/09    1            CD Numancia                FC Barcelona
## 6 2008/09    1 Deportivo de La Coruña              Real Madrid CF
##   HomeGoals AwayGoals
## 1         1         3
## 2         4         0
## 3         0         1
## 4         1         1
## 5         1         0
## 6         2         1
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;summary(laliga)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;##     Season               Week        HomeTeam           AwayTeam        
##  Length:1900        Min.   : 1.0   Length:1900        Length:1900       
##  Class :character   1st Qu.:10.0   Class :character   Class :character  
##  Mode  :character   Median :19.5   Mode  :character   Mode  :character  
##                     Mean   :19.5                                        
##                     3rd Qu.:29.0                                        
##                     Max.   :38.0                                        
##                                                                         
##    HomeGoals      AwayGoals   
##  Min.   :0.00   Min.   :0.00  
##  1st Qu.:1.00   1st Qu.:0.00  
##  Median :1.00   Median :1.00  
##  Mean   :1.65   Mean   :1.14  
##  3rd Qu.:2.00   3rd Qu.:2.00  
##  Max.   :8.00   Max.   :8.00  
##  NA's   :50     NA's   :50
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;lapply(laliga, class)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## $Season
## [1] &amp;quot;character&amp;quot;
## 
## $Week
## [1] &amp;quot;integer&amp;quot;
## 
## $HomeTeam
## [1] &amp;quot;character&amp;quot;
## 
## $AwayTeam
## [1] &amp;quot;character&amp;quot;
## 
## $HomeGoals
## [1] &amp;quot;integer&amp;quot;
## 
## $AwayGoals
## [1] &amp;quot;integer&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Explore formula1 data
data(formula1)
head(formula1)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;##   Pos No             Driver             Team Laps        Time Grid Pts
## 1   1  8    Fernando Alonso          Ferrari   49 1:39:20.396    3  25
## 2   2  7       Felipe Massa          Ferrari   49  +16.0 secs    2  18
## 3   3  2     Lewis Hamilton McLaren-Mercedes   49  +23.1 secs    4  15
## 4   4  5   Sebastian Vettel      RBR-Renault   49  +38.7 secs    1  12
## 5   5  4       Nico Rosberg      Mercedes GP   49  +40.2 secs    5  10
## 6   6  3 Michael Schumacher      Mercedes GP   49  +44.1 secs    7   8
##                                         Race Season
## 1 2010 FORMULA 1 GULF AIR BAHRAIN GRAND PRIX   2010
## 2 2010 FORMULA 1 GULF AIR BAHRAIN GRAND PRIX   2010
## 3 2010 FORMULA 1 GULF AIR BAHRAIN GRAND PRIX   2010
## 4 2010 FORMULA 1 GULF AIR BAHRAIN GRAND PRIX   2010
## 5 2010 FORMULA 1 GULF AIR BAHRAIN GRAND PRIX   2010
## 6 2010 FORMULA 1 GULF AIR BAHRAIN GRAND PRIX   2010
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;summary(formula1)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;##       Pos            No                     Driver    
##  Ret    :254   1      :  58   Felipe Massa     :  58  
##  1      : 58   10     :  58   Fernando Alonso  :  58  
##  10     : 58   11     :  58   Heikki Kovalainen:  58  
##  11     : 58   12     :  58   Jenson Button    :  58  
##  12     : 58   14     :  58   Kamui Kobayashi  :  58  
##  13     : 58   15     :  58   Lewis Hamilton   :  58  
##  (Other):848   (Other):1044   (Other)          :1044  
##                    Team          Laps             Time          Grid     
##  Ferrari             :116   55     :125   +1 Lap    :268   1      :  58  
##  Force India-Mercedes:116   56     :121   +2 Laps   :102   10     :  58  
##  HRT-Cosworth        :116   53     : 92   Accident  : 93   11     :  58  
##  McLaren-Mercedes    :116   57     : 80   +3 Laps   : 41   12     :  58  
##  STR-Ferrari         :116   70     : 75   Hydraulics: 26   13     :  58  
##  Lotus-Renault       : 78   52     : 69   Gearbox   : 24   14     :  58  
##  (Other)             :734   (Other):830   (Other)   :838   (Other):1044  
##       Pts          Race               Season    
##         :812   Length:1392        Min.   :2010  
##  1      : 58   Class :character   1st Qu.:2010  
##  10     : 58   Mode  :character   Median :2011  
##  12     : 58                      Mean   :2011  
##  15     : 58                      3rd Qu.:2012  
##  18     : 58                      Max.   :2012  
##  (Other):290
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;lapply(formula1, class)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## $Pos
## [1] &amp;quot;factor&amp;quot;
## 
## $No
## [1] &amp;quot;factor&amp;quot;
## 
## $Driver
## [1] &amp;quot;factor&amp;quot;
## 
## $Team
## [1] &amp;quot;factor&amp;quot;
## 
## $Laps
## [1] &amp;quot;factor&amp;quot;
## 
## $Time
## [1] &amp;quot;factor&amp;quot;
## 
## $Grid
## [1] &amp;quot;factor&amp;quot;
## 
## $Pts
## [1] &amp;quot;factor&amp;quot;
## 
## $Race
## [1] &amp;quot;character&amp;quot;
## 
## $Season
## [1] &amp;quot;numeric&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I don&amp;#8217;t see a specific question that they want you to answer with this data, but if you find one related to data analysis or visualization then join the competition!&lt;/p&gt;
&lt;p&gt;Note that you must be attending the conference in order to be eligible to compete.&lt;/p&gt;
&lt;h1&gt;Reproducibility&lt;/h1&gt;
```r
sessionInfo()
```
```r
## R version 3.0.0 (2013-04-03)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] useR2013DAC_0.1-1 knitr_1.2        
## 
## loaded via a namespace (and not attached):
## [1] digest_0.6.3   evaluate_0.4.3 formatR_0.7    stringr_0.6.2 
## [5] tools_3.0.0
```
</description>
    </item>
    
    <item>
      <title>Reading an R file from GitHub</title>
      <link>https://lcolladotor.github.io/2013/05/09/Reading-an-R-file-from-GitHub/</link>
      <pubDate>Thu, 09 May 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/05/09/Reading-an-R-file-from-GitHub/</guid>
      <description>&lt;p&gt;Lets say that I want to read in &lt;a href="https://github.com/lcolladotor/ballgownR-devel/blob/master/ballgownR/R/infoGene.R"&gt;this R file&lt;/a&gt; from GitHub into R.&lt;/p&gt;
&lt;p&gt;The first thing you have to do is locate the raw file. You can do so by clicking on the &lt;strong&gt;Raw&lt;/strong&gt; button in GitHub. In this case it&amp;#8217;s &lt;a href="https://raw.github.com/lcolladotor/ballgownR-devel/master/ballgownR/R/infoGene.R"&gt;&lt;a href="https://raw.github.com/lcolladotor/ballgownR-devel/master/ballgownR/R/infoGene.R"&gt;https://raw.github.com/lcolladotor/ballgownR-devel/master/ballgownR/R/infoGene.R&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One would think that using &lt;code&gt;source()&lt;/code&gt; would work, but it doesn&amp;#8217;t as shown below:&lt;/p&gt;
```r
source("https://raw.github.com/lcolladotor/ballgownR-devel/master/ballgownR/R/infoGene.R")
```
```r
## Warning: unsupported URL scheme
```
```r
## Error: cannot open the connection
```
&lt;p&gt;However, thanks again to Hadley Wickham you can do so by using the &lt;code&gt;devtools&lt;/code&gt; (&lt;span class="showtooltip" title="Wickham H and Chang W (2013). devtools: Tools to make developing R code easier. R package version 1.2."&gt;&lt;a href="http://CRAN.R-project.org/package=devtools"&gt;Wickham &amp;amp; Chang, 2013&lt;/a&gt;&lt;/span&gt; ) package.&lt;/p&gt;
&lt;p&gt;Here is how it works:&lt;/p&gt;
```r
library(devtools)
library(roxygen2)
## Needed because this file has roxygen2 comments. Otherwise you get a
## 'could not find function 'digest'' error
source_url("https://raw.github.com/lcolladotor/ballgownR-devel/master/ballgownR/R/infoGene.R")
```
```r
## SHA-1 hash of file is 6c32a620799eded5d6ff0997a184843d7964724a
```
```r
## Note that you can specify the SHA-1 hash to be very specific about
## which version of the file you want to read in.
```
&lt;p&gt;We can then check that &lt;code&gt;infoGene&lt;/code&gt; has actually been sourced:&lt;/p&gt;
```r
"infoGene" %in% ls()
```
```r
## [1] TRUE
```
&lt;p&gt;That&amp;#8217;s it! Enjoy!&lt;/p&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2013). knitcitations: Citations for knitr markdown files. R package version 0.4-6."&gt;&lt;a href="https://github.com/cboettig/knitcitations"&gt;Boettiger, 2013&lt;/a&gt;&lt;/span&gt; ).&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Hadley Wickham, Winston Chang, (2013) devtools: Tools to make developing R code easier. &lt;a href="http://CRAN.R-project.org/package=devtools"&gt;&lt;a href="http://CRAN.R-project.org/package=devtools"&gt;http://CRAN.R-project.org/package=devtools&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Carl Boettiger, (2013) knitcitations: Citations for knitr markdown files. &lt;a href="https://github.com/cboettig/knitcitations"&gt;&lt;a href="https://github.com/cboettig/knitcitations"&gt;https://github.com/cboettig/knitcitations&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Reproducibility&lt;/p&gt;
```r
sessionInfo()
```
```r
## R version 3.0.0 (2013-04-03)
## Platform: x86_64-apple-darwin10.8.0 (64-bit)
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] roxygen2_2.2.2      digest_0.6.3        devtools_1.2       
## [4] knitcitations_0.4-6 bibtex_0.3-5        knitr_1.2          
## 
## loaded via a namespace (and not attached):
##  [1] brew_1.0-6     evaluate_0.4.3 formatR_0.7    httr_0.2      
##  [5] memoise_0.1    parallel_3.0.0 RCurl_1.95-4.1 stringr_0.6.2 
##  [9] tools_3.0.0    whisker_0.3-2  XML_3.95-0.2   xtable_1.7-1
```
</description>
    </item>
    
    <item>
      <title>Using plyr and doMC for quick and easy apply-family functions</title>
      <link>https://lcolladotor.github.io/2013/04/26/using-plyr-and-domc-for-quick-and-easy-apply-family/</link>
      <pubDate>Fri, 26 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/04/26/using-plyr-and-domc-for-quick-and-easy-apply-family/</guid>
      <description>&lt;p&gt;A few weeks back I dedicated a short amount of time to actually read what &lt;code&gt;plyr&lt;/code&gt; (&lt;span class="showtooltip" title="Wickham H (2011). The Split-Apply-Combine Strategy for Data
Analysis. _Journal of Statistical Software_, *40*(1), pp. 1-29.
 http://www.jstatsoft.org/v40/i01/."&gt;&lt;a href="http://www.jstatsoft.org/v40/i01/"&gt;Wickham, 2011&lt;/a&gt;&lt;/span&gt;) is about and I was surprised. The whole idea behind &lt;code&gt;plyr&lt;/code&gt; is very simple: expand the &lt;code&gt;apply()&lt;/code&gt; family to do things easy. &lt;code&gt;plyr&lt;/code&gt; has many functions whose name ends with &lt;code&gt;ply&lt;/code&gt; which is short of apply. Then, the functions are identified by two letters before &lt;code&gt;ply&lt;/code&gt; which are abbreviations for the input (first letter) and output (second one). For instance, &lt;code&gt;ddply&lt;/code&gt; takes an input a &lt;code&gt;data.frame&lt;/code&gt; and returns a &lt;code&gt;data.frame&lt;/code&gt; while &lt;code&gt;ldply&lt;/code&gt; takes as input a &lt;code&gt;list&lt;/code&gt; and returns a &lt;code&gt;data.frame&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The syntax is pretty straight forward. For example, here are the arguments for &lt;code&gt;ddply&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;library(plyr)
args(ddply)
## function (.data, .variables, .fun = NULL, ..., .progress = &amp;quot;none&amp;quot;, 
##     .inform = FALSE, .drop = TRUE, .parallel = FALSE, .paropts = NULL) 
## NULL
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What we basically have to specify are&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;code&gt;.data&lt;/code&gt; which in general is the name of the input &lt;code&gt;data.frame&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.variables&lt;/code&gt; which is a vector (note the use of the &lt;code&gt;.&lt;/code&gt; function) of variable names. In this case, &lt;code&gt;ddply&lt;/code&gt; is very useful for applying some function to subsets of the data as specified by these variables,&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.fun&lt;/code&gt; which is the actual function we want to run,&lt;/li&gt;
&lt;li&gt;and &lt;code&gt;...&lt;/code&gt; which are parameter options for the function we are running.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;From the &lt;code&gt;ddply&lt;/code&gt; help page we have the following examples:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;dfx &amp;lt;- data.frame(
  group = c(rep('A', 8), rep('B', 15), rep('C', 6)),
  sex = sample(c(&amp;quot;M&amp;quot;, &amp;quot;F&amp;quot;), size = 29, replace = TRUE),
  age = runif(n = 29, min = 18, max = 54)
)

# Note the use of the '.' function to allow
# group and sex to be used without quoting
ddply(dfx, .(group, sex), summarize,
 mean = round(mean(age), 2),
 sd = round(sd(age), 2))
##   group sex  mean    sd
## 1     A   F 40.48 12.72
## 2     A   M 34.48 15.28
## 3     B   F 36.05  9.98
## 4     B   M 38.35  7.97
## 5     C   F 20.04  1.86
## 6     C   M 43.81 10.72

# An example using a formula for .variables
ddply(baseball[1:100, ], ~year, nrow)

##   year V1
## 1 1871  7
## 2 1872 13
## 3 1873 13
## 4 1874 15
## 5 1875 17
## 6 1876 15
## 7 1877 17
## 8 1878  3

# Applying two functions; nrow and ncol
ddply(baseball, .(lg), c(&amp;quot;nrow&amp;quot;, &amp;quot;ncol&amp;quot;))

##   lg  nrow ncol
## 1       65   22
## 2 AA   171   22
## 3 AL 10007   22
## 4 FL    37   22
## 5 NL 11378   22
## 6 PL    32   22
## 7 UA     9   22
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But this is not the end of the story! Something I really liked about &lt;code&gt;plyr&lt;/code&gt; is that it can be parallelized via the &lt;code&gt;foreach&lt;/code&gt; (&lt;span class="showtooltip" title="Analytics R (2012). _foreach: Foreach looping construct for R_. R
package version 1.4.0, 
http://CRAN.R-project.org/package=foreach."&gt;&lt;a href="http://CRAN.R-project.org/package=foreach"&gt;Analytics, 2012&lt;/a&gt;&lt;/span&gt;) package. I don&amp;#8217;t know much about &lt;code&gt;foreach&lt;/code&gt;, but all I learnt is that you have to use other packages such as &lt;code&gt;doMC&lt;/code&gt; (&lt;span class="showtooltip" title="Analytics R (2013). _doMC: Foreach parallel adaptor for the
multicore package_. R package version 1.3.0, 
http://CRAN.R-project.org/package=doMC."&gt;&lt;a href="http://CRAN.R-project.org/package=doMC"&gt;Analytics, 2013&lt;/a&gt;&lt;/span&gt;) to actually run the code. It&amp;#8217;s like &lt;code&gt;foreach&lt;/code&gt; specifies the infraestructure to communicate in parallel (and split jobs) and packages like &lt;code&gt;doMC&lt;/code&gt; tailor it for specific environments like for running in multi-core.&lt;/p&gt;
&lt;p&gt;Running things in parallel can then be very easy. Basically, you load the packages, specify the number of cores, and run your &lt;code&gt;ply&lt;/code&gt; function. Here is a short example:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Load packages
library(plyr)
library(doMC)

## Loading required package: foreach
## Loading required package: iterators
## Loading required package: parallel

## Specify the number of cores
registerDoMC(4)

## Check how many cores we are using
getDoParWorkers()
## [1] 4

## Run your ply function
ddply(dfx, .(group, sex), summarize, mean = round(mean(age), 2), sd = round(sd(age), 
    2), .parallel = TRUE)

##   group sex  mean    sd
## 1     A   F 40.48 12.72
## 2     A   M 34.48 15.28
## 3     B   F 36.05  9.98
## 4     B   M 38.35  7.97
## 5     C   F 20.04  1.86
## 6     C   M 43.81 10.72
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In case that you are interested, here is a short shell script for knitting an Rmd file in the cluster and specifying the appropriate number of cores to then use &lt;code&gt;plyr&lt;/code&gt; and &lt;code&gt;doMC&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;#!/bin/bash 
# To run it in the current working directory
#$ -cwd 
# To get an email after the job is done
#$ -m e 
# To speficy that we want 4 cores
#$ -pe local 4
# The name of the job
#$ -N myPlyJob

echo &amp;quot;**** Job starts ****&amp;quot;
date

# Knit your file: assuming it's called FileToKnit.Rmd
Rscript -e &amp;quot;library(knitr); knit2html('FileToKnit.Rmd')&amp;quot;

echo &amp;quot;**** Job ends ****&amp;quot;
date
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Lets say that the bash script is named &lt;code&gt;script.sh&lt;/code&gt;. Then you can submit it to the cluster queue using&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
qsub script.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is what I used to re-format a large &lt;code&gt;data.frame&lt;/code&gt; in a few minutes in the cluster for the &lt;a href="https://twitter.com/search?q=%23jhsph753&amp;amp;src=typd"&gt;#jhsph753&lt;/a&gt; class homework project.&lt;/p&gt;
&lt;p&gt;So, thank you again &lt;a href="https://twitter.com/hadleywickham"&gt;Hadley Wickham&lt;/a&gt; for making awesome R packages!&lt;/p&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2013). _knitcitations: Citations for knitr markdown
files_. R package version 0.4-4, 
https://github.com/cboettig/knitcitations."&gt;&lt;a href="https://github.com/cboettig/knitcitations"&gt;Boettiger, 2013&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Revolution Analytics, (2013) doMC: Foreach parallel adaptor for the multicore package. &lt;a href="http://CRAN.R-project.org/package=doMC"&gt;&lt;a href="http://CRAN.R-project.org/package=doMC"&gt;http://CRAN.R-project.org/package=doMC&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Revolution Analytics, (2012) foreach: Foreach looping construct for R. &lt;a href="http://CRAN.R-project.org/package=foreach"&gt;&lt;a href="http://CRAN.R-project.org/package=foreach"&gt;http://CRAN.R-project.org/package=foreach&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Carl Boettiger, knitcitations: Citations for knitr markdown files. &lt;a href="https://github.com/cboettig/knitcitations"&gt;&lt;a href="https://github.com/cboettig/knitcitations"&gt;https://github.com/cboettig/knitcitations&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hadley Wickham, (2011) The Split-Apply-Combine Strategy for Data Analysis. &lt;em&gt;Journal of Statistical Software&lt;/em&gt; &lt;strong&gt;40&lt;/strong&gt; (1) &lt;a href="http://www.jstatsoft.org/v40/i01/"&gt;&lt;a href="http://www.jstatsoft.org/v40/i01/"&gt;http://www.jstatsoft.org/v40/i01/&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Predicting who will win a NFL match at half time</title>
      <link>https://lcolladotor.github.io/2013/03/23/Predicting-who-will-win-a-NFL-match-at-half-time/</link>
      <pubDate>Sat, 23 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/03/23/Predicting-who-will-win-a-NFL-match-at-half-time/</guid>
      <description>&lt;p&gt;It was great to have a little break, &lt;em&gt;Spring break&lt;/em&gt;, although the weather didn&amp;#8217;t feel like spring at all! During the early part of the break I worked on my final project for Jeff Leek&amp;#8217;s data analysis class, which we call 140.753 here. Continuing &lt;a href="http://fellgernon.tumblr.com/tagged/jhsph753#.UU44Y1vF2c4"&gt;my previous posts on the topic&lt;/a&gt;, this time I&amp;#8217;ll share the results of my final project.&lt;/p&gt;
&lt;p&gt;At the beginning of the course, we had to submit a project plan (more like a proposal) and &lt;a href="https://github.com/lcolladotor/lcollado753/blob/master/hw/projectplan/lcollado_projectplan.pdf"&gt;in mine&lt;/a&gt; I announced my interest to look into some sports data. At the time I included a few links to Brian Burke&amp;#8217;s Advanced NFL Stats site (&lt;span class="showtooltip" title="(2013). Advanced NFL Stats.   http://www.advancednflstats.com/ [Online. last-accessed:  2013-03-23 23:28:38].  http://www.advancednflstats.com/."&gt;&lt;a href="http://www.advancednflstats.com/"&gt;Burke&lt;/a&gt;&lt;/span&gt;). At the time I didn&amp;#8217;t know that Burke&amp;#8217;s site described in detail a lot of the information I would end up using.&lt;/p&gt;
&lt;p&gt;My final project had to do with splitting NFL games by half and then use only the play-by-play data from the first half to predict if team A or B would win the game. My overall goal was to have some fun with sports data which I had never looked at, but then also try to come up with something I would personally use in the future. So, why split games by half? I personally would like to know if I should keep watching a game or not at half time. Having a tool to help me decide would be great, and well, if the team I&amp;#8217;m rooting for has high chances of losing or winning, ideally I would switch to doing something else. A related question that I didn&amp;#8217;t try to answer is which half is worth watching? This would be a meaningful question if you only have time to watch one of them.&lt;/p&gt;
&lt;p&gt;To truly satisfy my goals, it wasn&amp;#8217;t enough to just build a predictive model. That is why I also built a web application using the &lt;code&gt;shiny&lt;/code&gt; package (&lt;span class="showtooltip" title="RStudio and Inc. (2013). _shiny: Web Application Framework for R_.  R package version 0.4.0,   http://CRAN.R-project.org/package=shiny."&gt;&lt;a href="http://CRAN.R-project.org/package=shiny"&gt;RStudio and Inc., 2013&lt;/a&gt;&lt;/span&gt;). It was the first time I did a shiny app, but thanks to the good manual and some examples on GitHub from John Muschelli like his &lt;a href="https://github.com/muschellij2/Shiny_model"&gt;Shiny_model&lt;/a&gt; it wasn&amp;#8217;t so bad. I thus invite you to test and browse my shiny app at &lt;a href="http://glimmer.rstudio.com/lcolladotor/NFLhalf/"&gt;&lt;a href="http://glimmer.rstudio.com/lcolladotor/NFLhalf/"&gt;http://glimmer.rstudio.com/lcolladotor/NFLhalf/&lt;/a&gt;&lt;/a&gt;. It could be improved by adding some functions that scrape live data for the 2013 season so you don&amp;#8217;t have to input all the variables needed by using the sliders. Anyhow, I&amp;#8217;m happy with the result.&lt;/p&gt;
&lt;p&gt;The entire project&amp;#8217;s code, EDA steps, shiny app, and report are available via GitHub in my repository (&lt;span class="showtooltip" title="lcolladotor (2013). lcollado753.   https://github.com/lcolladotor/lcollado753 [Online.  last-accessed: 2013-03-21 02:23:49].   https://github.com/lcolladotor/lcollado753/tree/master/final/nfl_half."&gt;&lt;a href="https://github.com/lcolladotor/lcollado753/tree/master/final/nfl_half"&gt;lcollado753&lt;/a&gt;&lt;/span&gt;). While the details are in the report, I&amp;#8217;ll give a brief summary here.&lt;/p&gt;
&lt;p&gt;Basically, I summarized the play-by-play data for all NFL games from 2002 to 2012 seasons as provided by Burke (&lt;span class="showtooltip" title="(2010). Advanced NFL Stats: Play-by-Play Data.   http://www.advancednflstats.com/2010/04/play-by-play-data.html  [Online. last-accessed: 2013-03-24 00:08:20].   http://www.advancednflstats.com/2010/04/play-by-play-data.html."&gt;&lt;a href="http://www.advancednflstats.com/2010/04/play-by-play-data.html"&gt;Burke, 2010&lt;/a&gt;&lt;/span&gt;). I used some of the variables Burke uses (&lt;span class="showtooltip" title="(2009). Advanced NFL Stats: How the Model Works-A Detailed  Example Part 1.   http://www.advancednflstats.com/2009/01/how-model-works-detailed-example.html  [Online. last-accessed: 2013-03-24 00:08:21].   http://www.advancednflstats.com/2009/01/how-model-works-detailed-example.html."&gt;&lt;a href="http://www.advancednflstats.com/2009/01/how-model-works-detailed-example.html"&gt;Burke, 2009&lt;/a&gt;&lt;/span&gt;) and some others like the score difference, who starts the second half, and the game day winning percentages of both teams. After exploring the data, I discarded the years 2002 to 2005. Then, I trained a model using the 2006 to 2011 data and did some quick model selection. Note that I&amp;#8217;m not doing the adjustment by opponent the way Burke did it (&lt;span class="showtooltip" title="(2009). Advanced NFL Stats: How the Model Works-A Detailed  Example Part 2.   http://www.advancednflstats.com/2009/01/how-model-works-detailed-example-part-2.html  [Online. last-accessed: 2013-03-24 00:08:23].   http://www.advancednflstats.com/2009/01/how-model-works-detailed-example-part-2.html."&gt;&lt;a href="http://www.advancednflstats.com/2009/01/how-model-works-detailed-example-part-2.html"&gt;Burke, 2009-2&lt;/a&gt;&lt;/span&gt;) in part because I was running out of time, but also because the model already uses the current game winning percentages of both teams to consider the two team&amp;#8217;s strength. I evaluated the model using the 2012 data and after seeing that it worked decently enough, I trained a second model using the data from 2006 to 2012 so it can be used for the 2013 season. These two trained models are the ones available in the shiny app I made.&lt;/p&gt;
&lt;p&gt;In the report, I didn&amp;#8217;t include ROCs—a big miss—so here they go. The code I will show below is heavily based on a post on GLMs (&lt;span class="showtooltip" title="denishaine (2013). Veterinary Epidemiologic Research: GLM  \ Evaluating Logistic Regression Models (part 3).   http://denishaine.wordpress.com/2013/03/19/veterinary-epidemiologic-research-glm-evaluating-logistic-regression-models-part-3/  [Online. last-accessed: 2013-03-23 22:51:49].   http://denishaine.wordpress.com/2013/03/19/veterinary-epidemiologic-research-glm-evaluating-logistic-regression-models-part-3/."&gt;&lt;a href="http://denishaine.wordpress.com/2013/03/19/veterinary-epidemiologic-research-glm-evaluating-logistic-regression-models-part-3/"&gt;denishaine, 2013&lt;/a&gt;&lt;/span&gt;). The code below is written in a way that you can easily reproduce it if you have cloned my repository for the 140.753 class (&lt;span class="showtooltip" title="lcolladotor (2013). lcollado753.   https://github.com/lcolladotor/lcollado753 [Online.  last-accessed: 2013-03-21 02:23:49].   https://github.com/lcolladotor/lcollado753/tree/master/final/nfl_half."&gt;&lt;a href="https://github.com/lcolladotor/lcollado753/tree/master/final/nfl_half"&gt;lcollado753&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;First, some setup steps.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Specify the directory where you cloned the lcollado753 repo
maindir &amp;lt;- &amp;quot;whereYouClonedTheRepo&amp;quot;
## Load packages needed
suppressMessages(library(ROCR))
library(ggplot2)

## Load fits.
## Remember that 1st one used data from 2006 to 2011
## and the 2nd one used data from 2006 to 2012.
load(paste0(maindir, &amp;quot;/lcollado753/final/nfl_half/EDA/model/fits.Rdata&amp;quot;))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, I make the ROCs for both trained models using the data that they were trained on. They should be quite good since it uses the same data to build the model that it will then try to predict.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Make the ROC plots

## Simple list where I'll store all the results so I can compare the ROC plots later on
all &amp;lt;- list()

## Construct prediction function
for(i in 1:2) {
	## Predict on the original data
	pred &amp;lt;- predict(fits[[i]])
	
	## Subset original data (remove NA's)
	data &amp;lt;- fits[[i]]$data
	data &amp;lt;- data[complete.cases(data),]
	
	## Construct prediction function
	pred.fn &amp;lt;- prediction(pred, data$win)
	
	## Get performance info
	perform &amp;lt;- performance(pred.fn, &amp;quot;tpr&amp;quot;, &amp;quot;fpr&amp;quot;)
	
	## Get ready to plot
	toPlot &amp;lt;- data.frame(tpr = unlist(slot(perform, &amp;quot;y.values&amp;quot;)), fpr = unlist(slot(perform, &amp;quot;x.values&amp;quot;)))
	all &amp;lt;- c(all, list(toPlot))

	## Make the plot
	res &amp;lt;- ggplot(toPlot) + geom_line(aes(x=fpr, y=tpr)) + geom_abline(intercept=0, slope=1, colour=&amp;quot;orange&amp;quot;) + ylab(&amp;quot;Sensitivity&amp;quot;) + xlab(&amp;quot;1 - Specificity&amp;quot;) + ggtitle(paste(&amp;quot;Years 2006 to&amp;quot;, c(&amp;quot;2011&amp;quot;, &amp;quot;2012&amp;quot;)[i]))
	print(res)
	
	## Print the AUC value
	print(unlist(performance(pred.fn, &amp;quot;auc&amp;quot;)@y.values))
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt="plot of chunk ROC" src="http://i.imgur.com/b1FS2ml.png"/&gt;&lt;/p&gt;
```r
## [1] 0.8506
```
&lt;p&gt;&lt;img alt="plot of chunk ROC" src="http://i.imgur.com/f2UOySy.png"/&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## [1] 0.8513
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Both ROC plots look pretty similar (well, the data sets are very similar!) and have relatively high AUC values.&lt;/p&gt;
&lt;p&gt;Next, I make the ROC plot using the model trained with the data from 2006 to 2011 to predict the outcomes for the 2012 games.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Load 2012 data
load(paste0(maindir, &amp;quot;/lcollado753/final/nfl_half/data/pred/info2012.Rdata&amp;quot;))

## Predict using model fit with data from 2006 to 2011
pred &amp;lt;- predict(fits[[1]], info2012)

## Construction prediction function
pred.fn &amp;lt;- prediction(pred, info2012$win)

## Get performance info
perform &amp;lt;- performance(pred.fn, &amp;quot;tpr&amp;quot;, &amp;quot;fpr&amp;quot;)

## Get ready to plot
toPlot &amp;lt;- data.frame(tpr = unlist(slot(perform, &amp;quot;y.values&amp;quot;)), fpr = unlist(slot(perform, &amp;quot;x.values&amp;quot;)))
all &amp;lt;- c(all, list(toPlot))

## Make the plot
ggplot(toPlot) + geom_line(aes(x=fpr, y=tpr)) + geom_abline(intercept=0, slope=1, colour=&amp;quot;orange&amp;quot;) + ylab(&amp;quot;Sensitivity&amp;quot;) + xlab(&amp;quot;1 - Specificity&amp;quot;) + ggtitle(&amp;quot;Model trained 2006-2011 predicting 2012&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt="plot of chunk pred2012" src="http://i.imgur.com/DDcsW7W.png"/&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## Print the AUC value
print(unlist(performance(pred.fn, &amp;quot;auc&amp;quot;)@y.values))
## [1] 0.816
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The steps in the curve are more visible since it is using less data. It also seems to be a little less good than the other two, as expected. This is clear when comparing the AUC values.&lt;/p&gt;
&lt;p&gt;Finally, I plot all curves in the same picture to visually compare them.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;names(all) &amp;lt;- c(&amp;quot;train2011&amp;quot;, &amp;quot;train2012&amp;quot;, &amp;quot;pred2012&amp;quot;)
for(i in 1:3) {
	all[[i]] &amp;lt;- cbind(all[[i]], rep(names(all)[i], nrow(all[[i]])))
	colnames(all[[i]])[3] &amp;lt;- &amp;quot;set&amp;quot;
}
all &amp;lt;- do.call(rbind, all)

ggplot(all) + geom_line(aes(x=fpr, y=tpr, colour=set)) + geom_abline(intercept=0, slope=1, colour=&amp;quot;orange&amp;quot;) + ylab(&amp;quot;Sensitivity&amp;quot;) + xlab(&amp;quot;1 - Specificity&amp;quot;) + ggtitle(&amp;quot;Comparing ROCs&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt="plot of chunk allInOne" src="http://i.imgur.com/tUVfgfs.png"/&gt;&lt;/p&gt;
&lt;p&gt;Both ROCs with the trained data (train2011, train2012) are nearly identical and both are slightly superior to the one predicting the 2012 games.&lt;/p&gt;
&lt;p&gt;Overall I am happy with the results and while some things can certainly be improved, I look forward to the NFL 2013 season. Also, remember that Burke publishes his winning estimated probabilities from week 4 onward (&lt;span class="showtooltip" title="BURKE BB (2013). Brian Burke - The Fifth Down Blog -  NYTimes.com.   http://fifthdown.blogs.nytimes.com/author/brian-burke/ [Online.  last-accessed: 2013-03-24 00:26:32].   http://fifthdown.blogs.nytimes.com/author/brian-burke/."&gt;&lt;a href="http://fifthdown.blogs.nytimes.com/author/brian-burke/"&gt;The Fifth Down Blog&lt;/a&gt;&lt;/span&gt;). So you might be interested on comparing the probability at half time versus his estimated probability which is calculated before the game starts. I mean, maybe you could use the difference between the two to have an idea of how unexpected the first half was. After all, if a game falls outside the pattern it might be worth watching.&lt;/p&gt;
&lt;p&gt;Citations made with &lt;code&gt;knitcitations&lt;/code&gt; (&lt;span class="showtooltip" title="Boettiger C (2013). _knitcitations: Citations for knitr markdown  files_. R package version 0.4-4,   https://github.com/cboettig/knitcitations."&gt;&lt;a href="https://github.com/cboettig/knitcitations"&gt;Boettiger, 2013&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;lcolladotor, lcollado753. &lt;em&gt;GitHub&lt;/em&gt; &lt;a href="https://github.com/lcolladotor/lcollado753/tree/master/final/nfl_half"&gt;&lt;a href="https://github.com/lcolladotor/lcollado753/tree/master/final/nfl_half"&gt;https://github.com/lcolladotor/lcollado753/tree/master/final/nfl_half&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;denishaine, (2013) Veterinary Epidemiologic Research: GLM &amp;amp;ndash; Evaluating Logistic Regression Models (part 3). &lt;em&gt;denis haine&lt;/em&gt; &lt;a href="http://denishaine.wordpress.com/2013/03/19/veterinary-epidemiologic-research-glm-evaluating-logistic-regression-models-part-3/"&gt;&lt;a href="http://denishaine.wordpress.com/2013/03/19/veterinary-epidemiologic-research-glm-evaluating-logistic-regression-models-part-3/"&gt;http://denishaine.wordpress.com/2013/03/19/veterinary-epidemiologic-research-glm-evaluating-logistic-regression-models-part-3/&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Advanced NFL Stats. &lt;a href="http://www.advancednflstats.com/"&gt;&lt;a href="http://www.advancednflstats.com/"&gt;http://www.advancednflstats.com/&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;(2010) Advanced NFL Stats: Play-by-Play Data. &lt;a href="http://www.advancednflstats.com/2010/04/play-by-play-data.html"&gt;&lt;a href="http://www.advancednflstats.com/2010/04/play-by-play-data.html"&gt;http://www.advancednflstats.com/2010/04/play-by-play-data.html&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;(2009) Advanced NFL Stats: How the Model Works–A Detailed Example Part 1. &lt;a href="http://www.advancednflstats.com/2009/01/how-model-works-detailed-example.html"&gt;&lt;a href="http://www.advancednflstats.com/2009/01/how-model-works-detailed-example.html"&gt;http://www.advancednflstats.com/2009/01/how-model-works-detailed-example.html&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;(2009) Advanced NFL Stats: How the Model Works–A Detailed Example Part 2. &lt;a href="http://www.advancednflstats.com/2009/01/how-model-works-detailed-example-part-2.html"&gt;&lt;a href="http://www.advancednflstats.com/2009/01/how-model-works-detailed-example-part-2.html"&gt;http://www.advancednflstats.com/2009/01/how-model-works-detailed-example-part-2.html&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;By BURKE, Brian Burke - The Fifth Down Blog - NYTimes.com. &lt;em&gt;The Fifth Down Â» Brian Burke&lt;/em&gt; &lt;a href="http://fifthdown.blogs.nytimes.com/author/brian-burke/"&gt;&lt;a href="http://fifthdown.blogs.nytimes.com/author/brian-burke/"&gt;http://fifthdown.blogs.nytimes.com/author/brian-burke/&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Carl Boettiger, knitcitations: Citations for knitr markdown files. &lt;a href="https://github.com/cboettig/knitcitations"&gt;&lt;a href="https://github.com/cboettig/knitcitations"&gt;https://github.com/cboettig/knitcitations&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;RStudio , Inc. , (2013) shiny: Web Application Framework for R. &lt;a href="http://CRAN.R-project.org/package=shiny"&gt;&lt;a href="http://CRAN.R-project.org/package=shiny"&gt;http://CRAN.R-project.org/package=shiny&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>And so begins English Composition I</title>
      <link>https://lcolladotor.github.io/2013/03/21/And-so-begins-English-Composition-I/</link>
      <pubDate>Thu, 21 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/03/21/And-so-begins-English-Composition-I/</guid>
      <description>&lt;p&gt;This week started the English Composition I: Achieving Expertise course (&lt;span class="showtooltip" title="(2013). Coursera.  https://www.coursera.org/ [Online.  last-accessed: 2013-03-21 03:47:13].   https://www.coursera.org/course/composition."&gt;&lt;a href="https://www.coursera.org/course/composition"&gt;Comer, 2013&lt;/a&gt;&lt;/span&gt;) that I have been looking forward to.&lt;/p&gt;
&lt;p&gt;I am not sure yet how long I will last, but I hope to enjoy it as much as I can. Plus, it should help me with my posting and other writing areas. While I last in the course, I plan to publish my writings in the blog too. So you will hopefully see me be more active here.&lt;/p&gt;
&lt;p&gt;As it is important to cite when writing, I have also figured out how to do so automatically in Rmd files. For that I learnt how to use &lt;strong&gt;knitcitations&lt;/strong&gt; from the GitHub instructions (&lt;span class="showtooltip" title="cboettig (2013). knitcitations.   https://github.com/cboettig/knitcitations [Online. last-accessed:  2013-03-21 03:19:44].   https://github.com/cboettig/knitcitations."&gt;&lt;a href="https://github.com/cboettig/knitcitations"&gt;knitcitations&lt;/a&gt;&lt;/span&gt;) and a explanatory post (&lt;span class="showtooltip" title="Boettiger C (2013). knitcitations.   http://www.carlboettiger.info/2012/05/30/knitcitations.html  [Online. last-accessed: 2013-03-21 02:15:41].   http://www.carlboettiger.info/2012/05/30/knitcitations.html."&gt;&lt;a href="http://www.carlboettiger.info/2012/05/30/knitcitations.html"&gt;Boettiger, 2013&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;knitcitations&lt;/strong&gt; is great, but it kind of struggles with some pages. That is why I modified my template in &lt;a href="https://github.com/lcolladotor/FBit"&gt;FBit&lt;/a&gt; by writing my own citing function for pages where &lt;code&gt;citep&lt;/code&gt; fails. Here is the code:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;## I made my own citing function since citep() doesn't work like I want to with
## urls that are not really pages themselve like part of a GitHub repo.
mycitep &amp;lt;- function(x, short, year=substr(date(), 21, 24), tooltip=TRUE) {
	tmp &amp;lt;- citep(x)
	res &amp;lt;- gsub(&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;quot;, paste0(&amp;quot;&amp;gt;&amp;quot;, short, &amp;quot;&amp;lt;/a&amp;gt;&amp;quot;), tmp)
	if(tooltip) {
		res &amp;lt;- gsub(&amp;quot;\\?\\?\\?\\?&amp;quot;, year, res)
	}
	res
}

## You already saw an inline working example in the post itself.
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;&lt;li&gt;Carl Boettiger, (2013) knitcitations. &lt;em&gt;Lab Notebook&lt;/em&gt; &lt;a href="http://www.carlboettiger.info/2012/05/30/knitcitations.html"&gt;&lt;a href="http://www.carlboettiger.info/2012/05/30/knitcitations.html"&gt;http://www.carlboettiger.info/2012/05/30/knitcitations.html&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;cboettig, knitcitations. &lt;em&gt;GitHub&lt;/em&gt; &lt;a href="https://github.com/cboettig/knitcitations"&gt;&lt;a href="https://github.com/cboettig/knitcitations"&gt;https://github.com/cboettig/knitcitations&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Coursera. &lt;em&gt;Coursera&lt;/em&gt; &lt;a href="https://www.coursera.org/course/composition"&gt;&lt;a href="https://www.coursera.org/course/composition"&gt;https://www.coursera.org/course/composition&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Analyzing SimplyStatistics visits info</title>
      <link>https://lcolladotor.github.io/2013/03/09/Analyzing-SimplyStatistics-visits-info/</link>
      <pubDate>Sat, 09 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/03/09/Analyzing-SimplyStatistics-visits-info/</guid>
      <description>&lt;p&gt;Recently we had to analyze the data of the number of visits per day to &lt;a href="http://simplystatistics.org/"&gt;SimplyStatistics.org&lt;/a&gt;. There were two goals:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Estimate the fraction of visitors retained after a spike in the number of visitors&lt;/li&gt;
&lt;li&gt;Identify (if any) any factors that influence the fraction estimated in 1.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;For me it was a fun project in part because I like SimplyStatistics but also because I think that finding the answers to the questions would be interesting and help understand the readers of that blog.&lt;/p&gt;
&lt;p&gt;Sadly, I didn&amp;#8217;t work on it much. We had lots of stuff due that week, but well, I&amp;#8217;m happy enough with the analysis I did. My own report is hosted &lt;a href="https://github.com/lcolladotor/lcollado753/tree/master/hw/data-analysis-02"&gt;here&lt;/a&gt; and &lt;a href="https://github.com/lcolladotor/lcollado753/blob/master/hw/data-analysis-02/report/data_02_lcollado.pdf" target="_blank"&gt;this is the pdf file of the report itself&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Half joking with other students, I said that I basically did t-tests. Hopefully I can work on changing this tendency with the pile of recommended books I&amp;#8217;ve been acquiring but not really reading through. Except for the &lt;a href="http://bit.ly/13MyHwt"&gt;ggplot2: Elegant Graphics for Data Analysis&lt;/a&gt; and the &lt;a href="http://oreil.ly/Yk8xtl"&gt;R Graphics Cookbook&lt;/a&gt;. Sounds like spring break will be fun :P&lt;/p&gt;
&lt;p&gt;Kind of related to this, &lt;a href="http://bit.ly/13MypWw"&gt;Jeff Leek announced yesterday that he is going to  compile a list of student blogs that have something to do with statistics and data&lt;/a&gt;. He added a link to my blog which is why I saw a large peak of Fellgernon Bit&amp;#8217;s visitor data. After all, when doing the data analysis described above I played around with the data from Fellgernon Bit and now know that at a minimum posting drives visitor&amp;#8217;s into sites (which sounds obvious, but maybe you get random traffic) —see &lt;a href="https://github.com/lcolladotor/lcollado753/blob/master/hw/data-analysis-02/report/data_02_lcollado.pdf"&gt;fig 1 of the report&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="http://media.tumblr.com/f5ce3511fb8d6899a613e348a846dcc8/tumblr_inline_mjf4iavs4A1qz4rgp.png"/&gt;&lt;/p&gt;
&lt;p&gt;Had Jeff done so before, I could have a point estimate (but without being able to say something about the uncertainty of it) that SimplyStatistics has 142 visitors that read the posts AND click on the links. Maybe using the info from &lt;a href="http://bit.ly/12vVmbp"&gt;Hilary&amp;#8217;s&lt;/a&gt; and &lt;a href="http://bit.ly/13MyyZS"&gt;Alyssa&amp;#8217;s&lt;/a&gt; blogs we could have an estimate with some measure of uncertainty, but only for March 8th.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Sharing my work for "Advanced Methods III"</title>
      <link>https://lcolladotor.github.io/2013/02/13/Sharing-my-work-for-Advanced-Methods-III/</link>
      <pubDate>Wed, 13 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2013/02/13/Sharing-my-work-for-Advanced-Methods-III/</guid>
      <description>&lt;p&gt;This semester I&amp;#8217;m taking the live version of the Data Analysis class by Jeff Leek. His more &lt;a href="https://class.coursera.org/dataanalysis-001/class/index"&gt;popular version of the course is available through Coursera&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;One of the things that Jeff promotes is reproducibility and sharing code. I share that tendency and thus created a Git repository for my homework and code for the class: &lt;a href="http://bit.ly/12vSk7d"&gt;lcollado753&lt;/a&gt;. I&amp;#8217;m hosting it with GitHub to try it out since I started with Mercurial via Bitbucket. &lt;/p&gt;
&lt;p&gt;Part of me would love it if everyone in the class had their own Git repositories. I mean, this class involves lots of practice exercises and there are plenty of R packages and functions that others use that I would like to learn. As I don&amp;#8217;t see this happening, I think that it would be great to list the packages/functions you think could be interesting to others at the end of the write-ups. However, this involves sharing the reports and I don&amp;#8217;t know if that will happen.&lt;/p&gt;
&lt;p&gt;But maybe I didn&amp;#8217;t get the instructions Jeff gave correctly the first time. Listening into his week 2 talks from the Coursera course, I get that he wants our reports to be reproducible. The idea is great, but sometimes I get lots in the technicalities of finding the best fit for our situation. Aka, something we can all do that is worth the time for small scale projects that we have a couple of days to complete and most likely will be finishing the day before they are due. For now we might stick to sharing zip files with the report + summarized data set (it has be small enough to be sharable by email).&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m pretty happy with hosting my stuff at GitHub. One blunder I made in the&lt;a href="https://github.com/lcolladotor/lcollado753/blob/master/hw/data-analysis-01/report/data01_lcollado.pdf"&gt; first data analysis report&lt;/a&gt; is that I completely forgot to say in it that I have the code in GitHub :P Oh well, next time!&lt;/p&gt;
&lt;p&gt;I feel that I also have lots to improve regarding how to tell a story in a report. Plus, for this first project I mainly did some exploratory data analysis without much stat analysis.&lt;/p&gt;
&lt;p&gt;Overall, I&amp;#8217;m quite excited with this course =) and I think that I&amp;#8217;ll learn a ton on methods to analyze data AND how to actually implement them. Plus, I&amp;#8217;m currently trying to learn ggplot2 as you can see in that first report. Also, I made it with knitr instead of Sweave =)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Introduction to R and Biostatistics (2012 version): presentation</title>
      <link>https://lcolladotor.github.io/2012/11/12/Introduction-to-R-and-Biostatistics-2012-version/</link>
      <pubDate>Mon, 12 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2012/11/12/Introduction-to-R-and-Biostatistics-2012-version/</guid>
      <description>&lt;p&gt;To follow my &lt;a href="http://fellgernon.tumblr.com/post/34677935591/introducing-r-and-biostatistics-to-first-year-lcg#.UKFlW-Oe918"&gt;Introducing R and Biostatistics to first year LCG students (2012 version)&lt;/a&gt; post,  you can now find the presentation online from my site either in &lt;a href="http://www.biostat.jhsph.edu/~lcollado/lcg/introR2012/intro_R_Biostat_LCG_2012_slides.html"&gt;presentation format&lt;/a&gt;, in a &lt;a href="http://www.biostat.jhsph.edu/~lcollado/lcg/introR2012/intro_R_Biostat_LCG_2012.html"&gt;single webpage format&lt;/a&gt;, or the &lt;a href="http://www.biostat.jhsph.edu/~lcollado/lcg/introR2012/intro_R_Biostat_LCG_2012.Rmd"&gt;raw Rmd file&lt;/a&gt;. To prove the point that publishing to &lt;a href="http://rpubs.com/"&gt;RPubs&lt;/a&gt; is super easy, you can also find the &lt;a href="http://rpubs.com/lcollado/2618"&gt;single webpage format over there&lt;/a&gt;. I also like how you can comment and share in RPubs.&lt;/p&gt;
&lt;p&gt;One of the challenges of giving a presentation to first year students is finding the balance between introducing them to cool things you are doing in your work and actually giving a talk that they can follow. I thought about this and ended dropping anything related to my work.&lt;/p&gt;
&lt;p&gt;My presentation was split pretty much in two parts. First, I wanted to promote some philosophical discussion about what is statistics. Second, I gave a brief overview of what you can do with R. Or more exactly, what they should be able to learn to do even if they become &lt;em&gt;wet &lt;/em&gt;biologists.&lt;/p&gt;
&lt;p&gt;While planning this presentation, I knew that I wanted to give the new students a flavor of the three different currents in statistics. I aimed to improve &lt;a href="http://fellgernon.tumblr.com/post/13739343319/introducing-biostatistics-to-first-year-lcg-students#.UKFl6uOe918"&gt;my 2011 explanations&lt;/a&gt; now that I&amp;#8217;m taking the Foundations of Statistical Inference course. I&amp;#8217;m happy with the result and I think this is greatly due to Royall&amp;#8217;s diagnostic test example.&lt;/p&gt;
&lt;p&gt;Another key point that I wanted to emphasize was that RStudio is the way to go if you are new to R. It is very straightforward to use, plus it is nicely interegrated with &lt;a href="http://yihui.name/knitr/"&gt;knitr&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I decided to use R Markdown (Rmd) for the first time, after seeing how easy &lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt; really is compared to using LaTeX and Beamer. However, when it got to doing the presentation I have to say that I was a bit dissapointed by how some things just break when using the R Markdown to Markdown to HTML presentation pipeline —using &lt;a href="http://johnmacfarlane.net/pandoc/"&gt;pandoc&lt;/a&gt; for the last step. For example, the math breaks when using mathml or mathjax at times (like after adding an iframe for a youtube video), so I had to use webtex which doesn&amp;#8217;t look as nice.&lt;/p&gt;
&lt;p&gt;If you are interested in the commands, I used the &amp;#8220;Knit HTML&amp;#8221; button in R Studio [equivalent to running from R: &lt;em&gt;library(knitr); knit(&amp;#8220;filename.Rmd&amp;#8221;)&lt;/em&gt;] and then ran the following command:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;pandoc -s -S &amp;#8212;webtex -i -t dzslides intro_R_Biostat_LCG_2012.md -o intro_R_Biostat_LCG_2012_slides.html &amp;amp; open intro_R_Biostat_LCG_2012_slides.html&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I was originally aiming to have a single Rmd file to produce an HTML presentation and a Beamer presentation. However, controlling the pictures in the Beamer output proved to be challenging. While I had a work around, the final problem was the math part. By the time I realized this it was too late —I just dropped the Beamer presentation. Googling, even the author of knitr acknowledges that the best input for PDF output is still LaTeX.&lt;/p&gt;
&lt;p&gt;In the end, I&amp;#8217;m happy that I got the HTML presentation done using R Markdown and briefly introduced it to the first year students. The basics of knitr are very easy to learn and I&amp;#8217;m hoping that it got some of them curious enough to try it.&lt;/p&gt;
&lt;p&gt;Next thing in line: prepare 5 questions for the students.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Introducing R and Biostatistics to first year LCG students (2012 version)</title>
      <link>https://lcolladotor.github.io/2012/10/30/introducing-r-and-biostatistics-to-first-year-lcg/</link>
      <pubDate>Tue, 30 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2012/10/30/introducing-r-and-biostatistics-to-first-year-lcg/</guid>
      <description>&lt;p&gt;On Friday November 9th I&amp;#8217;ll be giving a talk to the first year students from the Undergraduate Program on Genomic Sciences (LCG in Spanish) during their &amp;#8220;Seminar 1: Introduction to Bioinformatics&amp;#8221; course. It&amp;#8217;s just like I did a year ago as I documented in my post &lt;a href="http://fellgernon.tumblr.com/post/13739343319/introducing-biostatistics-to-first-year-lcg-students#.UJBq6Wl25FQ"&gt;Introducing Biostatistics to first year LCG students&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Well, this time I&amp;#8217;ll change things a bit. I&amp;#8217;m allowed to require the students to read 2-3 papers before my talk to introduce them to my field. I&amp;#8217;ll do so, but in a more peculiar way by requiring them to listen in to a few videos I selected. So, without further ado here are the three required &amp;#8220;papers&amp;#8221;:&lt;/p&gt;
&lt;p&gt;Here is &amp;#8220;&lt;strong&gt;paper 1&lt;/strong&gt;" (~30 minutes). The goal is to introduce you to the basic workings of R and also to great sources of R videos.&lt;/p&gt;
&lt;p&gt;First, learn to install R (watch it in full screen).&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="305" src="http://www.screenr.com/embed/kzT8" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Or you can also watch any of the two following videos:&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="281" src="http://www.youtube.com/embed/Icawuhf0Yqo" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="281" src="http://www.youtube.com/embed/mfGFv-iB724" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Next learn about RStudio and why it&amp;#8217;s a great place to start (watch it on hd and fullscreen).&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="281" src="http://www.youtube.com/embed/JbTMvQ-SbvQ" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Now you are ready to learn how to create a variable in R. Use RStudio instead of the R GUI to do so.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="305" src="http://www.screenr.com/embed/qyT8" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Next, learn the super basics about the basic R plot system.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="305" src="http://www.screenr.com/embed/XeS8" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Now you are ready to learn about how to use the combine function.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="305" src="http://www.screenr.com/embed/jyT8" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Next, learn about data.frame type of objects&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="305" src="http://www.screenr.com/embed/fCs8" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;and how to add new variables to them.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="305" src="http://www.screenr.com/embed/ge28" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Next up is learning how to find help.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="305" src="http://www.screenr.com/embed/Pps8" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Almost there. Now check how to change your current working directory.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="281" src="http://www.youtube.com/embed/8xT3hmJQskU" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Finally, learn how to install and load a package in R.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="396" src="http://www.screenr.com/embed/Fps8" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;If you are more curious regarding the origins of R check the next video (not part of &amp;#8220;paper 1&amp;#8221;).&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="281" src="http://www.youtube.com/embed/kzxHxFHW6hs" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Next, &amp;#8220;&lt;strong&gt;paper 2&lt;/strong&gt;" (~39 minutes). The goal here is to get a feeling of how you can use R to create plots.&lt;/p&gt;
&lt;p&gt;First start with this demonstration of the basic R plotting tools (called &amp;#8220;base graphics&amp;#8221;). It does in enough level of detail of how the basic plotting system works and how you can customize the colors, layout, etc. For the purpose of getting used to the tool, I recommend that you follow this video using RStudio. Also, you&amp;#8217;ll want to watch it in 720p.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="281" src="http://www.youtube.com/embed/4KLfzsj-qkE" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Now check the demo for plotting with the &lt;em&gt;lattice&lt;/em&gt; package. This is more advanced, but it should also be more illustrative of the power you have with R. Plus it shows how we can expand the functionality of R by using packages contributed to the community and freely available for us to use.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="281" src="http://www.youtube.com/embed/6VP5JBq1g7g" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Finally, &amp;#8220;&lt;strong&gt;paper 3&lt;/strong&gt;" (~28 minutes). This is the first lecture from a course by Brian Caffo in which he goes over the definition and overall motivation behind Biostatistics. It should be much more fun to watch than reading a review paper in the area.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="281" src="http://www.youtube.com/embed/jkUqDVtpKs4" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Now, for those motivated to learn more, I recommend some of my own posts summarizing  information that can be useful to you.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://fellgernon.tumblr.com/post/32688589475/jhsph-biostat-through-coursera#.UJBzBml25FQ"&gt;JHSPH-Biostat through Coursera&lt;/a&gt; and &lt;a href="http://fellgernon.tumblr.com/post/33114381084/an-online-bioinformatics-curriculum#.UJBy92l25FQ"&gt;An Online Bioinformatics Curriculum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fellgernon.tumblr.com/post/30077689805/setting-up-your-computer-for#.UJBzO2l25FQ"&gt;Setting up your computer for bioinformatics/biostatistics and a compedium of resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fellgernon.tumblr.com/post/30970426274/i-consider-myself-a-fan-of-using-version-control#.UJBzKml25FQ"&gt;Motivation behind using a version control system&lt;/a&gt; and &lt;a href="http://fellgernon.tumblr.com/post/32198487580/introducing-git-while-making-your-academic-webpage#.UJBzIGl25FQ"&gt;Introducing Git while making your academic webpage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fellgernon.tumblr.com/post/33162495473/why-arent-all-of-our-graphs-interactive#.UJBy8ml25FQ"&gt;Why aren’t all of our graphs interactive?&lt;/a&gt; and &lt;a href="http://fellgernon.tumblr.com/post/33908652237/visualizing-colors#.UJBy6Gl25FQ"&gt;Visualizing colors()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fellgernon.tumblr.com/post/16763819010/p-values-and-statistics-phylosophy#.UJB0j2l25FQ"&gt;P-values and Statistics phylosophy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fellgernon.tumblr.com/post/13830203652/the-new-visualization-package-for-genome-data-in#.UJB04Wl25FQ"&gt;The new visualization package for genome data in Bioconductor: ggbio&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Sources:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.twotorials.com/"&gt;&lt;a href="http://www.twotorials.com/"&gt;http://www.twotorials.com/&lt;/a&gt;&lt;/a&gt; by &lt;a href="http://www.kaiseredu.org/tutorials-and-presentations/bios/anthony-damico.aspx"&gt;Anthony Damico&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/user/rdpeng?feature=results_main"&gt;Youtube videos&lt;/a&gt; by &lt;a href="http://www.biostat.jhsph.edu/~rpeng/"&gt;Roger Peng&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/user/bcaffo?feature=results_main"&gt;Youtube videos&lt;/a&gt; by &lt;a href="http://www.bcaffo.com/"&gt;Brian Caffo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Visualizing colors()</title>
      <link>https://lcolladotor.github.io/2012/10/19/Visualizing-colors/</link>
      <pubDate>Fri, 19 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2012/10/19/Visualizing-colors/</guid>
      <description>&lt;p&gt;The other day I learnt about the existance of the colors() vector in R which specifies all the character-based colors like &amp;#8220;light blue&amp;#8221;, &amp;#8220;black&amp;#8221;, etc. So I made a simple plot to visualize them all. Here&amp;#8217;s the code:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-r"&gt;mat &amp;lt;- matrix(1:length(colors()), ncol = 9, byrow= TRUE)
df &amp;lt;- data.frame(col = colors(), 
	x = as.integer(cut(1:length(colors()), 9)),
	y = rep(1:73, 9), stringsAsFactors=FALSE)
plot(y ~ jitter(x), data = df, col = df$col,
 	pch=16, main = &amp;quot;Visualizing colors() split in 9 groups&amp;quot;,
 	xlab = &amp;quot;Group&amp;quot;, 
	ylab = &amp;quot;Element of the group (min = 1, max = 73)&amp;quot;,
	sub = &amp;quot;x = 3, y = 1 means that it's the 2 * 73 + 1 = 147th color&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And the plot:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_mc5ovbt4uQ1qfs0hy.png"/&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Setting up your computer for bioinformatics/biostatistics and a compedium of resources</title>
      <link>https://lcolladotor.github.io/2012/08/23/setting-up-your-computer-for/</link>
      <pubDate>Thu, 23 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2012/08/23/setting-up-your-computer-for/</guid>
      <description>&lt;p&gt;Jumping on the train set by &lt;a href="http://www.biostat.jhsph.edu/~hiparker/"&gt;Hilary Parker&lt;/a&gt; &amp;#8220;&lt;a href="http://hilaryparker.com/2012/08/16/the-setup-part-1/"&gt;The Setup (Part 1)&lt;/a&gt;" and &lt;a href="http://biostat.jhsph.edu/~afrazee/"&gt;Alyssa Frazee&lt;/a&gt; &amp;#8220;&lt;a href="http://alyssafrazee.wordpress.com/"&gt;my software/hardware setup&lt;/a&gt;&amp;#8221;, I&amp;#8217;m going to share my setup and hopefully add something new. They both did a great job already, so make sure you read their posts!&lt;/p&gt;
&lt;p&gt;I have some experience with all three main OS: Windows, Linux and Mac. That being said, I know some of the basic stuff for each but I surely use Google very frequently to get help. I used to have a dual Windows / Linux (Ubuntu) set up but now I have a Windows laptop/desktop (it&amp;#8217;s a monster :P) at home and I&amp;#8217;m happy working with my Mac. &lt;/p&gt;
&lt;p&gt;I&amp;#8217;m going to start by mentioning the software I use(d) in each OS and then add some other tools that I really like.&lt;/p&gt;
&lt;p&gt;Windows&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Text editor: &lt;a href="http://notepad-plus-plus.org/"&gt;Notepad++&lt;/a&gt;. It outperforms Notepad by light years! A must for me is the “View -&amp;gt; Word wrap” option. I would definitely go to “Settings -&amp;gt; Preferences -&amp;gt; New Document/Default Directory” and change the new document format from Windows (Dos) to Unix. This will save you time later when you want to work on a Unix system like the cluster. If you didn’t, you can change a specific document’s EOL (end of line) by using “Edit -&amp;gt; EOL conversion -&amp;gt; UNIX format”. Another feature that I like is the “Search -&amp;gt; Replace…” which allows you to use regular expressions (like Perl). &lt;/li&gt;
&lt;li&gt;Statistical software: &lt;a href="http://cran.r-project.org/"&gt;R&lt;/a&gt; of course! It’s best to do a custom installation and choose a directory without spaces in it. That will help later (further below). If you want to be convinced to join the R community read &lt;a href="http://www.nytimes.com/2009/01/07/technology/business-computing/07program.html?_r=3&amp;amp;scp=1&amp;amp;sq=robert%20gentleman&amp;amp;st=cse"&gt;Data Analysits Captivated by R’s power&lt;/a&gt; and &lt;a href="http://bits.blogs.nytimes.com/2009/01/08/r-you-ready-for-r/?scp=1&amp;amp;sq=Robert%20Gentleman&amp;amp;st=cse"&gt;R You Ready for R?&lt;/a&gt; or just take a look at what others are using. Remember that the R project is open source, free and easy to contribute to. If you end up choosing Excel as your statistical software, well, there is &lt;strong&gt;no&lt;/strong&gt; hope for you!!&lt;/li&gt;
&lt;li&gt;R code editor: Notepad++ with &lt;a href="http://sourceforge.net/projects/npptor/"&gt;NppToR&lt;/a&gt;. For a long time I used Emacs modified to work with Windows by Vincent Goulet available &lt;a href="http://vgoulet.act.ulaval.ca/en/emacs/"&gt;here&lt;/a&gt;. It works great and saves you quite a bit of setup time. &lt;a href="http://www.xemacs.org/"&gt;XEmacs&lt;/a&gt; is another option that a friend of mine used, but it never convinced me. Anyhow, I ended up changing from Emacs to Notepad++ with NppToR because I could:&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Force quit R (and not lose code changes) in case I crashed R by doing something stupid like printing something huge or w/e :P &lt;/li&gt;
&lt;li&gt;Access help pages in a separate window. I’m sure you can do it too with Emacs, but I was just lazy to configure it.&lt;/li&gt;
&lt;li&gt;Shorter shortcuts&lt;/li&gt;
&lt;li&gt;Later on I found the NppToR to PuTTy feature which is very useful.&lt;/li&gt;
&lt;li&gt;You can create an R syntax dictionary (or something like that) in Notepad++ which will scan all your R packages and add the function names so they are colored when you type them. Also Notepad++ will auto-complete some function names and show you the arguments. Great stuff! (Forgot the name, so… google it :P)&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;SSH: &lt;a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/"&gt;PuTTY&lt;/a&gt;. As said before, works well with Notepad++ and NppToR.&lt;/li&gt;
&lt;li&gt;SCP: &lt;a href="http://winscp.net/eng/index.php"&gt;WinSCP&lt;/a&gt;. There are others that work too like &lt;a href="http://filezilla-project.org/"&gt;Filezilla&lt;/a&gt; but well, WinSCP does the job well.&lt;/li&gt;
&lt;li&gt;PDF viewer: &lt;a href="http://www.adobe.com/products/acrobatpro.html"&gt;Adobe Acrobat Professional&lt;/a&gt;. I’m using the X version now. I like how I can highlight, underline, cross out, free hand, sticky note, combine files into a single pdf, combine pdfs, and change the highlight colors easily. It also has a change tracker (kind of like Word has). I’ve seen other use PDF Annotator which is available for free for Hopkins students. Anyhow, I simply love Acrobat for reading papers.&lt;/li&gt;
&lt;li&gt;LaTeX: &lt;a href="http://miktex.org/"&gt;MiKTeX&lt;/a&gt;. For writing TeX files I used either Emacs or Notepad++. There is another software which has drop down menus and the like called &lt;a href="http://www.winedt.com/"&gt;WinEdt&lt;/a&gt;. I got used to typing LaTeX from scratch, well, I have a template.Rnw somewhere. Oh yeah, I always use Sweave when writing TeX files (even if I don’t use R). &lt;/li&gt;
&lt;li&gt;R reports: &lt;a href="http://www.statistik.lmu.de/~leisch/Sweave/"&gt;Sweave by Friedrich Leisch&lt;/a&gt;, one of the champions of reproducibility! To learn more about Sweave first &lt;a href="http://stat.epfl.ch/webdav/site/stat/shared/Regression/EPFL-Sweave-powerdot.pdf"&gt;read this pdf&lt;/a&gt; by Nicola Sartori. This is another &lt;a href="http://users.stat.umn.edu/~geyer/Sweave/foo.pdf"&gt;Sweave demo&lt;/a&gt; by Charles J Geyer. Check out this great &lt;a href="http://www.johndcook.com/troubleshooting_sweave.html"&gt;Windows Sweave troubleshooting page&lt;/a&gt; by John D Cook.&lt;/li&gt;
&lt;li&gt;Building R packages from source. You will definitely need &lt;a href="http://cran.fhcrc.org/bin/windows/Rtools/"&gt;Rtools&lt;/a&gt; installed. I would also install &lt;a href="http://qpdf.sourceforge.net/"&gt;QPDF&lt;/a&gt; which can be used by R to compress your pdf files, which is a good thing if you want to have a small-sized tarball. Last but not least, check out &lt;a href="http://robjhyndman.com/researchtips/building-r-packages-for-windows/"&gt;Building R packages for Windows&lt;/a&gt; by Rob J Hyndman.&lt;/li&gt;
&lt;li&gt;Learn to modify your PATH! Check 1.3 from the previous link by Rob J Hyndman. If you are going to use Sweave, it’s best to add to your PATH the path for the directory containing your Sweave.sty file so that you won’t need to copy it to every single directory. This is why it pays off to do an R custom installation and put it in C:/R/R-current-version or something like that instead of C:/Program Files/ bla bla with spaces. It used to be more important a few years ago. Also, I created a sw.bat file and put it somewhere where my PATH would find it. That sw.bat file ran Sweave, pdflatex twice, then bibtex and finally opened the pdf file.&lt;/li&gt;
&lt;li&gt;PDF viewer for LaTeX files. I only learnt about pdf sync and the like a year ago. You should google how to set this up with SumatraPDF (Adobe Acrobat doesn’t work!).&lt;/li&gt;
&lt;li&gt;Version control: &lt;a href="http://mercurial.selenic.com/"&gt;Mercurial&lt;/a&gt;. It’s very easy to use and you can get an account at &lt;a href="https://bitbucket.org/"&gt;Bitbucket.org&lt;/a&gt; with unlimited number of private repositories if you have an academic email. Even if you are not doing a collaborative project, you will love using a version control system! It will clean up your directories very nicely and will help you become more organized. Learning a few commands is nothing compared to having lots of files with _v1 v_2, etc at the end. Check out the &lt;a href="http://mercurial.selenic.com/guide/"&gt;Mercurial guide&lt;/a&gt; to get started. Note that for windows instead of customizing your .hgrc file you will customize a mercurial.ini file.&lt;/li&gt;
&lt;li&gt;Presentations: both PowerPoint and &lt;a href="http://en.wikipedia.org/wiki/Beamer_(LaTeX)"&gt;Beamer&lt;/a&gt; (normally with Sweave too). Rarely I use &lt;a href="https://docs.google.com"&gt;Google Docs&lt;/a&gt; for this.&lt;/li&gt;
&lt;li&gt;Office: Either Microsoft Office or &lt;a href="http://www.openoffice.org/"&gt;OpenOffice&lt;/a&gt; (free).&lt;/li&gt;
&lt;li&gt;Poster creator: &lt;a href="http://www.postergenius.com/cms/index.php"&gt;PosterGenius&lt;/a&gt; (academic discount price). It was very easy to use and I would surely give the free trial version a go. It adds a watermark, but well, you will appreciate the time you save compared to using PowerPoint. I guess that &lt;a href="http://www.adobe.com/products/photoshop.html"&gt;Adobe Photoshop&lt;/a&gt; is another option, but I’ve only used it to edit photos here and there, not to make a whole poster. The most I did was create &lt;a href="https://picasaweb.google.com/lh/photo/NUiUno0H6MZ8dfTN8ZqF9yRO-Af4bmaijyeT4dbBml0?feat=embedwebsite"&gt;this&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To de-compress RAR files: &lt;a href="http://www.win-rar.com/start.html?&amp;amp;L=0"&gt;WinRAR&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Anti-spyware: &lt;a href="http://www.avast.com/free-antivirus-download"&gt;Avast&lt;/a&gt; (free version). I normally keep it in silent (gaming) mode so it doesn’t show pop ups.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cccp-project.net/"&gt;CCCP codec pack&lt;/a&gt; which includes the Media Player Classic. Great for watching video files and dumping the crappy Windows Media Player.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Linux (Ubuntu)&lt;/p&gt;
&lt;p&gt;Ubuntu provides Linux distributions that are very user friendly and that look much like Mac OS does now. You&amp;#8217;ll find it easy to run multi-core programs which were a pain to do with Windows. Beware that even if you use Ubuntu you will need to learn stuff like how to compile. Also, please check before you install that your computer is supported. For example, some laptops with very new video cards might not work properly. That being said, with Ubuntu you will feel very at ease working in an area like mine (genomics) because a lot of the software runs in Linux (normally in a cluster, but you can test in your lap).&lt;/p&gt;
&lt;p&gt;You will want to check and/or keep for reference &lt;a href="http://faculty.ucr.edu/~tgirke/Documents/UNIX/linux_manual.html"&gt;LINUX Essentials&lt;/a&gt; by Thomas Girke (more from him below), &lt;a href="http://freeengineer.org/learnUNIXin10minutes.html"&gt;Learn Linux in 10 minutes&lt;/a&gt;, &lt;a href="http://www.linux-tutorial.info/toc"&gt;The Linux tutorial&lt;/a&gt;, and &lt;a href="http://www.basicconfig.com/linux/vi"&gt;Linux vi editor tutorial&lt;/a&gt;.  &lt;/p&gt;
* If you are going to use Linux (Ubuntu) at some point you will want to compile something from source and find out that you are missing a dependency. That&amp;#8217;s when I google, then use&amp;#160;:
1. apt-cache search something
2. sudo apt-get install something 
&lt;ul&gt;
&lt;li&gt;Note that you will frequently need the yyyy-devel version which includes c headers and stuff that you need to compile.&lt;/li&gt;
&lt;li&gt;You will find a lot of things through the package installer (forgot what it’s called). Learn the pseudonym for your Ubuntu version so you select the appropriate version of the software in case that you are downloading it from another place.&lt;/li&gt;
&lt;li&gt;SSH/SCP: terminal commands :) I just wanted to mention that rsync is a nice command for synching folders (recursively too) between your computer and say the cluster.&lt;/li&gt;
&lt;li&gt;Version control: Mercurial again. The configuration file is .hgrc not mercurial.ini&lt;/li&gt;
&lt;li&gt;Text editor: Nedit or Emacs. Vi when doing in-terminal modifications.&lt;/li&gt;
&lt;li&gt;You can get R through aptitude or if you want the very latest (or a devel version) you’ll have to compile it. The first time you will have to install plenty of dependencies, but it’s good practice.&lt;/li&gt;
&lt;li&gt;Office: go with OpenOffice.&lt;/li&gt;
&lt;li&gt;LaTeX: install the texlive distribution. I normally get everything so that later when I’m trying to use a TeX package I won’t have to go install it (which is what MiKTeX does for you in Windows). &lt;/li&gt;
&lt;li&gt;Video player: VLC.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mac&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Terminal: &lt;a href="http://www.iterm2.com"&gt;iTerm2&lt;/a&gt;. Mac comes with a native terminal, but iTerm2 has other nice functions like tabs and more options to customize it. Check &lt;a href="http://code.google.com/p/iterm2/wiki/ColorGallery"&gt;this&lt;/a&gt; for free color palettes. I like the Homebrew one from &lt;a href="https://github.com/mbadolato/iTerm2-Color-Schemes"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;LaTeX and R editor: &lt;a href="http://aquamacs.org/"&gt;Aquamacs&lt;/a&gt; is a version of Emacs that works great. However, as I discussed in the Windows section I’m moving away from Emacs. Well, to be honest, I don’t want to put the time to learn how to customize Emacs properly and do amazing stuff with it like Kasper does. Recently (since June) I’ve been using &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;. It has this thing called “Bundles” which provides different hotkeys depending on the file you are editing. Meaning that for Rnw files you can Sweave them directly there and for R files you can either send the code to R or to the terminal (much like Notepad++). The one thing is that it is not free BUT there is a 2.0 alpha release &lt;a href="https://github.com/textmate/textmate"&gt;available on github&lt;/a&gt; that you can compile. &lt;a href="http://developers.slashdot.org/story/12/08/09/1947234/textmate-2-released-as-open-source"&gt;This lengthly discussion&lt;/a&gt; can be worth reading if you want to know more about the 2.0 version and the future of TextMate. Someone said there that &lt;a href="http://www.sublimetext.com/"&gt;Sublime&lt;/a&gt; might be replacing TextMate but I haven’t looked for any R integration in it. Anyhow, I liked how TextMate included an auto-spell checker that recognizes Sweave/LaTeX code from the box :)&lt;/li&gt;
&lt;li&gt;Package installer: &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt;. It’s kind of similar to aptitude from Linux but it’s Mac only. Note that you will definitely need to get &lt;a href="https://developer.apple.com/xcode/"&gt;XCode&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;PDF viewer: also Adobe Acrobat Pro for the reasons mentioned previously.&lt;/li&gt;
&lt;li&gt;PDF viewer for LaTeX: TeXShop which I think comes with the MacTeX distribution. It has the forward sync that Alyssa mentions in her blog.&lt;/li&gt;
&lt;li&gt;Text editor: &lt;a href="http://www.barebones.com/products/TextWrangler/"&gt;TextWrangler&lt;/a&gt;. Has several of the functions I talked about in the Notepad++ section like search and replace with regular expressions. It definitely outperforms the native text editor.&lt;/li&gt;
&lt;li&gt;SCP: &lt;a href="http://cyberduck.ch"&gt;Cyberduck&lt;/a&gt;. I haven’t tried others, but it works and I’m happy with it. I also use the terminal to push/retrieve files like I would do in Linux. Same for ssh and Mercurial.&lt;/li&gt;
&lt;li&gt;Version control: Mercurial. Note that you might have to add a site key (like bitbucket’s) to your .hgrc file so it doesn’t complain when pushing files.&lt;/li&gt;
&lt;li&gt;Productivity: &lt;a href="http://itunes.apple.com/us/app/my-little-pomodoro/id412699095?mt=12"&gt;My Little Pomodoro&lt;/a&gt; available from the Mac app store. I love it for following the Pomodoro technique (you can use any other timer that you like) which Hilary introduced me to. It works like a charm when you are under stress and need to be productive. After all, I’m prone to escape the stress and distract myself, so this helps me keep my distractions limited. I’ve also found that when I’m stuck in a problem and I take the 5 min break thinking about something else, well, the machine keeps working and when I come back from the break I have a new idea to try out.&lt;/li&gt;
&lt;li&gt;Video player: &lt;a href="http://www.videolan.org/vlc/index.html"&gt;VLC&lt;/a&gt; (includes codecs).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other stuff&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browser: I used to love&lt;a href="http://www.mozilla.org/en-US/"&gt;Mozilla Firefox&lt;/a&gt; (it has a nice sync functionality) but I’ve moved to &lt;a href="https://www.google.com/intl/en/chrome/browser/"&gt;Google Chrome&lt;/a&gt;. It’s kind of a shame that Google started to compete with Mozilla, but oh well bye bye 2007. I use Chrome because it works a tad bit better with other Google tools, but that’s it. It also syncs your bookmarks. Both work great and &lt;a href="http://www.opera.com/"&gt;Opera&lt;/a&gt; is still my favorite backup browser. I guess anything but Internet Explorer and Safari.&lt;/li&gt;
&lt;li&gt;Learning R. I would definitely check Thomas Girke &lt;a href="http://manuals.bioinformatics.ucr.edu/home/programming-in-r"&gt;Programming in R&lt;/a&gt; page and Frank McCown’s &lt;a href="http://www.harding.edu/fmccown/R/"&gt;Producing Simple Graphs with R&lt;/a&gt; tutorial. I have my own share of R related slides &lt;a href="http://www.biostat.jhsph.edu/~lcollado/teaching.html#.UDblsWie5Ng"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Learning Bioconductor. Thomas Girke again wrote a great resource for learning how to use &lt;a href="http://manuals.bioinformatics.ucr.edu/home/ht-seq#Introduction"&gt;Bioconductor for analyzing high-throughput sequencing data files&lt;/a&gt;. Bioconductor hosts packages for other technologies/problems, so I would also look at it’s own help pages like the Workflows section. I also like &lt;a href="http://www2.warwick.ac.uk/fac/sci/moac/people/students/peter_cock/r"&gt;Peter’s R programming pages&lt;/a&gt;, specially the heatmap section. I have my own share of Bioconductor related slides &lt;a href="http://www.biostat.jhsph.edu/~lcollado/teaching.html#.UDblsWie5Ng"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Learning LaTeX. I learnt the hard way I guess… I learnt by comparing Sweave files and their output and seeing what changed if I modified the code. Nowadays, I would very highly recommend that you first check the &lt;a href="http://www.uwlax.edu/faculty/matchett/late/late.htm"&gt;How to Use LaTeX&lt;/a&gt; short series of exercises/files by Andrew Matchett. The &lt;a href="http://tobi.oetiker.ch/lshort/lshort.pdf"&gt;Not so short introduction to LaTeX&lt;/a&gt; is a great resource. For very specific symbols, check the &lt;a href="http://www.ung.si/~sstanic/teaching/CIS/LaTeX_symbols-a4.pdf"&gt;Comprehensive LaTeX symbol list&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Using a SGE (Sun Grid Engine) cluster. For some basic commands look &lt;a href="http://www.rcc.uh.edu/hpc-docs/49-using-torque-to-submit-and-monitor-jobs.html"&gt;here&lt;/a&gt;. For the Hopkins cluster, definitely read &lt;a href="http://www.biostat.jhsph.edu/bit/cluster-usage.html"&gt;this&lt;/a&gt;. Finally, for running array jobs check &lt;a href="https://wiki.duke.edu/display/SCSC/SGE+Array+Jobs"&gt;this&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;LaTeX and math. You should definitely &lt;a href="http://en.wikibooks.org/wiki/LaTeX/Mathematics"&gt;read the wiki books page for this topic&lt;/a&gt;. I kept going back to it over my first year at Hopkins when I really needed to learn all this. The &lt;a href="http://en.wikibooks.org/wiki/LaTeX/Theorems"&gt;theorems page&lt;/a&gt; is nice, but not a must. Same for &lt;a href="http://www.stat.ubc.ca/~webmaste/howto/editor/texerr.html"&gt;Common TeX/LaTeX errors&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Figures in LaTeX. &lt;a href="http://www.hep.manchester.ac.uk/u/jenny/jcwdocs/latex/figures.html"&gt;Here is a basic overview &lt;/a&gt;but the &lt;a href="http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions"&gt;wiki books page for the topic&lt;/a&gt; is a must check.&lt;/li&gt;
&lt;li&gt;Accents in LaTeX. Check this &lt;a href="http://fontignie.blogspot.com/2006/04/accents-in-latex.html"&gt;blog post&lt;/a&gt; by “Bugs and Solutions”.&lt;/li&gt;
&lt;li&gt;Blogging R code: &lt;a href="http://www.inside-r.org/pretty-r"&gt;Pretty-R&lt;/a&gt;. I haven’t really used it but it surely looks pretty!!&lt;/li&gt;
&lt;li&gt;Cloud storage: &lt;a href="https://www.dropbox.com/"&gt;Dropbox&lt;/a&gt; works great and tons of iPad apps have an option to backup to it which works great with my note-taking apps. &lt;a href="https://drive.google.com/"&gt;Google Drive&lt;/a&gt; and others are also around.&lt;/li&gt;
&lt;li&gt;Paper (biobliography) organizer: &lt;a href="http://www.zotero.org/"&gt;Zotero&lt;/a&gt; is amazing! I simply love it :) I pull the bibliography from pubmed or the magazine page itself and to avoid any hassle, I have a “papers” folder in my Dropbox where I only organize them by last name. Then if I want to find something, I go to Zotero and look use it’s great search function. I rarely use it to annotate webpages and I hear that it can now upload files to the cloud. Anyhow, I first used it in my Windows/Ubuntu dual setup. You can use it as a Zotero Firefox plugin or as Zotero stand-alone with Zotero Connector (Google Chrome for example). Finally, Zotero can export your bibliography into a BibTex file :)&lt;/li&gt;
&lt;li&gt;Blog: &lt;a href="http://www.tumblr.com/dashboard"&gt;Tumblr&lt;/a&gt;. Some like WordPress better, but I like how Tumblr is not only a blogging platform but also a social media tool. I’ve written &lt;a href="http://fellgernon.tumblr.com/tagged/Blog#.UDbiDGie5Ng"&gt;several posts before on how to customize your blog&lt;/a&gt; and other blog related tools. But a must in my point of view is to get your RSS feed “burnt” with &lt;a href="http://feedburner.google.com"&gt;feedburner&lt;/a&gt;. It has lots of interesting tools and is much better than a plain XML RSS feed.&lt;/li&gt;
&lt;li&gt;Notes: &lt;a href="http://itunes.apple.com/us/app/notability-take-notes-annotate/id360593530?mt=8"&gt;Notability&lt;/a&gt; iPad app. Great stuff and doesn’t blow up on you (aka, doesn’t lose your notes) like &lt;a href="http://notesplusapp.com/"&gt;NotesPlus&lt;/a&gt; did to me. Anyhow, note-taking in my iPad with auto-cloud backups greatly changed my classroom experience. THere are other apps like this one out there.&lt;/li&gt;
&lt;li&gt;I use &lt;a href="http://itunes.apple.com/us/app/voice-recorder-hd/id373045717?mt=8"&gt;Voice Recorder HD&lt;/a&gt; iPad app for recording lectures. It’s useful when you miss something the professor went over quickly and you are trying to understand it later on.&lt;/li&gt;
&lt;li&gt;Email: &lt;a href="http://www.gmail.com"&gt;Gmail&lt;/a&gt; with keyboard shortcuts enabled. I also use “Canned Responses” from the Google Labs to specify my signature. I have an academic one, one for Mexico, etc.&lt;/li&gt;
&lt;li&gt;Send emails later: &lt;a href="http://www.boomeranggmail.com/"&gt;Boomerang for Gmail&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Calendar: &lt;a href="https://www.google.com/calendar"&gt;Google Calendar&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Task manager: Google Tasks from within Google Calendar (not from Gmail, which is doable too) with &lt;a href="http://itunes.apple.com/us/app/gotasks-google-tasks-client/id389113399?mt=8"&gt;GoTasks&lt;/a&gt; in my iPhone.&lt;/li&gt;
&lt;li&gt;RSS reader: &lt;a href="http://www.google.com/reader/view/"&gt;Google Reader&lt;/a&gt;. Works great. By the way, Orbvious interest (below) also works with Google Reader and has a customizable hotkey for it.&lt;/li&gt;
&lt;li&gt;Mark pages to read later: &lt;a href="http://shalom.craimer.org/projects/orbviousinterest/"&gt;Orbvious Interest&lt;/a&gt; for Google Chrome. Great stuff! It syncs between computers and you can use Pocket in your iPad to view the links. &lt;/li&gt;
&lt;li&gt;Maps: &lt;a href="https://maps.google.com/"&gt;Google Maps&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Video conversation: &lt;a&gt;Skype&lt;/a&gt;, Google Hangouts. If I’m going to help someone remotely, then I use &lt;a href="http://www.teamviewer.com/en/index.aspx"&gt;TeamViewer&lt;/a&gt; which is free for non-profit purposes. With it you can move their mouse, which makes things much easier for support issues!&lt;/li&gt;
&lt;li&gt;Photos: &lt;a href="http://picasa.google.com/"&gt;Picasa&lt;/a&gt;. I pay the 5 bucks a year for 20 GB on Picasa Web Albums so all my photos are on the cloud.&lt;/li&gt;
&lt;li&gt;Dictionary: &lt;a href="http://dictionary.die.net/"&gt;die.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Network visualizer/analyzer: &lt;a href="http://www.cytoscape.org/"&gt;Cytoscape&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bioinformatics.psb.ugent.be/webtools/Venn/"&gt;Venn diagrams&lt;/a&gt; with more than 2 sets.&lt;/li&gt;
&lt;li&gt;Setting up your website. I pretty much followed Alyssa’s instructions and got my CSS template for &lt;a href="http://www.biostat.jhsph.edu/~lcollado/#.UDbpKmie5Ng"&gt;my academic page&lt;/a&gt; from &lt;a href="http://www.freecsstemplates.org/"&gt;FCT&lt;/a&gt;. Then I used simple html to modify it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I pretty much dumped a ton of my bookmarks in this huuuuge post! Well, I hope that it will be useful to someone. At least now I&amp;#8217;m happy to have contributed to Hilary&amp;#8217;s computing-resources-post drive.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>The new visualization package for genome data in Bioconductor: ggbio</title>
      <link>https://lcolladotor.github.io/2011/12/06/the-new-visualization-package-for-genome-data-in/</link>
      <pubDate>Tue, 06 Dec 2011 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2011/12/06/the-new-visualization-package-for-genome-data-in/</guid>
      <description>&lt;p&gt;It&amp;#8217;s been a while since I&amp;#8217;ve been waiting for the release of a visualization package in Bioconductor. Back in 2008 I was really impressed by the power of&lt;a href="http://www.bioconductor.org/packages/release/bioc/html/GenomeGraphs.html"&gt; GenomeGraphs&lt;/a&gt; and I have used it in multiple occasions. Yet from both the &lt;a href="http://www-huber.embl.de/biocdeveleurope2010/"&gt;Bioconductor Developer Meeting in Heidelberg 2010&lt;/a&gt; and &lt;a href="https://secure.bioconductor.org/BioC2011/"&gt;BioC2011&lt;/a&gt; I&amp;#8217;ve been waiting for the release of the visualization tools developed by Michael Lawrence and Tengfei Yin at Genentech. &lt;/p&gt;
&lt;p&gt;So, after a long hiatus where I didn&amp;#8217;t browse the &lt;a href="http://www.bioconductor.org/packages/release/BiocViews.html"&gt;biocviews&lt;/a&gt; in Bioconductor, I found out that Lawrence and Yin released &lt;a href="http://www.bioconductor.org/packages/release/bioc/html/ggbio.html"&gt;ggbio&lt;/a&gt; and &lt;a href="http://www.bioconductor.org/packages/release/bioc/html/biovizBase.html"&gt;biovizBase&lt;/a&gt; (it&amp;#8217;s more of an infrastructure package for ggbio) . I haven&amp;#8217;t really had the time to play around with them, but it&amp;#8217;s definitely worth exploring both of their vignette files: &lt;a href="http://www.bioconductor.org/packages/release/bioc/vignettes/ggbio/inst/doc/intro.pdf"&gt;ggbio&lt;/a&gt;, &lt;a href="http://www.bioconductor.org/packages/release/bioc/vignettes/biovizBase/inst/doc/intro.pdf"&gt;biovizBase&lt;/a&gt;. I also think that they&amp;#8217;ll fit very well in Bioconductor because quite a few of their examples involved the gamma of objects the BioC team has released for high-throughput sequencing (HTS) data. Meaning that they work well with objects from IRanges and GenomicRanges. Also, some of the examples use BAM files which are common nowadays in any HTS analysis pipeline. As a plus, ggbio uses&lt;a href="http://cran.r-project.org/web/packages/ggplot2/index.html"&gt; ggplot2&lt;/a&gt;, which definitely makes clear nice plots.&lt;/p&gt;
&lt;p&gt;I expect ggbio to replace GenomeGraphs soon (although I love using it), but I&amp;#8217;m also kind of disappointed that I didn&amp;#8217;t see any of the cool examples from BioC2011 in ggbio&amp;#8217;s vignette file. After all, &lt;a href="https://github.com/tengfei/visnab"&gt;visnab&lt;/a&gt; looked pretty impressive as &lt;a href="http://www.stat.iastate.edu/centers/CCGS/slides/slides-visnab.pdf"&gt;you can see in this presentation&lt;/a&gt;. I don&amp;#8217;t know if they decided to rename visnab into ggbio, or maybe they haven&amp;#8217;t released visnab yet. Anyhow, give ggbio and biovizBase vignette files a look :)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Introducing Biostatistics to first year LCG students</title>
      <link>https://lcolladotor.github.io/2011/12/04/Introducing-Biostatistics-to-first-year-LCG-students/</link>
      <pubDate>Sun, 04 Dec 2011 00:00:00 +0000</pubDate>
      <guid>https://lcolladotor.github.io/2011/12/04/Introducing-Biostatistics-to-first-year-LCG-students/</guid>
      <description>&lt;p&gt;Around two weeks ago I gave a talk via skype to the first year students from the &lt;a href="http://www.lcg.unam.mx/about"&gt;Undergraduate Program on Genomic Sciences&lt;/a&gt; (LCG in Spanish) from the National Autonomous University of Mexico (UNAM in Spanish). The talk was under the context of the &lt;em&gt;Introduction to Bioinformatics Seminar Series&lt;/em&gt; whose goal is to familiarize the new students with the bioinformatics world. It used to be a course heavy on exploring database websites, some basic theory, and lots of new concepts and algorithm names. Like, what is BLAST? This year, the course involved several talks from former students (like myself) on their experience and current job (most of us are in graduate school).&lt;/p&gt;
&lt;p&gt;In my case, I was invited to talk about Biostatistics and R as I was one of the first LCG students to learn and teach R to other students (including PhD students ^^): &lt;a href="http://www.lcg.unam.mx/~lcollado/R/"&gt;12 hour intro to R and Bioconductor&lt;/a&gt;, &lt;a href="http://www.lcg.unam.mx/~lcollado/E/"&gt;R in an intro to statistics course&lt;/a&gt;, a &lt;a href="http://www.lcg.unam.mx/~lcollado/B/"&gt;full course on Bioconductor&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;I had a lot of fun preparing my talk as I tried to portray the three main currents in Biostatistics in a way that would be understandable, basic concepts such as a P-value, some basic R code (the students knew the super basics only), and doing so in a way that I would also pass how I see things. A key part for any bioinformatician, as I see it, is to have a good basic toolset. That&amp;#8217;s why I tried to pass on many tips to these young students. Also, I do like to go back to the philosophy of science and whether we need hypothesis nowadays or just models based on the data. I definitely had to cover the topic of communication as I strongly believe that any researcher has to be able to communicate with a biostastician if they want their help in analyzing their data. Also, a biostatistician is not a stastistician, meaning that they have to understand the underlying biological question. I tried emphasizing this point with the students and I attempted to motivate them to take a basic stastistics and probability course (2 preferably). After all, biostatistics is key nowadays in science since biology has gone high-throughput.&lt;/p&gt;
&lt;p&gt;Giving the talk through skype was definitely a new experience for me. The best is to be in the classroom as you miss a lot of the interaction with the students. For instance, I didn&amp;#8217;t always know who as asking the question and frequently I had to ask them to repeat it louder. Plus, I chose to share my desktop with them instead of having them watch at my face all the time. I guess it wasn&amp;#8217;t easy for them to just watch a screen with a background voice for 2 hours :P But well, I hoped they liked it as much as I liked preparing it.&lt;/p&gt;
&lt;p&gt;If you are interested in the talk, I uploaded the &lt;a href="https://docs.google.com/open?id=0B-mxZfuflcuONmY1MGI3ZjEtN2JjNy00MDNiLTk0NmMtYjdiNDAwNTZmNGNj"&gt;PDF file&lt;/a&gt;, the associated &lt;a href="https://docs.google.com/open?id=0B-mxZfuflcuOZTkxMDUzY2ItNmMzYi00ZDcyLTgyMTQtMWI5YzJmN2IzZjUw"&gt;R file&lt;/a&gt; and the master &lt;a href="https://docs.google.com/open?id=0B-mxZfuflcuOYTY3OTQ4NjUtZTFkOC00MGQ5LThiMzgtNDQ2ZjY2NmZlY2Zi"&gt;Rnw file&lt;/a&gt; to Google Docs. The Rnw file can be useful if you are learning how to write Beamer presentations using Sweave and LaTeX.&lt;/p&gt;
&lt;p&gt;Finally, I was asked to prepare two short questions so that the teachers can evaluate the students. As a bonus for any of them reading my blog ^^ (I did portray blogs as an excellent way to update yourself) here they are:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Argue why you need to learn (at least basic) Biostatistics and why it&amp;#8217;s useful nowadays to analyze biological data.&lt;/li&gt;
&lt;li&gt;Based on the data from your recent experiment, you construct a 95% confidence interval (frequentist approach) for the mean of your variable of interest. What is the probability that the true mean of the distribution is contained in the confidence interval.&lt;/li&gt;
&lt;li&gt;Bonus: list 5 basic R plotting functions&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Answers:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;You need to learn the basics (at least) of Biostatistics in order to be able to communicate with your biostatistician collaborator, and to analyze your own data specially by performing exploratory data analyses (EDA). Also, biological experiments nowadays generate a lot of data as biology has gone high-throughput. Biostatistics is specially useful in order to analyze all this data.&lt;/li&gt;
&lt;li&gt;0 or 1 and you cannot know which is the case for your specific dataset.&lt;/li&gt;
&lt;li&gt;I mentioned: plot, hist, boxplot, qqplot, qqnorm, lines, points, abline, legend&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
  </channel>
</rss>