Skip to content

priya-gitTest/ReproducibleJNotebookTemplate_v1.01

Repository files navigation

image

Reproducible Jupyter Notebook Template

What :

  • This project is a template to create reproducible notebooks and publications for your research projects mostly related to data analysis or ML.
  • It makes use of modern tools and possible best practices known at this time. E.g. GitHub codespaces for replication and reproducibility. GitHub Codespaces is a cloud based development enviroment with builin VS Code Support.
  • Acessible from wherever GitHib Website with Internet is accessible to you.
  • Hassle free way to develop your simple codes .
  • Learn to make a dynamic publication using MyST
  • Learn to make a release
  • Learn to archive your software/code on Zenodo / Software Heritage.

Why : You can use this setup for building your proof of concept very fast and efficiently.

Pre-requiste : Knowledge of GIT and Basic Python programming is essential to take this course.

It makes use of following python libraries :

  1. UV : Package Manager (UV is a lightning-fast package manager written in Rust. It offers significant performance improvements over traditional tools like pip and pipenv)
  2. Ruff : Python Linter (Ruff is a powerful linter that identifies and corrects common Python code style and quality issues. It's designed to be highly efficient and customizable.)
  3. Groq AI API : A sample notebook demonstrating the usage of Groq AI. a prior account is needed before running this notebook to provide the API key.
  4. MyST Markdown for publication.
  5. Empty files for CITATION and codemeta.json, to be filled in by the user as part of the exercise.

Getting Started

  1. Create a groq account and keep the API keys handy for the exercies. Refer to for more details : https://console.groq.com/keys

  2. Make a copy of this repository by forking it.

  3. In the forked repository, run the codespace

    image

  4. Please refer to Setup.md for more details on follow-up instructions.

References and Further Reading:

  1. https://github.com/github/codespaces-jupyter/tree/main
  2. Research folder structure standard
  3. https://github.com/pyOpenSci/pyos-package-template/tree/main Citation : https://zenodo.org/records/14052274
  4. https://curvenote.com/blog/-markdown-pyopensci-2024
  5. https://github.com/astral-sh/uv?tab=readme-ov-file#script-support
  6. https://docs.astral.sh/ruff/linter/#fixes
  7. https://docs.astral.sh/ruff/installation/
  8. https://github.com/UtrechtUniversity/generative-ai/tree/main?tab=readme-ov-file, https://github.com/UtrechtUniversity/generative-ai/blob/main/kickstarter/notebooks/claude_opus.ipynb
  9. https://myst-parser.readthedocs.io/en/latest/ Citation : https://zenodo.org/records/14805658
  10. https://academic.oup.com/gigascience/article/doi/10.1093/gigascience/giad113/7516267
  11. https://blog.reviewnb.com/jupyter-notebook-reproducibility-managing-dependencies-data-secrets/
  12. Ten Simple Rules for Reproducible Research in Jupyter Notebooks

Further Explore :

  1. Similar project with a Python package : https://github.com/manzt/juv
  2. A Jupyter AI Package to interact with multiple AI Api's : https://github.com/jupyterlab/jupyter-ai
  3. JupyterLab Magic Wand to in cell AI assistence : https://github.com/Zsailer/jupyterlab-magic-wand
  4. Reproducible Notebooks with Pixi : https://prefix.dev/blog/pixi_jupyter_notebooks
  5. Teaching Python with GitHub Codespaces

Glossary :

  1. API (Aplication Programming Interface) : APIs are mechanisms that enable two software components to communicate with each other using a set of definitions and protocols ref : https://aws.amazon.com/what-is/api/
  2. ML : Machine Learning
  3. AI : Artifical Intelligence

Acknowledgement

I thank the PyOpenSci Fall Festival 2024 (Leah W and Team) and MyST(Rowan and Team) and Modhurita (UU) for providing me lots of useful tips and inspiration to create this.

Thanks Joyce, Heidi & DRA Team.

About

ReproducibleJNotebookTemplate

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published