class: center, middle, inverse, title-slide # The Birder’s Guide to rOpenSci ## Maëlle Salmon
ma_salmon
maelle
masalmon.eu ### 2018/09/12 --- # My goals today -- * **Inspiring** you to try out rOpenSci packages. -- * **Motivating** you to get involved with rOpenSci. -- * **Sharing** a few tips from my experience. -- Slidedeck up at https://tiny.cc/animove --- class: part-slide, center, bottom background-image:url(birds_photographs/merle.jpg) # Short intro to me 😉 --- # My science credentials * BSc in Biology, MSc in (Theoretical) Ecology * Master of Public Health * PhD in Statistics Nowadays, more of a *research software engineer*. Part-time software engineer at rOpenSci & at Locke Data. -- Not an actual birder. 🙀 -- All pics by my dad. 📷 --- # My place in the R community <img src="index_files/figure-html/community-1.png" width="300" style="display: block; margin: auto;" /> * R-Ladies Global social master * R Weekly team member (and blogger myself!) * Volunteer editor for rOpenSci onboarding --- class: part-slide, center, bottom background-image:url(birds_photographs/mouette_rieuse2.JPG) # What is rOpenSci? --- # What's rOpenSci? * Community of researchers and software developers * R packages for open and reproducible science * Community and staff contributions <img src="index_files/figure-html/ropensci-logo-1.png" width="533" style="display: block; margin: auto;" /> --- # https://ropensci.org/packages/ <img src="index_files/figure-html/webshot-packages-1.png" style="display: block; margin: auto;" /> --- # rOpenSci onboarding! How to ensure quality in the whole suite? -- Open software reviews. -- * drive adoption of best practices and standards -- * build a community of practice -- * partnerships with the Journal of Open Source Software and Methods in Ecology and Evolution --- # What to review for? -- ```r magick::image_read("https://raw.github.com/jtleek/rpackages/master/documentation.png") ``` <img src="index_files/figure-html/unnamed-chunk-1-1.png" width="1152" style="display: block; margin: auto;" /> --- # Review criteria * Open-source initiative (OSI) compatible license * Complete docs * High test coverage * Readable code * Usability -- [ropensci.github.io/dev_guide/](https://ropensci.github.io/dev_guide/) --- # Side-note: your R 📦 -- Bye bye `source("myfunctions.R")`, hello `library("mypkg")`! -- * At least for future you! * Automatic tools make it easier List of resources: https://masalmon.eu/2017/12/11/goodrpackages/ --- # How to review? -- * Open & non-adversarial -- * No rejections -- * Makes the process constructive for everyone involved -- * Technically, using GitHub infrastructure --- # rOpenSci onboarding <img src="index_files/figure-html/onboarding-repo-1.png" width="1353" style="display: block; margin: auto;" /> --- # The issues tracker <img src="index_files/figure-html/onboarding-issues-tracker-1.png" width="1353" style="display: block; margin: auto;" /> --- # Submitting a package <img src="index_files/figure-html/onboarding-submission-1.png" width="1336" style="display: block; margin: auto;" /> --- # Submitting a package <img src="index_files/figure-html/onboarding-submission2-1.png" width="1353" style="display: block; margin: auto;" /> --- # Submitting a package <img src="index_files/figure-html/onboarding-submission3-1.png" width="1353" style="display: block; margin: auto;" /> --- # Rejection No rejections... but out-of-scope packages not onboarded. https://ropensci.github.io/dev_guide/policies.html#aims-and-scope -- * fit in our categories: data retrieval, data extraction, database access, data munging, data deposition, reproducibility, geospatial data, text analysis. -- * application in _science_ -- * better than similar packages -- When in doubt, pre-submission enquiry! --- # Pre-submission enquiry? <img src="index_files/figure-html/onboarding-presub1-1.png" width="1353" style="display: block; margin: auto;" /> --- # Pre-submission enquiry? <img src="index_files/figure-html/onboarding-presub2-1.png" width="1353" style="display: block; margin: auto;" /> --- # The review process <img src="index_files/figure-html/onboarding-whole-thread-1.png" width="100" style="display: block; margin: auto;" /> --- # The review process: editor checks <img src="index_files/figure-html/onboarding-editor-1.png" width="350" style="display: block; margin: auto;" /> --- # The review process: reviews <img src="index_files/figure-html/onboarding-review1-1.png" width="100" style="display: block; margin: auto;" /> --- # The review process: reviews <img src="index_files/figure-html/onboarding-review2-1.png" width="100" style="display: block; margin: auto;" /> --- # The review process Ongoing discussion until acceptance and transfer -- Often a blog post https://ropensci.org/tags/review/ --- class: part-slide, center, bottom background-image:url(birds_photographs/mouette_rieuse.jpg) # An exploration from Radolfzell --- # An exploration from Radolfzell 5 use cases. Not all detailed in the talk! 😌 -- <br/> All details in blog posts https://ropensci.org/tags/birder/ --- # An exploration from Radolfzell <br/> Leveraging rOpenSci packages and also: * the `magrittr` pipe `%>%` to pass output from one function to the following function * `tidyverse` (`ggplot2`, `dplyr`, `purrr`) * `sf` * `R Markdown` --- # Case study 1 Where to go birding near Radolfzell? [Code&output](https://maelle.github.io/animove/demo/2018-08-14-where-to-bird.html) --- # Case study 1 * Open geographical data (💚 OpenStreetMap) * `opencage` * `osmdata` * `osmplotr` https://ropensci.org/blog/2018/08/14/where-to-bird/ (co-written with [Mark Padgham](https://github.com/mpadge)) --- # Case study 2 What birds are observed in the county? eBird occurrence data * `rebird`, API, latest 30 days * `auk`, access request needed, whole dataset [Code&output](https://maelle.github.io/animove/demo/2018-08-21-birds-radolfzell.html) --- # Case study 2 Occurrence data * `rebird` and `auk` * more data sources via `spocc` * `mapr`, `scrubr`, `CoordinateCleaner` https://ropensci.org/blog/2018/08/21/birds-radolfzell/ --- # Case study 3 Taxonomy and traits data of these birds -- ```r ids <- taxize::get_uid(unique(ebd$scientific_name)) classif <- taxize::classification(ids) tree <- taxize::class2tree(classif) ``` --- # Case study 3 ```r library("ggplot2") ggtree::ggtree(tree$phylo) + ggtree::geom_tiplab(aes(), size = 2, vjust=0.25) + xlim(0, 150) ``` --- # Case study 3 ![Messy tree](2018-09-04-birds-taxo-traits_files/figure-markdown_github/firsttree-1.png) --- # Case study 3 `rphylopic` + `phylobase` + ugly code ![animated tree](2018-09-04-birds-taxo-traits_files/figure-markdown_github/taxo.gif) --- # Case study 3 Taxonomy: `taxize` Traits: `traits` https://ropensci.org/blog/2018/09/04/birds-taxo-traits/ --- # Case study 4 What were these species studied for? [Code&output](https://maelle.github.io/animove/demo/2018-09-11-birds-science.html) --- # Case study 4 https://ropensci.org/blog/2018/09/11/birds-science/ Literature: `fulltext` & more! -- Open scientific data: `dataone` (not rOpenSci), `rfigshare` --- class: part-slide, center, bottom background-image:url(birds_photographs/mesange_charbonniere.jpg) # Bonus: Old drawings --- # Natural history drawings <img src="index_files/figure-html/drawing-1.png" width="267" style="display: block; margin: auto;" /> [Code&output](https://maelle.github.io/animove/demo/2018-08-28-birds-ocr.html) --- # Natural history drawings https://ropensci.org/blog/2018/08/28/birds-ocr/ -- * `magick` for image manipulation -- * `tesseract` for optical character recognition (OCR) -- * `cld2` and `cld3` for language recognition -- * `taxize::gnr_resolve` for taxonomic name resolution --- class: part-slide, center, bottom background-image:url(birds_photographs/grebe_huppe.jpg) # Conclusion --- # An impressive package suite Missing from this overview: workflow packages such as `drake`, `gistr`, `git2r`. https://ropensci.org/packages/ https://ropensci.org/tags/birder/ --- class: part-slide, center, bottom background-image:url(birds_photographs/heron_cendre.jpg) # A few tips --- # How to keep up-to-date with R &rOpenSci * Twitter \#rstats hashtag * [R Weekly](https://rweekly.org/), [rOpenSci biweekly newsletter](https://news.ropensci.org/) * Conference programs & videos --- # How to not be overwhelmed * Fine not to know everything! * Learn asking for help and advice * when you need * where you should https://masalmon.eu/2018/07/22/wheretogethelp/ * Make R friends --- # How to learn new R skills? By doing! * Try out stuff for yourself * Blog! `blogdown` * Danielle Navarro's 100 days of code https://djnavarro.net/#posts * My own blog https://masalmon.eu/2018/07/16/soapbox/ --- class: part-slide, center, bottom background-image:url(birds_photographs/foulque_macroule.jpg) # Get involved with rOpenSci --- # Get involved * Use our packages and tell us! https://discuss.ropensci.org/ * Get involved with onboarding (submit, review) https://github.com/ropensci/onboarding * More ways to get involved https://ropensci.org/community/ --- # Thank you! https://tiny.cc/animove [<i class="fab fa-twitter "></i>](https://twitter.com/ma_salmon) ma_salmon, [<i class="fab fa-github "></i>](https://github.com/maelle) maelle , [<i class="fa fa-bookmark "></i>](https://masalmon.eu) masalmon.eu [<i class="fab fa-twitter "></i>](https://twitter.com/rOpenSci) rOpenSci, [<i class="fab fa-github "></i>](https://github.com/ropensci) ropensci , [<i class="fa fa-bookmark "></i>](https://ropensci.org) ropensci.org <img src="index_files/figure-html/mallard-1.png" width="533" style="display: block; margin: auto;" />