Day 1 - Reproducible & Collaborative Workflows
Time (PST) | Activity |
---|---|
10:00am - 10:50am | Lecture 1: Course Introduction; Reproducible workflows (50 min) |
10:50am - 11:00am | Break (10 min) |
11:00am - 12:00pm | Interactive Session 1: Flow charts; Drawing board + reporting (60 min) |
12:00pm - 12:30pm | Lecture 2: git discussion; Coding together (30 min) |
12:30pm - 1:30pm | Lunch |
1:30pm - 2:20pm | Interactive Session 2: Collaborative coding with GitHub - Fork (50 min) |
2:20pm - 2:30pm | Break (10 min) |
2:30pm - 3:00pm | Interactive Session 3: Collaborative coding with GitHub - Branches (60 min) |
3:00pm - 3:10pm | Break (10 min) |
3:10pm - 4:00pm | git conflicts (50 min) |
Further reading
Here are a few selected publications to help you to learn more about these topics.
Data and scientific workflow management:
- The Practice of Reproducible Research-Case Studies and Lessons from the Data-Intensive Sciences:
Kitzes, Justin, Daniel Turek, and Fatma Deniz. n.d. http://www.practicereproducibleresearch.org/ - Good enough practices in Scientific Computing:
https://doi.org/10.1371/journal.pcbi.1005510 - Script your analysis:
https://doi.org/10.1038/nj7638-563a - Principles for data analysis workflows:
https://doi.org/10.1371/journal.pcbi.1008770 - Benureau, F.C.Y., Rougier, N.P., 2018. Re-run, Repeat, Reproduce, Reuse, Replicate: Transforming Code into Scientific Contributions. Front. Neuroinform. 0. https://doi.org/10.3389/fninf.2017.00069
- Sandve, G.K., Nekrutenko, A., Taylor, J., Hovig, E., 2013. Ten Simple Rules for Reproducible Computational Research. PLOS Computational Biology 9, e1003285. https://doi.org/10.1371/journal.pcbi.1003285
- Some Simple Guidelines for Effective Data Management:
https://doi.org/10.1890/0012-9623-90.2.205 - Basic concepts of data management:
https://www.dataone.org/education-modules
Open Science
- The Tao of open science for ecology:
https://doi.org/10.1890/ES14-00402.1 - Challenges and Opportunities of Open Data in Ecology:
https://doi.org/10.1126/science.1197962
- Scientific computing: Code alert
https://doi.org/10.1038/nj7638-563a - Our path to better science in less time using open data science tools
https://doi.org/10.1038%2Fs41559-017-0160 - FAIR data guiding principles
https://doi.org/10.1038/sdata.2016.18 - Skills and Knowledge for Data-Intensive Environmental Research https://doi.org/10.1093/biosci/bix025
- Let go your data
https://doi.org/10.1038/s41563-019-0539-5
Collaborative coding
- A new grad’s guide to coding as a team - Atlassian: https://www.atlassian.com/blog/wp-content/uploads/HelloWorldEbook.pdf
- 10 tips for efficient programming: https://www.devx.com/enterprise/top-10-tips-for-efficient-team-coding.html
- Agile Manifesto: https://moodle2019-20.ua.es/moodle/pluginfile.php/2213/mod_resource/content/2/agile-manifesto.pdf
Code Review
- Small-Group Code Reviews For Education: https://cacm.acm.org/blogs/blog-cacm/175944-small-group-code-reviews-for-education/fulltext
Branches
- Interactive tutorial to learn more about git branches and more https://learngitbranching.js.org/
GitHub Workflow
- GitHub:
- guides on how to use GitHub: https://guides.github.com/
- GitHub from RStudio: http://r-pkgs.had.co.nz/git.html#git-pull
- Forking:
- Comparison of git repository host services: https://www.git-tower.com/blog/git-hosting-services-compared/
- Branches
- interactive tutorial on branches: http://learngitbranching.js.org/
- using git in a collaborative environment: https://www.atlassian.com/git/tutorials/comparing-workflows/centralized-workflow https://moodle2019-20.ua.es/moodle/pluginfile.php/2213/mod_resource/content/2/agile-manifesto.pdf
Git using RStudio
- Happy Git and GitHub for the useR:http://happygitwithr.com/
- R packages - Git and GitHub: http://r-pkgs.had.co.nz/git.html#git-init
Git mainly from the command line:
- Interactive git 101: https://try.github.io/
- Very good tutorial about git: https://www.atlassian.com/git/tutorials/what-is-version-control
- Git tutorial geared towards scientists: http://nyuccl.org/pages/gittutorial/
- Short intro to git basics: https://github.com/mbjones/gitbasics
- Git documentation about the basics: http://gitref.org/basic/
- Git documentation - the basics: https://git-scm.com/book/en/v2/Getting-Started-Git-Basics
- Git terminology: https://www.atlassian.com/git/glossary/terminology
- In trouble, guide to know what to do: http://justinhileman.info/article/git-pretty/git-pretty.png
- Want to undo something? https://github.com/blog/2019-how-to-undo-almost-anything-with-git
- Git terminology: https://www.atlassian.com/git/glossary/terminology
- 8 tips to work better with git: https://about.gitlab.com/2015/02/19/8-tips-to-help-you-work-better-with-git/
- GitPro book (2nd edition): https://git-scm.com/book/en/v2
Undoing things
- Help to decide how to undo your problem: http://justinhileman.info/article/git-pretty/git-pretty.png
- Undo almost everything with git https://blog.github.com/2015-06-08-how-to-undo-almost-anything-with-git/
- Difference between git reset soft, mixed and hard https://davidzych.com/difference-between-git-reset-soft-mixed-and-hard/
- Resetting, Checking Out & Reverting https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting