Starting Date: 1 June 2019
Duration: 10 Weeks
Time commitment: Full time
Prerequisites: experience with Python (useful) and Javascript programming (essential). It may be useful to be willing to learn about functional programming (but this is not essential).
Starting Date: June 2019
Duration: 10 weeks
Time commitment: Full time
Prerequisites: experience with Python (useful) and Javascript
programming (essential). It may be useful to be willing to learn about
functional programming (but this is not essential).
Jupyter notebooks [1] are examples of literate programming [2] where
code and outputs from the code as well as documentation are in the same
application. Jupyter allows the user to run code in the Python, R and
Julia environments.
There is a great deal of excitement in the Scientific community that
these notebooks are a fundamental step forward in improving
reproducibility of workflows. In addition to this Binder [3] provides
resources to run notebook on a cloud.
Finally it is possible to build extensions to Jupyter, written in
Javascript [4].
This project involves developing a number of different extensions for
these notebooks.
These individual projects include
– Developing a ‘reproducibility mode’ where cells once run cannot be
edited but can be copied and hence edited.
– Providing a mechanism to annotate a notebook within the actual
markdown (using Dublin Core Metadata standards and Schema.org).
– A ‘publication mode’ where a notebook can be pushed to a git
repository.
– A ‘citation mode’ where the relevant github repository for a
notebook can be uploaded to Zenodo.org which provides a Digital
Object Identifier (DOI) which can then be automatically called
from within the notebook.
[1] H. Shen, ‘Interactive notebooks: Sharing the code’, Nat. News,
vol. 515, no. 7525, p. 151, Nov. 2014.
[2] D. E. Knuth, ‘Literate Programming’, Comput. J., vol. 27, no. 2,
pp. 97–111, Jan. 1984.
[3] Binder. https://mybinder.org/.
[4] Extensions — JupyterLab 0.35.6 documentation.
https://jupyterlab.readthedocs.io/en/stable/user/extensions.html.
[5] WDL Index.
https://software.broadinstitute.org/wdl/documentation/.