This repository is public so that Binder can find it. All code and data is based on the original LIGO Center for Open Science Tutorial Repository. This repository is a class exercise that restructures the original LIGO code for improved reproducibility, as a homework assignment for the Fall 2025 installment of UC Berkeley’s Stat 159/259 course, Reproducible and Collaborative Data Science. Authorship of the original analysis code rests with the LIGO collaboration.
How to use this repository¶
The notebook¶
This repository can be launched in JupyterHub using the Binder badge above. You will automatically be directed to the main notebook, which can be run all the way through to produce a series of visualizations related to the discovery of gravitational waves. However, to demonstrate various aspects of reproducibility, there are a few more features to this repository:
ligotools¶
Many of the functions originally written by the Ligo Scientific Collaboration (LSC) have been turned into a package, named ligotools. This package will be automatically installed the first time that the main notebook is run.
For each of the package modules, there are unit tests. They can be run from a terminal with the command pytest ligotools. pytest has been added to the environment.yml.
The Makefile¶
In the home directory of the JupyterHub, you can create a terminal and run commands using the Makefile.
Running
make envwill install aligoenvironment and build theIPython - LIGOkernel, which will come withligotoolsinstalled. You can swap to this kernel in the main notebook. Note: It can take a minute for JupyterHub to recognize the kernel.Running
make cleanwill delete all outputs from the main notebook.Running
make htmlwill create a local MyST webpage; however, this is not actually accessible on the JupyterHub. This command is for demonstration purposes only.mystmdhas been added to theenvironment.yml.
MyST¶
There is a website version of this repository available here: https://