resources
Reproducible research
- Best Practices for Scientific Computing (paper)
- Ten simple rules for reproducible computational research (paper)
- Top ten reasons not to share your code
- Implementing reproducible research (book; chapter PDFs online)
Make
- GNU make
- Manual for make
- Minimal Make tutorial
- Managing projects with GNU make book (part of the Open Books project)
- Mike Bostock’s “Why Use Make”
- GNU Make for reproducible data analysis by Zachary Jones
- Makefiles for R/LaTeX projects by Rob Hyndman
- drake for R
- Snakemake for python
R Markdown
- R Markdown documentation
- R Markdown: The Definitive Guide
- Markdown
- knitr in a knutshell
- Ode to here on the here package
- gt for tables
- tips and tricks for images and figures in R Markdown
- rmd4medicine.netlify.com
- MathJax
- xtable, an R package for creating LaTeX and HTML tables; it’s better for LaTeX than for HTML.
- kableExtra package
- blogdown for websites
- bookdown for book-like objects
- xaringan for slides
- pagedown for paged documents (like resumes or letters)
Jupyter notebooks
- Publication ready Jupyter notebooks, blog post by Abhishek Sharma
Unix command line
- Survival guide for Unix newbies
- Settling into Unix
- Shell programming with bash
- Essential Unix commands
- Basic Unix commands
- Command line essentials (slides)
- How to look like a unix guru
- Linux essentials
- Important unix commands
- Linux quick reference guide
- A command-line murder mystery
- Book: Learning the bash shell
- Karl’s
.bash_profile
and.bashrc
files - How to install the Xcode command line tools (Mac)
- Git Bash
- Cygwin
- Enable linux in Windows 10
Git/GitHub
- Karl’s git/github guide
- GitHub
- Education discount on GitHub personal account (allows private repositories)
- Happy Git and GitHub for the useR (from Jenny Bryan’s Data Science course
- The git documentation
- The github help pages
- Software carpentry notes on git
- Git can facilitate greater reproducibility and increased transparency in science (paper)
- Karthik Ram’s slides
- “Try git” tutorial
- git - the simple guide
- magit, an emacs mode for git
- Tutorial on magit; also this one
- “Excuse me, do you have a moment to talk about version control?&rdquo
- GitHub and RStudio
R packages
- Hilary Parker’s Writing an R package from scratch
- Hadley’s R packages book
- Jeff Leek’s Developing R packages
- Karl’s R package tutorial
- Stat 545 on Writing R packages
- devtools package
- usethis package
- Build an R package with usethis by Matt Dray
- usethis workflow for package development by Emil Hvitfeldt
Testing/debugging
- Jenny Bryan talk, “Object of type closure is not subsettable”
- Richard Cotton, Testing R Code (book)
- Kernighan and Pike, The Practice of Programming (book)
- Testing chapter in Hadley Wickham’s R packages book
- Julia Silge blog post A beginner’s guide to Travis-CI for R
- Automated checking chapter in Hadley Wickham’s R packages book
Data visualization
- Naomi Robbins, Creating more effective graphs
- Edward Tufte: The visual display of quantitative information, Envisioning information, Visual explanations
- Gelman et al. (2002) Let’s practice what we preach: turning tables into graphs. The American Statistician 56:121-130. doi:10.1198/000313002317572790
- Nature Methods columns: https://bit.ly/points_of_view
Big jobs
- KnitR cache [Also see Knitr options]
- KnitR chunk references
- Parallel R (book)
- A no BS guide to the basics of parallelization in R at librestats
- Parallel computing in python: joblib <!–
- Parallel Options for R slides by Glenn Lockwood –>
- HTCondor
- UW-Madison Center for High Throughput Computing
- Kill Linux processes easier with pkill
- Reproducibility of parallel tasks in R
LaTeX
- LyX, a WYSIWYG application for LaTeX, with knitr
- Overleaf, Authorea: online collaborative LaTeX editors
- Setting up LaTeX by Rob Hyndman
- A not so short introduction to LaTeX
- Getting started with LaTeX (pdf)
- Slides with introduction to LaTeX
- A hitchhiker’s guide to LaTeX (pdf)
- Detexify2 - LaTeX symbol classifier
- xtable, an R package for creating LaTeX and HTML tables
- xtableGallery (pdf vignette)
- UnicodeIt (for Mac) - convert latex expressions into unicode characters
- LaTeXit (for Mac) - LaTeX-based equation editor
- LaTeX table generator
- AucTex, for working with LaTeX within emacs.
Docker containers
- Software carpentry tutorial
- Intro to Docker for reproducible research (pdf) by Carl Boettiger
- ROpenSci Docker Tutorial
- Docker and reproducibility
- Installing Docker
- Docker hub
- Rocker project (docker for R)
- Tutorial: running a dockerized jupyter server for data science
R and python environments
- renv
- renv: Project Environments for R by Kevin Ushey
- conda
- conda environments
- venv tutorial
- python packages
Copyright and software/data licenses
- Victoria Stodden:
- Coding horror blog
- Understanding open source and free software licensing (book)
- The whys and hows of licensing scientific code by Jake VanderPlas
- A quick guide to software licensing for the scientist-programmer (Morin et al. PLoS Comput Biol 8:e1002598, 2012)
- Creative Commons licenses
- tl;dr legal: Software licenses in plain English
- MIT license at wikipedia
- GNU General Public License
- GPL frequently asked questions
- Copyright basics (pdf from US Copyright Office)
- Works for hire (pdf from US Copyright Office)
- Fair use (US Copyright Office)
- Copyright basics
- Copyright and fair use
- Copyright of facts and data [concise]
- Database legal protections [detailed]
- VertNet guide to copyright and licenses for dataset publication
- UW-Madison: