Aperçu des sections
- Aula 1.1
- Aula 1.2
- Aula 1.3
- Aula 2.1
- Aula 2.2
- Aula 3.1
- Aula 3.2
- Aula 3.3
- Aula 4.1
- Aula 4.2
- Aula 5.1
- Aula 5.2
-
Dia 12/03/2025 (14:00 - 17:00)
Parte 2
-
2. Processamento reproduzível e aberto de dados - ferramentas
(partes deste bloco reproduzem material disponibilizado pelo Earth Lab da Universidade do Colorado, EUA)
Ferramentas para fluxos de trabalho que permitem a ciência reproduzível aberta
A ciência aberta envolve a disponibilização de métodos, dados e resultados científicos para todos. A ciência aberta usa preferencialmente computadores com acesso a consagrados programas de domínio público como o Shell (Bash) para gestão de arquivos, git/GitHub para versionamento, Python e R para desenvolvimento de código de programação e Jupyter ou Google Colab como plataforma web de computação interativa.
Como tornar o seu trabalho mais aberto e reproduzível?
Estas são algumas sugestões:
Uso de linguagens de programação aberta
A programação automatiza tarefas, o que facilita que seus fluxos de trabalho sejam executados e replicados rapidamente. Evite o uso de interfaces gráficas que requerem etapas manuais interativas para preparar os seus fluxos. O uso de linguagens de programação de código aberto como Python ou R permite que qualquer pessoa tenha acesso aos seus métodos. Caso contrário, o uso de ferramenta que exija licença exclui da reprodução total do seu fluxo de trabalho as pessoas que não tenham recursos para comprá-la.
Use nomes expressivos para arquivos e diretórios
Nomes expressivos de arquivos e diretórios permitem que sejam rapidamente encontrados. Isso promove a reprodutibilidade, facilita a que outras pessoas compreendam o conteúdo dos seus arquivos e dos seus fluxos de trabalho. Certifique-se de organizar os arquivos relacionados em pastas que podem ajudá-lo a categorizar e encontrar facilmente o que você precisa (por exemplo, dados brutos, scripts, resultados).
Use dados FAIR
Certifique-se de que os dados usados em seu projeto estejam de acordo com os princípios FAIR: localizáveis, acessíveis, interoperáveis e reutilizáveis (findable, accessible, interoperable, e re-usable). O acrônimo, formado por essas quatro qualidades, quando expressas em inglês, forma a palavra "justo(a)" nessa mesma língua. Forneça documentação suficiente sobre como acessá-los e o que eles contêm. Os princípios FAIR também vão além dos dados brutos para se aplicar às ferramentas e fluxos de trabalho usados para processar e criar novos dados. Os princípios FAIR aumentam a reprodutibilidade dos projetos, apoiando a reutilização e expansão dos seus dados e fluxos de trabalho, o que contribui para uma maior descoberta na comunidade científica.
Proteja seus dados brutos
Não modifique (ou substitua) os dados brutos. Mantenha as saídas de dados separadas das entradas, para que você possa facilmente executar novamente o seu fluxo de trabalho conforme necessário. Isso é feito facilmente se você organizar seus dados em diretórios que separam os dados brutos de seus resultados, etc.
Use versionamento e compartilhe seu código
O versionamento permite que você gerencie e rastreie as alterações em seus arquivos (e até mesmo desfaze-las!). Se você o seu código puder ser compartilhado abertamente, implemente o controle de versão e, em seguida, publique o seu código e fluxos de trabalho na nuvem. Existem muitas ferramentas gratuitas para fazer isso, incluindo Git/GitHub.
Documente os seus fluxos de trabalho
A documentação pode significar muitas coisas diferentes. Pode ser tão básico quanto incluir (cuidadosamente elaborados e diretos) comentários em todo o código para explicar as etapas específicas do seu fluxo de trabalho. A documentação também pode significar o uso de ferramentas como Jupyter Notebooks, Google Colab ou arquivos RMarkdown para incluir uma narrativa de texto no formato Markdown intercalada com o código para fornecer uma explicação de alto nível de um fluxo de trabalho. A documentação também pode incluir docstrings, que fornecem documentação padronizada de funções Python, ou mesmo arquivos README que descrevem o quadro geral de seu fluxo de trabalho, estrutura de diretório, dados, processamento e saídas.
Desenhe fluxos de trabalho recriáveis
Crie fluxos de trabalho que possam ser facilmente recriados e reproduzidos por outras pessoas,
- listando todos os pacotes e dependências necessárias para executar um fluxo de trabalho na parte superior do arquivo de código (por exemplo, Jupyter Notebook ou arquivos R Markdown);
- organizando o seu código em seções, ou blocos de código, de código relacionado e incluir comentários para explicar o código;
- criando ambientes reutilizáveis para fluxos de trabalho Python ou R usando ferramentas como docker containers, ambientes conda e cadernos interativos binder.
MapBiomas - um exemplo de como fazer ciência aberta
O MapBiomas é uma rede colaborativa, formada por ONGs, universidades e startups de tecnologia que oferece ferramentas de mapeamento da cobertura e uso da terra e monitoramos a superfície de água e cicatrizes de fogo mensalmente com dados a partir de 1985. Essa iniciativa permite a qualquer pesso acompanhar a forma como transformamos a paisagem e o uso dos nossos recursos naturais. Os primeiros minutos do vídeo fazem menção à importância da ciência aberta durante o lançamento, no dia 28/Ago/2024, da Coleção #9 da base de dados que alimenta esse sistema.
Como a FAPESP enxerga a ciência reproduzível aberta?
A FAPESP vem trabalhando há anos no sentido de promover a ciência aberta (Open Science), e disponibiliza no seu site um texto sobre o assunto.
Ciência aberta, para a FAPESP, é o conjunto de políticas e ações de disseminação do conhecimento, em geral por meios digitais, para que todos os resultados de uma pesquisa sejam acessíveis a todos, passíveis de reutilização e de reprodução. Tais resultados incluem, dentre outros, publicações, dados, metodologias e processos computacionais usados no desenvolvimento da pesquisa. O objetivo da Ciência Aberta é promover a inovação e o avanço do conhecimento por meio de colaboração entre cientistas e reuso dos resultados, com consequente aceleração do progresso científico, tecnológico, econômico, social e cultural.
Segundo a FAPESP, a disseminação pode ocorrer via repositórios digitais públicos, de conjuntos de arquivos que contenham os três elementos básicos da ciência aberta:
- Acesso Aberto (publicações)
- Dados Abertos (incluindo dados brutos, modelos, especificações e documentação) e
- Processos Computacionais Abertos (como software e algoritmos) (ver Open Science by Design, da Academia Americana de Ciências).
A ciência aberta representa, assim, para a FAPESP, uma mudança na forma de desenvolver pesquisas, com forte ênfase na disseminação do conhecimento, usando as facilidades de comunicação trazidas pelas tecnologias digitais. Para além das práticas usuais de publicar resultados da pesquisa em artigos científicos, busca-se também, e ativamente, o compartilhamento e uso de todo o conhecimento disponível desde os estágios iniciais de uma pesquisa.
Bibliografia e material complementar
Creative Commons
Figshare
Zenodo
Github
Gitlab
Impactstory
Open Science by Design - Realizing a Vision for 21st Century Research
Open Source Initiative
Sourceforge -
3. Fluxos de trabalho científico reproduzível e aberto
Conceder acesso ao código-fonte equivale à publicação detalhada da metodologia. Sem acesso ao código fonte dos programas usados, teríamos que confiar nas habilidades de programação de outras pessoas para realizar os nossos experimentos numéricos. Quando os códigos de simulação ou arquivos de parâmetro estão ocultos, faltará rigor na experimentação numérica e o exercício não poderá passar pelo crivo da ciência verossímil. É necessário dar aos céticos a capacidade de repetir o seu experimento. A ciência tem que ser verificável na prática e por princípio.
A rotina científica, portanto, precisa ser revisada e transitar de trabalhar, terminar e publicar para trabalhar, terminar, publicar e liberar. Ou seja, a pesquisa não deve ser considerada completa enquanto:
- os dados e metadados não forem colocados na web para outras pessoas usarem,
- o código não for adequadamente documentado e liberado, e
- os comentários não começarem a surgir citando o trabalho.
Use a regra F.A.I.R.
Certifique-se de que os dados usados em seu projeto estejam de acordo com os princípios FAIR: localizáveis, acessíveis, interoperáveis e reutilizáveis (findable, accessible, interoperable, e re-usable). O acrônimo, formado por essas quatro qualidades, quando expressas em inglês, forma a palavra "justo(a)" nessa mesma língua. Forneça documentação suficiente sobre como acessá-los e o que eles contêm. Os princípios FAIR também vão além dos dados brutos para se aplicar às ferramentas e fluxos de trabalho usados para processar e criar novos dados. Os princípios FAIR aumentam a reprodutibilidade dos projetos, apoiando a reutilização e expansão dos seus dados e fluxos de trabalho, o que contribui para uma maior descoberta na comunidade científica.
Proteja seus dados brutos
Não modifique (ou substitua) os dados brutos. Mantenha as saídas de dados separadas das entradas, para que você possa facilmente executar novamente o seu fluxo de trabalho conforme necessário. Isso é feito facilmente se você organizar seus dados em diretórios que separam os dados brutos de seus resultados, etc.
Use versionamento e compartilhe seu código
O versionamento permite que você gerencie e rastreie as alterações em seus arquivos (e até mesmo desfaze-las!). Se você o seu código puder ser compartilhado abertamente, implemente o controle de versão e, em seguida, publique o seu código e fluxos de trabalho na nuvem. Existem muitas ferramentas gratuitas para fazer isso, incluindo Git/GitHub.
Documente os seus fluxos de trabalho
A documentação pode significar muitas coisas diferentes. Pode ser tão básico quanto incluir (cuidadosamente elaborados e diretos) comentários em todo o código para explicar as etapas específicas do seu fluxo de trabalho. A documentação também pode significar o uso de ferramentas como Jupyter Notebooks, Google Colab ou arquivos RMarkdown para incluir uma narrativa de texto no formato Markdown intercalada com o código para fornecer uma explicação de alto nível de um fluxo de trabalho. A documentação também pode incluir docstrings, que fornecem documentação padronizada de funções Python, ou mesmo arquivos README que descrevem o quadro geral de seu fluxo de trabalho, estrutura de diretório, dados, processamento e saídas.
-