Jupyter notebooks (available)

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/.