class: center, middle, inverse, title-slide .title[ # Reproducible scientific manuscripts and reports ] .subtitle[ ## Serrapilheira/ICTP-SAIFR Training Program in Quantitative Biology and Ecology ] .author[ ### Andrea Sánchez-Tapia & Sara Mortara ] .date[ ### 10 August 2022 ] --- background-image: url("figs/rmarkdown.png") background-position: 98% 2% background-size: 100px ## Writing and data analysis workflows + Non-linear: Come back and forth between coauthors, updating with updated results -- + __Copy and pasting results is error prone!__ -- + Formatting, reference citing, adding figures can be cumbersome -- + Depending on the area, we are mostly used to MS Office, Google docs and similar for collaborative writing -- + In some areas, researchers use `\(\LaTeX\)` but it has a learning curve --- ## A friendly writing workflow would allow us to -- + Write as we analyze -- + Integrate code and text: _Literate programming_ ([Knuth 1984](http://www.literateprogramming.com/knuthweb.pdf)) -- + Facilitate coauthors __revision__ -- + __Update__ if there are changes -- + Allow __citing__, __formatting__ and __submitting__ -- #### We can use the pros of working with scripts + version control and be transparent --- ## Where are you today? 1. Do you use already a reference manager? 2. Do you use `.bib` and know how to create one? 3. Do you know about __rmarkdown__? 3. Do you know how to cite from `.bib` in markdown? 3. Do you know about `\(\LaTeX\)`? 4. Do you use `\(\LaTeX\)` locally or using Overleaf? 5. Do you use `git` to version control your writing process? --- ## <huge> `\(\LaTeX\)` </huge> + Document preparation system with __high typographic quality__ -- + Text files with `.tex` extension. Output format: __PDF__ -- + Text files: can be used with __version control__ such as `git` -- + Deals correctly with math, scientific, algebraic __notation__ -- + __Typesetting__ (pagination, figure posititoning, general formatting) -- + `\(\LaTeX\)` files can be __submitted__ directly to some journals + dissertation templates in many institutions -- #### A good way to learn and collaborate: Overleaf https://www.overleaf.com/ --- background-image: url(https://bookdown.org/yihui/rmarkdown-cookbook/images/workflow.png) background-size: contain ## markdown and rmarkdown .footnote[https://bookdown.org/yihui/rmarkdown-cookbook/rmarkdown-process.html] --- ## Markdown markup .pull-left[ `text` `__bold__` and `**bold**` `superscript^2^` `~~strikethrough~~` `[link](www.rstudio.com)` `# Heading 1` `## Heading 2` ] .pull-right[ text __bold__ and **bold** superscript<sup>2</sup> ~~strikethrough~~ [link](www.rstudio.com) # Heading 1 ## Heading 2 ] --- ## Markdown markup .pull-left[ `+ unnumbered list` `+ unnumbered list` `1. numbered list` `1. numbered list` ] .pull-right[ + unnumbered list + unnumbered list 1. numbered list 1. numbered list ] And all __html__ commands! `<center> </center>` `You can hide text <!-- with html comments -->` You can hide text <!-- with html comments --> --- background-image: url(https://raw.githubusercontent.com/ThinkR-open/remedy/master/reference/figures/thinkr-hex-remedy.png) background-size: 150px background-position: 98% 2% ## help when writing: package __remedy__ + Documentation: https://github.com/ThinkR-open/remedy + Installs as an RStudio addin + You can modify the keyboard shortcuts `Tools > Modify keyboard shortcuts` + `ctrl + b` -> bold + `ctrl + i` -> italic + `ctrl + k` -> link + `ctrl + 1` -> h1 (level 1 header) + `ctrl + 2` -> h1 (level 2 header) + `ctrl + r` -> insert chunk --- ## To add external figures + Native markdown: `![alt-text](/figs/fig.png)` -- + HTML: `<img src ---->` -- + `\(\LaTeX\)`: `\includegraphics{}` -- + __For all formats:__ `knitr::include_graphics(/figs/fig.png)` (inside a _chunk_) -- #### Markdown has support for alternative text! `fig.alt =` parameter --- ## Tables .pull-left[ Format `| name1 | name2 | name3 |` `|:-----:|:-----:|:-----:|` `| text1 | text2 | text3 |` `| text1 | text2 | text3 |` ] .pull-right[ Result | name1 | name2 | name3 | |:-----:|:-----:|:-----:| | text1 | text2 | text3 | | text1 | text2 | text3 | ] -- + From R chunks: + `knitr::kable()` + Package [kableExtra](https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html) -- + Some services to create tables with the format: __[markdown table generator](http://www.tablesgenerator.com/markdown_tables)__ and HackMD (good support for tables). --- class: center, middle, inverse # Bibliographical reference management --- background-image: url("https://www.zotero.org/static/images/theme/zotero-logo.1519224037.svg") background-size: 20% background-position: 90% 0% ## Reference managers + Save citations, publication files (optional), assist in the citation and bibliographies -- + __Zotero__, __Mendeley__, EndNote, Reference Manager -- + To cite in `\(\LaTeX\)` and markdown: [BibTeX](http://www.bibtex.org/), File format: `.bib` -- ``` ## @Manual{, ## title = {vegan: Community Ecology Package}, ## author = {Jari Oksanen and F. Guillaume Blanchet and Michael Friendly and Roeland Kindt and Pierre Legendre and Dan McGlinn and Peter R. Minchin and R. B. O'Hara and Gavin L. Simpson and Peter Solymos and M. Henry H. Stevens and Eduard Szoecs and Helene Wagner}, ## year = {2020}, ## note = {R package version 2.5-7}, ## url = {https://CRAN.R-project.org/package=vegan}, ## } ``` --- ## Using zotero or mendeley + Reference storage and management in __a local app__ -- + A __browser extension__ _downloads_ citation and PDF if available -- + A __connector__ for MS Word and LibreOffice -- + A __citation styles__ repository: [Zotero style repository](https://www.zotero.org/styles). File extension: `.csl` -- + A __site__ that creates citations from URL or DOI [https://zbib.org/](https://zbib.org/) -- + A way to create bibliographies in `.bib` __BiBTex__, __Zotero__(`BetterBibTex`), and __Mendeley__: create `.bib` for each collection, keeps updated --- ## To cite documents in __rmarkdown__ + With `refs.bib` and `style.csl` in `/citation` folder include `.bib` and `.csl` in the YAML header: + `bibliography: ../citation/refs.bib` + `csl: ../citation/nature.csl` -- + Cite format: `@name_word_year` (check in the reference manager for the __citation key__) -- + Ex. `[@dignazio_data_2020]` -> (D'Ignazio & Klein 2020) + Ex. `@dignazio_data_2020` -> D'Ignazio & Klein (2020) + Ex. `[@noble_algorithms_2018, @dignazio_data_2020]` -> (Noble 2018, D'Ignazio & Klein 2020) -- + Default: the bibliography is added at the end of the text, but can be placed anywhere with: `<div id="refs"></div>` --- ## Creating a `.bib` in Mendeley <img src="./figs/mendeley.png" width="600" style="display: block; margin: auto;" /> --- ## Creating a `.bib` in Zotero <img src="./figs/exportar_bibtex.png" width="600" style="display: block; margin: auto;" /> --- background-image: url("./figs/0newcollection.png") background-size: 100% __Create the collection__ --- background-image: url("./figs/1tukey_amazon.png") background-size: 100% __You can download directly from the internet, even Amazon__ --- background-image: url("./figs/2salvando.png") background-size: 100% __Click to save__ --- background-image: url("./figs/3app.png") background-size: 100% __In the app, BetterBibTex creates the key__ --- background-image: url("./figs/4export.png") background-size: 100% __Export the collection__ --- background-image: url("./figs/5export.png") background-size: 100% __BetterBibTeX - keep updated!__ --- background-image: url("./figs/6bib.png") background-size: 80% __the .bib is a text file__ --- background-image: url("./figs/7csl.png") background-size: 100% __download citation styles__ --- background-image: url("./figs/7_bib_e_csl.png") background-size: 100% --- # Other packages based in markdown - __bookdown__ create whole books from several `.Rmd` - __pagedown__ templates for thesis, CVs, in html - __rticles__: `\(\LaTeX\)` templates, accepted by journals (plos, Elsevier, Frontiers, etc.) only PDF! ```r remotes::install_github("rstudio/rticles") rticles::journals() ``` - __thesisdown__ with university templates. Some variations: __coppedown__, __ufscdown__ --- ## Some final tips - __Resist the temptation__ to create a single document mixing text and code (__Don't do things just because you can__) - _Scripts_ and _outputs_ in separate folders than documents -- - Several chapters - several folders, don't write in a single `.Rmd` -- - Don't choose formats too early but don't leave this to the end --- ## References + Rosanna van Hespen: Writing your thesis with R https://www.rosannavanhespen.nl/2016/02/16/writing-your-thesis-with-r-markdown-1-getting-started/ - R Markdown: The Definitive Guide https://bookdown.org/yihui/rmarkdown/ - R markdown cookbook: https://bookdown.org/yihui/rmarkdown-cookbook/ - https://rmarkdown.rstudio.com https://bookdown.org/yihui/rmarkdown/interactive-documents.html --- class: center, middle # ¡Thanks! <center> <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#A70000;height:1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"></path></svg> [andreasancheztapia@gmail.com](mailto:andreasancheztapia@gmail.com) | [saramortara@gmail.com](mailto:saramortara@gmail.com) <svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#A70000;height:1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg> [@SanchezTapiaA](https://twitter.com/SanchezTapiaA) | [@MortaraSara](https://twitter.com/MortaraSara) <svg viewBox="0 0 496 512" style="position:relative;display:inline-block;top:.1em;fill:#A70000;height:1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg><svg viewBox="0 0 512 512" style="position:relative;display:inline-block;top:.1em;fill:#A70000;height:1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z"></path></svg> [andreasancheztapia](http://github.com/andreasancheztapia) | [saramortara](http://github.com/saramortara)