Cargando…

Understanding and improving the quality and reproducibility of Jupyter notebooks

Jupyter Notebooks have been widely adopted by many different communities, both in science and industry. They support the creation of literate programming documents that combine code, text, and execution results with visualizations and other rich media. The self-documenting aspects and the ability to...

Descripción completa

Detalles Bibliográficos
Autores principales: Pimentel, João Felipe, Murta, Leonardo, Braganholo, Vanessa, Freire, Juliana
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Springer US 2021
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8106381/
https://www.ncbi.nlm.nih.gov/pubmed/33994841
http://dx.doi.org/10.1007/s10664-021-09961-9
_version_ 1783689766119669760
author Pimentel, João Felipe
Murta, Leonardo
Braganholo, Vanessa
Freire, Juliana
author_facet Pimentel, João Felipe
Murta, Leonardo
Braganholo, Vanessa
Freire, Juliana
author_sort Pimentel, João Felipe
collection PubMed
description Jupyter Notebooks have been widely adopted by many different communities, both in science and industry. They support the creation of literate programming documents that combine code, text, and execution results with visualizations and other rich media. The self-documenting aspects and the ability to reproduce results have been touted as significant benefits of notebooks. At the same time, there has been growing criticism that the way in which notebooks are being used leads to unexpected behavior, encourages poor coding practices, and makes it hard to reproduce its results. To better understand good and bad practices used in the development of real notebooks, in prior work we studied 1.4 million notebooks from GitHub. We presented a detailed analysis of their characteristics that impact reproducibility, proposed best practices that can improve the reproducibility, and discussed open challenges that require further research and development. In this paper, we extended the analysis in four different ways to validate the hypothesis uncovered in our original study. First, we separated a group of popular notebooks to check whether notebooks that get more attention have more quality and reproducibility capabilities. Second, we sampled notebooks from the full dataset for an in-depth qualitative analysis of what constitutes the dataset and which features they have. Third, we conducted a more detailed analysis by isolating library dependencies and testing different execution orders. We report how these factors impact the reproducibility rates. Finally, we mined association rules from the notebooks. We discuss patterns we discovered, which provide additional insights into notebook reproducibility. Based on our findings and best practices we proposed, we designed Julynter, a Jupyter Lab extension that identifies potential issues in notebooks and suggests modifications that improve their reproducibility. We evaluate Julynter with a remote user experiment with the goal of assessing Julynter recommendations and usability.
format Online
Article
Text
id pubmed-8106381
institution National Center for Biotechnology Information
language English
publishDate 2021
publisher Springer US
record_format MEDLINE/PubMed
spelling pubmed-81063812021-05-10 Understanding and improving the quality and reproducibility of Jupyter notebooks Pimentel, João Felipe Murta, Leonardo Braganholo, Vanessa Freire, Juliana Empir Softw Eng Article Jupyter Notebooks have been widely adopted by many different communities, both in science and industry. They support the creation of literate programming documents that combine code, text, and execution results with visualizations and other rich media. The self-documenting aspects and the ability to reproduce results have been touted as significant benefits of notebooks. At the same time, there has been growing criticism that the way in which notebooks are being used leads to unexpected behavior, encourages poor coding practices, and makes it hard to reproduce its results. To better understand good and bad practices used in the development of real notebooks, in prior work we studied 1.4 million notebooks from GitHub. We presented a detailed analysis of their characteristics that impact reproducibility, proposed best practices that can improve the reproducibility, and discussed open challenges that require further research and development. In this paper, we extended the analysis in four different ways to validate the hypothesis uncovered in our original study. First, we separated a group of popular notebooks to check whether notebooks that get more attention have more quality and reproducibility capabilities. Second, we sampled notebooks from the full dataset for an in-depth qualitative analysis of what constitutes the dataset and which features they have. Third, we conducted a more detailed analysis by isolating library dependencies and testing different execution orders. We report how these factors impact the reproducibility rates. Finally, we mined association rules from the notebooks. We discuss patterns we discovered, which provide additional insights into notebook reproducibility. Based on our findings and best practices we proposed, we designed Julynter, a Jupyter Lab extension that identifies potential issues in notebooks and suggests modifications that improve their reproducibility. We evaluate Julynter with a remote user experiment with the goal of assessing Julynter recommendations and usability. Springer US 2021-05-08 2021 /pmc/articles/PMC8106381/ /pubmed/33994841 http://dx.doi.org/10.1007/s10664-021-09961-9 Text en © The Author(s), under exclusive licence to Springer Science+Business Media, LLC, part of Springer Nature 2021 This article is made available via the PMC Open Access Subset for unrestricted research re-use and secondary analysis in any form or by any means with acknowledgement of the original source. These permissions are granted for the duration of the World Health Organization (WHO) declaration of COVID-19 as a global pandemic.
spellingShingle Article
Pimentel, João Felipe
Murta, Leonardo
Braganholo, Vanessa
Freire, Juliana
Understanding and improving the quality and reproducibility of Jupyter notebooks
title Understanding and improving the quality and reproducibility of Jupyter notebooks
title_full Understanding and improving the quality and reproducibility of Jupyter notebooks
title_fullStr Understanding and improving the quality and reproducibility of Jupyter notebooks
title_full_unstemmed Understanding and improving the quality and reproducibility of Jupyter notebooks
title_short Understanding and improving the quality and reproducibility of Jupyter notebooks
title_sort understanding and improving the quality and reproducibility of jupyter notebooks
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8106381/
https://www.ncbi.nlm.nih.gov/pubmed/33994841
http://dx.doi.org/10.1007/s10664-021-09961-9
work_keys_str_mv AT pimenteljoaofelipe understandingandimprovingthequalityandreproducibilityofjupyternotebooks
AT murtaleonardo understandingandimprovingthequalityandreproducibilityofjupyternotebooks
AT braganholovanessa understandingandimprovingthequalityandreproducibilityofjupyternotebooks
AT freirejuliana understandingandimprovingthequalityandreproducibilityofjupyternotebooks