A pesquisa reproduzível em computação visa disponibilizar a outros pesquisadores o código necessário para gerar os resultados em um artigo computacional, para que eles possam executar esse código para reproduzir os resultados nesse artigo. Gostaria de tornar toda a minha pesquisa reproduzível, mas estou enfrentando alguns problemas: alguns trabalhos em que estou trabalhando usam um pacote de diferenciação automática interno (chamado DAEPACK ) em uma biblioteca proprietária ( CHEMKIN- II ; termos de licença pouco claros).
Seria muito demorado substituir esses componentes de software por versões de código aberto. Existe uma substituição de código-fonte aberto para o CHEMKIN-II chamada Cantera , mas o Cantera está em C ++, enquanto o CHEMKIN-II está no Fortran 77. Seria necessário muito esforço para modificar o código do Cantera o suficiente para que pudesse ser processado automaticamente. ferramentas de diferenciação para C ++.
Dado que preciso desses pacotes proprietários, qual é a melhor maneira de tornar minha pesquisa o mais reproduzível possível, assumindo que os pesquisadores possam não ter acesso ao CHEMKIN-II? Como o DAEPACK é um tradutor de fonte a fonte, não preciso necessariamente distribuir o DAEPACK; Talvez eu consiga incluir sua saída, que seria arquivos de origem Fortran que calculam derivadas.
De maneira mais geral, se você precisar de software proprietário em seu trabalho e esse software proprietário não estiver amplamente disponível (por exemplo, MATLAB, Mathematica etc.), como você torna seu trabalho reproduzível?
fonte
Respostas:
Não creio que a definição de "pesquisa reproduzível" exija que o autor forneça gratuitamente todas as ferramentas necessárias para reproduzir os resultados obtidos. Se parte é proprietária, cabe ao usuário futuro, não ao autor, tomar as providências para adquirir o software necessário. (Você não esperaria ter que criar o software para outra pessoa reproduzir seus resultados, certo?) Você teria a responsabilidade, é claro, de especificar exatamente qual versão do software proprietário você usou, mas não é razoável esperar você deve tornar um código de pesquisa compatível com o software de código aberto apenas porque é de código aberto.
[Além disso, além de falar sobre a reprodutibilidade de um software quando parte dele é proprietário, acho que uma questão mais fundamental precisa ser abordada primeiro: o software fornece resultados reproduzíveis em diferentes instalações (por exemplo, para diferentes arquiteturas e Por exemplo, erros de arredondamento e diferenças nas alocações como resultado de diferentes números de processadores significa que muitos cálculos de simulação molecular fornecerão resultados diferentes apenas alterando o número de processadores incluídos na alocação (as médias estatísticas devem atingir o mesmo lugar, mas as trajetórias podem e provavelmente acabarão muito diferentes.)]
fonte
Eu nunca soube que "pesquisa reproduzível" significa que seus colegas leitores e cientistas deveriam apenas clicar em "Executar" (ou compilar ou o que você tem) para reproduzir inteiramente seus resultados. Se nada mais, isso mataria a pesquisa de qualquer pessoa que use um pacote de análise estatística proprietário ou tornaria as coisas "improdutíveis" se elas fossem feitas para uma plataforma ou linguagem que ficou fora de moda. Ou, nesse caso, alguém quer reproduzir seu código, mas não entende / usa o idioma que você usa.
CrossValidated teve uma discussão semelhante sobre o tópico - "reproduzível" significa que você pode replicar minha análise nos meus dados ou que o experimento em si pode ser executado novamente do zero e fornecer resultados confirmatórios. O link está aqui: /stats/14999/how-are-we-defining-reproducible-research
Acho que o elemento mais importante é descrever o que você fez no nível em que poderia ser recodificado por alguém que estivesse suficientemente interessado e, se ferramentas comerciais fossem usadas, essas ferramentas serão mencionadas. Porque isso serve aos interesses de replicar o experimento e verificar novamente se há erros de código.
fonte
No seu caso, onde você pode nem ter o direito de distribuir qualquer código usado, uma descrição muito detalhada do algoritmo pode ser o melhor que você pode fazer. Dependendo da complexidade do seu código, alguém poderá reproduzir o que for do seu interesse a partir de quaisquer ferramentas disponíveis.
Caso contrário, pergunte e veja quanto do seu trabalho você pode liberar e, em seguida, libere-o.
fonte
A melhor maneira de fazer pesquisas reproduzíveis é não depender de nada de vida curta, como códigos específicos em plataformas específicas. Ontem estávamos computando em cartões perfurados, hoje em elétrons em silício, amanhã pode ser em lasers com proteínas ou mesmo células vivas, depois de amanhã em pontos quânticos, e quem sabe o que será na próxima semana.
A pesquisa reproduzível deve esclarecer seus conceitos e idéias e não promover as ferramentas atualmente disponíveis, como hardware ou software, como pré-requisito para reproduzir os resultados da pesquisa. Os algoritmos utilizados devem ser detalhados de uma forma universal clara; A versão atual de um hardware, compilador ou pacote de software específico pode ser usada apenas como uma ferramenta para demonstrar os resultados da pesquisa.
fonte
A publicação do código Fortran gerado parece uma solução muito boa no seu caso.
Como regra geral, acho que o uso de software não publicado é incompatível com os objetivos da pesquisa reproduzível. Essa é uma das razões pelas quais vejo a pesquisa reproduzível como uma meta de longo prazo, e não como algo que se poderia exigir para ser aplicado imediatamente.
fonte
Eu trabalho para a Elsevier. Minha empresa começou a usar a estrutura Collage (desenvolvida em resposta ao Executable Paper Grand Challenge) em edições de periódicos para permitir que os autores publiquem pedaços de código executável em seus artigos. Esse recurso facilita a reprodução dos resultados relatados no artigo e a reutilização do material publicado para sua própria pesquisa. O Collage suporta uma ampla variedade de software proprietário, além de software de código aberto; mais informações podem ser encontradas no vídeo informativo aqui e no site do ambiente de criação de colagens .
fonte