layout: true --- class: title-slide, center, bottom # Reprodutibilidade computacional e ferramentas de ciência aberta - Segunda (ou quarta) edição ## ### Gabriel Nakamura, USP, Laboratório de Macroevolução e Macroecologia --- name: clouds class: center, middle background-image: url(images/Clouds.jpg) background-size: cover --- template: clouds ## Olá! Quem somos ### Gabriel -- <img src="images/thisIsBird.jpeg" alt="Tweet com uma ave e uma pessoa dizendo que é especialista em aves" width="30%" /> ??? apresentação pessoal --- template: clouds # O início <img src="images/palestra-melina.png" alt="captura de tela mostrando um comentário meu sobre a palestra da melina" width="80%" /> --- template: clouds ## Reprodutibilidade ??? apresentação pessoal --- name: clouds class: center, middle background-image: url(images/Clouds.jpg) background-size: cover ## Reprodutibilidade <img src="images/LOTR01.png" alt="Capas dos três livros Lord of The Rings" width="80%" /> ??? It populate our imaginary and is very present in our lives mainly through movies and some fancy speculations that explore this possibility --- name: clouds class: center, middle background-image: url(images/Clouds.jpg) background-size: cover ## Reprodutibilidade: Por que? .pull-left[ <img src="images/app_encontro.png" alt="Foto com logo do aplicativo de encontro Tinder" width="60%" /> ] .pull-right[ <img src="images/MichaelScott-tinder.jpeg" alt="foto de michael scott de The Office no tinder" width="60%" /> ] -- > "**O artigo científico é o Tinder da Ciência. Não é exatamente mentira, mas somos espertos o suficiente para não casar com alguém só pelo seu perfil aparente**" ??? But, why we have such fascination about time travel topics? First, of all I believe that is a matter of intrinsically curiosity to discover something that is resembles a fiction history, imagine how incredible would be to travel in time inside the Tardis, the success of Dr. Who series reflect a little bit our fascination --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Reprodutibilidade: a importância do processo <img src="images/nature-logo.png" width="30%" /> <img src="images/science-logo.png" width="30%" /> <img src="images/PNAS_logo.png" width="30%" /> ??? Historical events matters a lot if we want to understand the current forms and distributions of life on earth --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Reprodutibilidade: a importância do processo .pull-left[ <img src="images/environmental-data-science-r4ds-general.png" width="100%" /> ] .pull-right[ - Processo é tão importante quanto o resultado - A qualidade do resultado está ligada ao processo - Meios não justificam os fins (meios fazem parte) ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Reprodutibilidade: Por que? ### Base do processo científico <img src="images/reproducibility_quote.png" width="70%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Reprodutibilidade: Por que? ### Construção do conhecimento .pull-left[ <img src="images/democractic_data.png" width="90%" /> ] .pull-right[ <img src="images/ebola_outbreak.gif" width="70%" /> ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Reprodutibilidade: Por que? <img src="images/reproducibility_crisis.webp" width="50%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Reprodutibilidade: Por que? ### Crise de reprodutibilidade .pull-left[ <img src="images/factors_reproducible1.png" width="50%" /> ] -- .pull-right[ <img src="images/Factors_improve_reproducibility.webp" width="60%" /> ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Como resolvemos a crise de reprodutibilidade? -- <img src="images/lula-ppt.png" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Como resolvemos a crise de reprodutibilidade? ## minha pequena contribuição <img src="images/mee314108-fig-0002-m.jpeg" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Como resolvemos a crise de reprodutibilidade? ## minha pequena contribuição <img src="images/mee314108-fig-0002-m3.png" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Como resolvemos a crise de reprodutibilidade? ## minha pequena contribuição <img src="images/mee314108-fig-0002-m4.png" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Como resolvemos a crise de reprodutibilidade? ## minha pequena contribuição <img src="images/mee314108-fig-0002-m5.png" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Organização local: questão de estilo? > Na minha bagunça eu me encontro... <img src="images/quarto_desorganizado.jpeg" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Modelo mínimo para organização local .pull-left[ <img src="images/template_general.jpg" width="100%" /> ] .pull-right[ - Segue uma *estrutura hierarquica* - Separação de arquivos - *Nomes curtos* (sem caracteres especiais) e com *significado* - Acomoda *particularidades* - Não é um esquema absoluto - **README** é essencial ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Ferramentas para organização local ### nomeando coisas (Inspirado no [trabalho](http://www2.stat.duke.edu/~rcs46/lectures_2015/01-markdown-git/slides/naming-slides/naming-slides.pdf) da Jenny Brian) .pull-left[ <iframe src="https://speakerdeck.com/jennybc/how-to-name-files-the-sequel" width="504" height="400px" data-external="1"></iframe> ] .pull-right[ - possível ser lido por máquinas + fácil procura + informações podem ser extraídas do nome (splitting) - possível ser lido por humanos + informações de conteúdo - segue uma **ordem** lógica - ISO 8601 para datas + AAAA-MM-DD ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Ferramentas para organização local: projetos e caminhos .pull-left[ <img src="images/Hadley_advice.jpeg" alt="Tweet de hadley wickham desencorajando o uso sobre setwd e getwd em scripts de R" width="80%" /> ] .pull-right[ <img src="images/set-fire-computer.jpeg" alt="Um coelho e um rato aflitos com um computador ao meio deles em chamas" width="100%" /> ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Ferramentas para organização local: projetos e caminhos ### Caminhos absolutos e relativos .pull-left[ <img src="images/path-illustration.png" width="50%" /> ] .pull-right[ - Computadores distintos, nomes distintos - Caminho absoluto: ```r setwd("/Users/gabrielnakamura/OneDrive/Disciplina_Praticas_ferramentas_gestao_dados") ``` ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Ferramentas para organização local: projetos e caminhos ### Caminhos absolutos e relativos .pull-left[ <img src="images/path-illustration.png" width="80%" /> ] .pull-right[ - Computadores distintos, nomes distintos - Caminho absoluto: `setwd("/pasta1/pasta2/pasta3/pasta3.1/arq")` - Caminho relativo: `setwd("pasta3.1/arq")` ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Ferramentas para organização local: projetos e caminhos ### Solução Rproject + pacote `here` .pull-left[ - Rproject: **"enraiza"** o diretório, ex <img src="images/path-illustration-proj.png" width="40%" /> Caminho: `pasta3.1/arq` ] .pull-right[ - here: **padroniza** caminhos ex: Sistema Windows: `pasta1\pasta2\pasta3\pasta3.1\arq` ou `pasta1//pasta2//pasta3//pasta3.1//arq` Sistemas OS (Mac): `pasta1/pasta2/pasta3/pasta3.1/arq` ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Ferramentas para organização local: projetos e caminhos ### Solução Rproject + pacote `here` - Resumindo .pull-left[ - Daqui em diante: Rproject + here ```r knitr::include_graphics(here::here("images", "cracked_setwd.png")) ``` <img src="images/cracked_setwd.png" width="60%" /> ] .pull-right[ - **NUNCA MAIS USAR `setwd()` ```r knitr::include_graphics(here::here("images", "set-fire-computer.jpeg")) ``` <img src="images/set-fire-computer.jpeg" width="60%" /> ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Ferramentas para organização local ### [Prática](https://gabrielnakamura.github.io/USP_reproducibility_BIE5798/Organizacao_dir_local.html#Ferramentas_para_organiza%C3%A7%C3%A3o_do_diret%C3%B3rio_local) .center[ ✅ Pacote `{here}` ✅ Usando projetos ✅ Dicas para organização do script ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: novos nomes para velhos conhecidos <img src="images/version-control-all.png" width="45%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: Git, GitHub e RStudio ### Novos nomes para velhos conhecidos .pull-left[ <img src="images/version-control-all.png" width="70%" /> ] .pull-right[ - Push e Pull: sincronizando diretórios - working directory e remote repository: pastas locais e remotas - Commit: track changes - branch: "pastas" independentes colaborativas ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: Git, GitHub e RStudio ### O que é Git, GitHub e quais diferenças? .pull-left[ <img src="images/git_logo.png" width="100%" /> **Controle de versão** (track-changes) ] .pull-right[ <img src="images/github-mark.png" width="80%" /> **Repositório** (nuvem) ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: Git, GitHub e RStudio ### Git .pull-left[ <img src="images/git_logo.png" width="50%" /> <img src="images/Linus_torvald.jpg" width="40%" /> ] .pull-right[ - Concebido para grandes projetos colaborativos (Linux) - Executa todo o controle de versões - Funciona independente de um repositório remoto ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: Git, GitHub e RStudio ### Github .pull-left[ <img src="images/github-mark.png" width="100%" /> ] .pull-right[ - Repositório remoto (a nuvem) - Outros tipos de repositório (ex. Gitlab) - Inúmeras funcionalidades (Vizualização, armazenamento, colaboração etc.) ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: Git, GitHub e RStudio ### Github .pull-left[ <img src="images/linus_github.png" width="100%" /> ] .pull-right[ - Repositório remoto (a nuvem) - Outros tipos de repositório (ex. GitLab) - Inúmeras funcionalidades (Vizualização, armazenamento, colaboração etc.) ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: Git, GitHub e RStudio ### O que é Git, GitHub e quais diferenças? .pull-left[ <img src="images/mee314108-fig-0002-m.jpeg" width="100%" /> ] .pull-right[ - Inúmeras funcionalidades (Vizualização, armazenamento, colaboração etc.) <img src="images/paper-pedro-mee.png" width="60%" /> ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: Git, GitHub e RStudio ### E o RStudio? <img src="images/client_movie.jpg" width="23%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: Git, GitHub e RStudio ### E o RStudio? .pull-left[ <img src="images/client_movie.jpg" width="43%" /> ] .center[ .pull-right[ > Ferramentas utilizadas para interagir com sistemas de controle de versão ] ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: Git, GitHub e RStudio ### E o RStudio? .pull-left[ <img src="images/Fusao_Git_R.png" width="90%" /> ] .pull-right[ - Funciona como um client integrado + faz o track-changes + faz os commits + faz os pull e push + faz TUDO em um só lugar ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão e repositório remoto: resumindo <img src="images/git-github-summary.png" width="70%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão: [em caso de dúvidas](https://happygitwithr.com/) ### Jenny Brian <img src="images/jenny-brian.jpeg" alt="Foto de Jenny Brian, que tem cabelos loiros, até o ombro e pele branca" width="45%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Controle de versão: em caso de dúvidas <img src="images/happy-git-jenny-brian.png" alt="Foto do livro digital de jenny brian chamado happy git and github for the useR" width="100%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## [Prática](https://gabrielnakamura.github.io/USP_reproducibility_BIE5798/basics_git.html) ✅ Integrando Git, GitHub e RStudio ✅ Comandos básicos - clone, pull, push e commit ✅ Navegando entre versões ✅ Trabalho colaborativo - pull request, branchs --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Indo além do artigo: literate programming ### Rmarkdown <img src="images/rmarkdown_rockstar.png" alt="Foto do livro digital de jenny brian chamado happy git and github for the useR" width="55%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Indo além do artigo: literate programming > "Programs are meant to be read by humans and only incidentally for computers to execute." -- <img src="images/rmarkdown_wizards.png" alt="A painting illustrating Darwin's finches" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Indo além do artigo: literate programming ### knitr .pull-left[ <img src="images/knitr-alison-horst-hill.png" alt="Foto do livro digital de jenny brian chamado happy git and github for the useR" width="100%" /> ] .pull-right[ - cria documentos (**renderiza**) a partir de Rmarkdown (código e conjunto de texto e instruções) - permite inserir **códigos e texto** e renderizar ambos num mesmo documento ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Indo além do artigo: literate programming ### Por que literate programming? .pull-left[ <img src="images/rmarkdown_rockstar.png" alt="A painting illustrating Darwin's finches" width="100%" /> ] .pull-right[ - Facilita a compreensão dos métodos - Métodos e execução *integrados* - *Estende* o que está apresentado nos artigos - Avançado: *Adeus Office!* ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Indo além do artigo: literate programming ### Exemplo: sítios com material suplementar e mais .pull-left[ <iframe src="https://gabrielnakamura.github.io/Herodotools/index.html" width="504" height="400px" data-external="1"></iframe> ] .pull-right[ - Sites como material suplementar <img src="images/paper-herodotools.png" width="629" /> ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Indo além do artigo: literate programming ### Exemplo: sítios com material suplementar e mais .pull-left[ <iframe src="https://avrodrigues.shinyapps.io/naturaList/" width="504" height="400px" data-external="1"></iframe> ] .pull-right[ - Sites como material suplementar - Sites com ferramentas interativas (ex. demonstração de métodos ) ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Indo além do artigo: literate programming ### Básico (mas extremamente útil) .pull-left[ ### as ferramentas básicas <img src="images/rmarkdown_wizards.png" alt="A painting illustrating Darwin's finches" width="100%" /> ] .pull-right[ - Rmarkdown: + chunks e caracteres especiais - `knitr`: integração - `pandoc`: conversão - melhor parte: apenas clicar em **knitr** ] ??? melhor de tudo é que não precisa saber de nada --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Indo além do artigo: literate programming ### Literate programming - [em caso de dúvida ](https://www.apreshill.com/blog/) <iframe src="https://www.apreshill.com/blog/" width="504" height="400px" data-external="1"></iframe> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Releases ## Ou, tirando um retrato permanente do seu diretório --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Releases ## Desenvolvimento e Armazenamento .pull-left[ # Desenvolvimento <img src="images/github-mark.png" alt="Logo do github" width="70%" /> ] .pull-right[ # Armazenamento <img src="images/zenodo-page.png" alt="logo do zenodo" width="70%" /> ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Armazenamento <img src="images/zenodo-page.png" alt="Página inicial do zenodo com destaque para a aba github" width="30%" /><img src="images/dryad-fig.png" alt="Página inicial do zenodo com destaque para a aba github" width="30%" /><img src="images/figshare.png" alt="Página inicial do zenodo com destaque para a aba github" width="30%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Zenodo ## como integrar os repositórios <img src="images/zenodo-page.png" alt="Página inicial do zenodo com destaque para a aba github" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Manejando dependências ## Versões de pacotes --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Problema: ## Meu script é o mesmo, mas a função deixou de funcionar <div class="figure"> <img src="images/groundhog_problem.png" alt="Figura retirada do blog Data Colada, leia o Data Colada" width="70%" /> <p class="caption">Figura retirada do blog Data Colada, leia o Data Colada</p> </div> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Por que isso acontece? <div class="figure"> <img src="images/package_updates.png" alt="Figura retirada do blog Data Colada, leia o Data Colada" width="70%" /> <p class="caption">Figura retirada do blog Data Colada, leia o Data Colada</p> </div> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Solução 1: Manejando dependências usando o pacote `renv` <img src="images/renv-scheme.png" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Solução 2: Manejando dependências usando o pacote `groundhog` <img src="images/groundhog_animal.jpeg" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Solução 2: Manejando dependências usando o pacote `groundhog` <img src="images/groundhog-day_movie.webp" width="30%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Solução 2: Manejando dependências usando o pacote `groundhog` <img src="images/data-colata.png" width="100%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Containers <img src="images/containers.png" width="70%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Containers ## Problema: meu script é reprodutível, meus pacotes tem versões compatíveis, mas o código continua não rodando.. -- <img src="images/operational-system.jpeg" width="50%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Containers ## Solução: *containerização*, ou, encapsulando tudo .pull-left[ <img src="images/path-illustration-proj.png" width="50%" /> ] -- .pull-right[ <img src="images/container-esquema.png/container-esquema.png.001.png" width="90%" /> ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover # Containers ## Docker .pull-left[ <img src="images/docker-logo.png" width="70%" /> ] -- .pull-right[ <img src="images/rocker-R.png" width="70%" /> ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Targets: trabalhos que demandam muito tempo ### Ou, evitando o loop sisifeano <img src="images/sisyphys.jpeg" width="172" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Targets: trabalhos que demandam muito tempo ### Sem pedras rolantes <img src="images/The-Rolling-Stones.png" width="60%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ??? metadados e pacote xml --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ### O que estes sites tem em comum? <img src="images/GBIF-2015-full-stacked.png" width="20%" /> <img src="images/dataone.jpg" width="20%" /> <img src="images/specieslink.png" width="20%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ### XML - o que é? onde vive? .pull-left[ <img src="images/xml-file-ex.webp" width="90%" /> ] .pull-left[ - **Lista** aninhada - Informações dos arquivos no site - **Compacto e informativo** ao mesmo tempo - Pode ser **acessado programáticamente** ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ### Por que utilizar? .pull-left[ <img src="images/speciesLink-busca.png" width="80%" /> <img src="images/xml-file-ex.png" width="70%" /> ] .pull-right[ - Dados seguindo o **princípio do FAIR ** - Realização de **buscas em repositório** - Possibilita a **integração e síntese** - Possibilita a **leitura por humanos e máquinas** ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ### Montando um EML <div class="figure"> <img src="images/dado-ex-1.png" alt="Uma tabela de dados" width="40%" /> <p class="caption">Uma tabela de dados</p> </div> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ### Montando um XML - descrevendo atributos <div class="figure"> <img src="images/dado-ex-2.png" alt="Uma tabela de dados" width="35%" /> <p class="caption">Uma tabela de dados</p> </div> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ### Montando um XML - descrevendo atributos <div class="figure"> <img src="images/dado-ex-3.png" alt="Uma tabela de dados" width="65%" /> <p class="caption">Uma tabela de dados</p> </div> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ### Montando um XML - descrevendo atributos <div class="figure"> <img src="images/dado-ex-4.png" alt="Uma tabela de dados" width="65%" /> <p class="caption">Uma tabela de dados</p> </div> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ### Montando um XML - mais atributos <img src="images/dado-ex-5.png" width="50%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ### Montando um XML - empacotando tudo <img src="images/dado-ex-6.png" width="80%" /> --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Metadados: XML, EML e outros ### [Prática](https://gabrielnakamura.github.io/USP_reproducibility_BIE5791/Organizacao_dir_local.html#Metadados_na_pr%C3%A1tica_-_utilizando_o_pacote_{EML}) .center[ ✅ Montar um arquivo `.xml` usando o pacote `{EML}` ✅ Montar um arquivo Darwin Core Archive usando o `{LivingNorwayR}` ✅ Manipular um arquivo `.xml` ] --- name: clouds class: center, midle background-image: url(images/Clouds.jpg) background-size: cover ## Sugestões finais ### Grupo de revisão de código <img src="images/code-review.png" width="80%" />