Awesome Jupyter Notebooks

Related links:
🔗 note/Awesome Jupyter Notebooks
🔗 app/Jupyter Notebook Apps

Important contribution instructions: If you add new content, please ensure that for any notebook you link to, the link is to the rendered version using nbviewer, rather than the raw file. Simply paste the notebook URL in the nbviewer box and copy the resulting URL of the rendered version. This will make it much easier for visitors to be able to immediately access the new content.

Note that Matt Davis has conveniently written a set of bookmarklets and extensions to make it a one-click affair to load a Notebook URL into your browser of choice, directly opening into nbviewer.

Table of Contents

  1. Entire books or other large collections of notebooks on a topic

  2. Scientific computing and data analysis with the SciPy Stack

  3. General Python Programming
  4. Notebooks in languages other than Python

  5. Miscellaneous topics about doing various things with the Notebook itself
  6. Reproducible academic publications
  7. Other publications using the Notebook
  8. Data-driven journalism
  9. Whimsical notebooks
  10. Videos of IPython being used in the wild
  11. Accessing an IBM quantum computer via notebooks
  12. Software Architecture

Entire books or other large collections of notebooks on a topic

Introductory Tutorials

Programming and Computer Science

Statistics, Machine Learning, and Data Science

Mathematics, Physics, Chemistry, Biology

Earth Science and Geo-Spatial data

Linguistics and Text Mining

Engineering Education

Scientific computing and data analysis with the SciPy Stack

General topics in scientific computing

Social data

Psychology and Neuroscience

Machine Learning, Statistics and Probability

Physics, Chemistry and Biology

Economics and Finance

Earth science and geo-spatial data

Data visualization and plotting

Mathematics

Signal and Sound Processing

Natural Language Processing

Pandas for data analysis

Note that in the ‘collections' section above there are also pandas-related links, such as the one for an 11-lesson tutorial.

General Python Programming

Notebooks in languages other than Python

These are notebooks that use one of the IPython kernels for other languages:

Julia

The IPython protocols to communicate between kernels and clients are language agnostic, and other programming language communities have started to build support for this protocol in their language. The Julia team has created IJulia, and these are some Julia notebooks:

Haskell

There exists a Haskell kernel for IPython in the IHaskell project.

OCaml

iocaml is an OCaml kernel for IPython

Ruby

Similar to the Julia kernel there exists also a Ruby kernel for IPython.

The interactive plotting library Nyaplot has some case studies using IRuby:

Perl

F#

C#

  • Xamarin Workbooks Create a rich C# workbook for Android, iOS, Mac, WPF, or Console, and get instant live results as you learn these APIs.

Javascript

Miscellaneous topics about doing various things with the Notebook itself

Reproducible academic publications

This section contains academic papers that have been published in the peer-reviewed literature or pre-print sites such as the ArXiv that include one or more notebooks that enable (even if only partially) readers to reproduce the results of the publication. If you include a publication here, please link to the journal article as well as providing the nbviewer notebook link (and any other relevant resources associated with the paper).

  1. Revealing ferroelectric switching character using deep recurrent neural networks. Github page where code is located. Jupyter Paper. Raw Data
  2. Discovery of Gravitational Waves by the LIGO collaboration. That page, from the LIGO Open Science Center, contains multiple notebooks for various datasets corresponding to different events; this binder lets you run the code right away. More details on the GW150914 event as well as the original main Physical Review Letters paper, "Observation of Gravitational Waves from a Binary Black Hole Merger".
  3. Characterizing Strain Variation in Engineered E. coli Using a Multi-Omics-Based Workflow, by Brunk et al.
  4. Predicting Coronal Mass Ejections Using Machine Learning Methods by Monica Bobra and Stathis Ilonidis (Astrophysical Journal, 2016). An IPython notebook, which reproduces all the results, has been permanently deposited in the Stanford Digital Repository.
  5. The Paper of the Future by Alyssa Goodman et al. (Authorea Preprint, 2017). This article explains and shows with demonstrations how scholarly "papers" can morph into long-lasting rich records of scientific discourse, enriched with deep data and code linkages, interactive figures, audio, video, and commenting. It includes an interactive d3.js visualization and has an astronomical data figure with an IPYthon Notebook "behind" it.
  6. Reply to ‘Influence of cosmic ray variability on the monsoon rainfall and temperature': a false-positive in the field of solar-terrestrial research by Benjamin Laken, 2015. Reviewed article will appear in JASTP. The IPython notebook reproduces the full analysis and figures exactly as they appear in the article, and is available on Github: link via figshare.
  7. An open RNA-Seq data analysis pipeline tutorial with an example of reprocessing data from a recent Zika virus study, by Zichen Wang and Avi Ma'ayan. (F1000Research 2016, 5:1574). An IPython notebook was used to perform the proposed RNA-Seq pipeline using public gene expression data of human cells after Zika virus infection. The computational pipeline is also version controlled and Dockerized available here.
  8. The probability of improvement in Fisher's geometric model: a probabilistic approach, by Yoav Ram and Lilach Hadany. (Theoretical Population Biology, 2014). An IPython notebook, allowing figure reproduction, was deposited as a supplementry file.
  9. Stress-induced mutagenesis and complex adaptation, by Yoav Ram and Lilach Hadany (Proceedings B, 2014). An IPython notebook, allowing figures reproduction, was deposited as a supplementry file.
  10. Automatic segmentation of odor maps in the mouse olfactory bulb using regularized non-negative matrix factorization, by J. Soelter et al. (Neuroimage 2014, Open Access). The notebook allows to reproduce most figures from the paper and provides a deeper look at the data. The full code repository is also available.
  11. Multi-tiered genomic analysis of head and neck cancer ties TP53 mutation to 3p loss, by A. Gross et al. (Nature Genetics 2014). The full collection of notebooks to replicate the results.
  12. Dog and human inflammatory bowel disease rely on overlapping yet distinct dysbiosis networks, by Vázquez-Baeza et al. (Nature microbiology 2016). The full collection of notebooks to replicate the results.
  13. powerlaw: a Python package for analysis of heavy-tailed distributions, by J. Alstott et al.. Notebook of examples in manuscript, ArXiv link and project repository.
  14. Collaborative cloud-enabled tools allow rapid, reproducible biological insights, by B. Ragan-Kelley et al.. The main notebook, the full collection of related notebooks and the companion site with the Amazon AMI information for reproducing the full paper.
  15. A Reference-Free Algorithm for Computational Normalization of Shotgun Sequencing Data, by C.T. Brown et al.. Full notebook, ArXiv link and project repository.
  16. The kinematics of the Local Group in a cosmological context by J.E. Forero-Romero et al.. The Full notebook and also all the data in a github repo.
  17. Warming Ocean Threatens Sea Life, an article in Scientific American backed by a notebook for its main plot. By Roberto de Almeida from MarinExplore.
  18. Extrapolating Weak Selection in Evolutionary Games, by Wu, García, Hauert and Traulsen. PLOS Comp Bio paper and Figshare link.
  19. Using neural networks to estimate redshift distributions. An application to CFHTLenS
    by Christopher Bonnett paper(submitted to MNRAS)

  20. Mechanisms for stable, robust, and adaptive development of orientation maps in the primary visual cortex by Jean-Luc R. Stevens, Judith S. Law, Jan Antolik, and James A. Bednar. Journal of Neuroscience, 33:15747-15766, 2013. [Notebook1]
    (https://ioam.github.io/topographica/_static/gcal_notebook.html), Notebook2.

  21. Accelerated Randomized Benchmarking, by Christopher Granade, Christopher Ferrie and D. G. Cory. New Journal of Physics 17 013042 (2015), arXiv, GitHub repo.
  22. Dynamics and associations of microbial community types across the human body, by Tao Ding & Patrick D. Schloss. Notebook replicating results.
  23. Variations in submarine channel sinuosity as a function of latitude and slope, by Sylvester, Z., Pirmez, C., Cantelli, A., & Jobe, Z. R.
  24. Frontoparietal representations of task context support the flexible control of goal directed cognition, by M.L. Waskom, D. Kumaran, A.M. Gordon, J. Rissman, & A.D. Wagner. Github repository -Main notebook
  25. pyparty: Intuitive Particle Processing in Python, Adam Hughes Notebook to Generate the Published Figures Also, check out the pyparty tutorial notebooks.
  26. Indication of family-specific DNA methylation patterns in developing oysters, Claire E. Olson, Steven B. Roberts
    doi: https://dx.doi.org/10.1101/012831. Notebook to generate results in the paper.

  27. Parallel Prefix Polymorphism Permits Parallelization, Presentation & Proof, Jiahao Chen and Alan Edelman, HPTCDL'14. Website and notebook
  28. Transcriptome Sequencing Reveals Potential Mechanism of Cryptic 3' Splice Site Selection in SF3B1-mutated Cancers by Christopher DeBoever et al. There are several notebooks to replicate results and make figures.
  29. A Workflow for Characterizing Nanoparticle Monolayers for Biosensors: Machine Learning on Real and Artificial SEM Images, Adam Hughes, Zhaowen Liu, Maryam Raftari, Mark. E Reeves. Notebooks are linked in Table 1 in the text.
  30. AtomPy: An Open Atomic Data Curation Environment for Astrophysical Applications, by C. Mendoza, J. Boswell, D. Ajoku, M. Bautista.
  31. Visualizing 4-Dimensional Asteroids, in Scientific American (by Jake VanderPlas)
  32. Challenges and opportunities in understanding microbial communities with metagenome assembly, accompanied by IPython Notebook tutorial, by Adina Howe and Patrick Chain.
  33. Structure of a shear-line polar low (2016) by Sergeev, D. E., Renfrew, I. A., Spengler, T. and Dorling, S. R. Q.J.R. Meteorol. Soc. doi:10.1002/qj.2911. Accompanied by Notebooks to generate the published figures.
  34. Detecting High-Order Epistasis in Nonlinear Genotype-Phenotype Maps by Zachary R. Sailer and Michael J. Harms published in Genetics, March 2017 . All figures can be reproduced by the set of notebooks in this Github repo.
  35. Summary Analysis of the 2017 GitHub Open Source Survey by Stuart Geiger. Preprint in SocArXiv, June 2017. doi:10.17605/OSF.IO/ENRQ5. Paper is derived from a notebook converted to LaTeX with nbconvert. Notebook and materials at: OSF, GitHub, nbviewer
  36. The weirdest SDSS galaxies: results from an outlier detection algorithm, by D. Baron and D. Poznanski. Notebooks to replicate.
  37. Clustergrammer, a web-based heatmap visualization and analysis tool for high-dimensional biological data, by Nicolas Fernandez et al. Notebooks: Fig. 3, Fig. 4, Fig. 5
  38. Sociology: An investigation of Social Class Inequalities in General Cognitive Ability in Two British Birth Cohorts. Preprint in SocArXiv, December 2017. doi: 10.17605/OSF.IO/SZXDM. Notebook and materials at: OSF, GitHub, nbviewer.
  39. An on-chip architecture for self-homodyned nonclassical light, quant-ph ArXiV preprint, Nov 2016, by Fischer et al. A supporting notebook for all calculations included in the ArXiV submission.
  40. A nested sampling code for targeted searches for continuous gravitational waves from pulsars, gr-qc ArXiV preprint, May 2017, by Pitkin et al. Complete repo with supporting notebooks and sources on GitHub.
  41. HyperTools: A Python toolbox for visualizing and manipulating high-dimensional data, stat.OT ArXiV preprint by Heusser et al. A repo with companion notebooks is available, that links to the library itself, HyperTools.
  42. Nonsinusoidal beta oscillations reflect cortical pathophysiology in Parkinson's disease, in Journal of Neuroscience by Cole et al. A repo with companion notebooks with all necessary data is available to reproduce all figures.
  43. Cycle-by-cycle analysis of neural oscillations, in bioRxiv by Cole & Voytek. A repo with companion notebooks with all necessary data is available to reproduce all figures. This repo also links to the related useful library, neurodsp, which contains notebooks of tutorials.
  44. pyKNEEr: An image analysis workflow for open and reproducible research on femoral knee cartilage, a preprint by S. Bonaretti et al. Jupyter notebooks are used as a graphical user interface for medical image processing and analysis. The paper is interactive, with links to data, software, and documentation throughout the text. Every figure caption contains links to fully reproduce graphs.

Data-driven journalism

Whimsical notebooks

Videos of IPython being used in the wild

Of course the first thing you might try is searching for videos about IPython (1900 or so by last count on Youtube) but there are demonstrations of other applications using the power of IPython but are not mentioned is the descriptions. Below are a few such:

Accessing and programing a IBM quantum computer via notebooks

  • Github notebook example (scroll down) illustrating how to use Qiskit and access the IBMQ quantum computers.

Software Architecture