No Arabic abstract
Reproducibility of computational studies is a hallmark of scientific methodology. It enables researchers to build with confidence on the methods and findings of others, reuse and extend computational pipelines, and thereby drive scientific progress. Since many experimental studies rely on computational analyses, biologists need guidance on how to set up and document reproducible data analyses or simulations. In this paper, we address several questions about reproducibility. For example, what are the technical and non-technical barriers to reproducible computational studies? What opportunities and challenges do computational notebooks offer to overcome some of these barriers? What tools are available and how can they be used effectively? We have developed a set of rules to serve as a guide to scientists with a specific focus on computational notebook systems, such as Jupyter Notebooks, which have become a tool of choice for many applications. Notebooks combine detailed workflows with narrative text and visualization of results. Combined with software repositories and open source licensing, notebooks are powerful tools for transparent, collaborative, reproducible, and reusable data analyses.
This paper introduces reproducible research, and explains its importance, benefits and challenges. Some important tools for conducting reproducible research in Transportation Research are also introduced. Moreover, the source code for generating this paper has been designed in a way so that it can be used as a template for researchers to write their future journal papers as dynamic and reproducible documents.
Literate computing has emerged as an important tool for computational studies and open science, with growing folklore of best practices. In this work, we report two case studies - one in computational magnetism and another in computational mathematics - where domain-specific software was exposed to the Jupyter environment. This enables high-level control of simulations and computation, interactive exploration of computational results, batch processing on HPC resources, and reproducible workflow documentation in Jupyter notebooks. In the first study, Ubermag drives existing computational micromagnetics software through a domain-specific language embedded in Python. In the second study, a dedicated Jupyter kernel interfaces with the GAP system for computational discrete algebra and its dedicated programming language. In light of these case studies, we discuss the benefits of this approach, including progress toward more reproducible and reusable research results and outputs, notably through the use of infrastructure such as JupyterHub and Binder.
One need only compare the number of three-dimensional molecular illustrations in the first (1990) and third (2004) editions of Voet & Voets Biochemistry in order to appreciate this fields profound communicative value in modern biological sciences -- ranging from medicine, physiology, and cell biology, to pharmaceutical chemistry and drug design, to structural and computational biology. The cliche about a picture being worth a thousand words is quite poignant here: The information content of an effectively-constructed piece of molecular graphics can be immense. Because biological function arises from structure, it is difficult to overemphasize the utility of visualization and graphics in molding our current understanding of the molecular nature of biological systems. Nevertheless, creating effective molecular graphics is not easy -- neither conceptually, nor in terms of effort required. The present collection of Rules is meant as a guide for those embarking upon their first molecular illustrations.
This is an article submitted to the Ten Simple Rules series of professional development articles published by PLOS Computational Biology.
The Notebook validation tool nbval allows to load and execute Python code from a Jupyter notebook file. While computing outputs from the cells in the notebook, these outputs are compared with the outputs saved in the notebook file, treating each cell as a test. Deviations are reported as test failures, with various configuration options available to control the behaviour. Application use cases include the validation of notebook-based documentation, tutorials and textbooks, as well as the use of notebooks as additional unit, integration and system tests for the libraries that are used in the notebook. Nbval is implemented as a plugin for the pytest testing software.