๐งช A simple, elegant template for repositories with Jupyter notebooks supporting publications.
Science notebook template
๐งช A simple, elegant template for repositories supporting publications. Scientific companion to the much more sophisticated code template Tyrannosaurus ๐ฆ No cookiecutter. Just click Use this Template above.
๐ Citing
Just tell people how to cite your work.
Please reference the manuscript with this BibTeX:
@misc{sciencenotebooktemplate,
doi = {10.5281/zenodo.4495745},
url = {https://zenodo.org/record/4485186},
author = {Myers-Turnbull, Douglas},
title = {dmyersturnbull/science-notebook-template: v0.1.0},
publisher = {Zenodo},
year = {2021},
copyright = {Open Access}
}
Or APA format:
Myers-Turnbull, D. (2021). dmyersturnbull/science-notebook-template (v0.1.0) [Computer software].
Zenodo. https://doi.org/10.5281/zenodo.4495745
๐ About this repository
Whatโs in this repo?
- Automatic linting of Python, Markdown, config files, etc. using
- IDE hints via EditorConfig with good defaults for most languages
- Recommended readme organization, CITATION.cff, etc.
- Nice gitignore, dockerignore, pull request and issue templates, etc.
๐ Steps to reproduce
How to download needed data, run the code, etc.
- Click Use this Template and create your repo.
- Clone your repo, and run
pip install pre-commitandpre-commit install. - Add your scripts or notebooks, write your readme, and modify anything as you see fit.
git commit, pre-commit will error if it made changes.
Thatโs normal. Just re-run to finish the commit.
- In your repo settings, disable Discussions and Wiki.
- Enable Vulnerability reporting under Code security.
- Add a Branch protection rule for main.
Development workflow
Use pull requests (PRs) instead of committing directly into main. Give PRs useful titles and descriptions. Use GitHub Releases to mark stable versions, and include release notes that document the changes. Follow a consistent versioning scheme, such as semantic versioning.
๐ณ Layout
Describe the layout of this repo.
โโโ src/ โต project source code
โโโ data
โ โโโ temp-output/ โต files generated per-run
โ โ โโโ figures/ โต raw charts and graphs
โ โ โโโ ...files
โ โ โโโ csv/ โต raw tables
โ โ โโโ ...files
โ โโโ living/ โต files we are actively curating
โ โ โโโ figures/
โ โ โโโ tables/
โ โ โโโ manuscript/
โ โ โโโ ...files
โ โโโ frozen/ โต non-modifiable files
โ โโโ raw/ โต experimental or downloaded data
โ โโโ ref/ โต frozen analyses and outputs
โโโ README.md
Some of or all your data might live somewhere external (as documented below) rather than data/frozen/. See research projects guide for more info.
๐ External resources
Describe any external resources needed (e.g., API keys).
๐ Contributing
Tell people how to report problems and ask questions.
The source code in this repository is licensed under the terms of the Apache License 2.0. Contributions and questions are welcome via issues. For reference, refer to the contributing guide and security policy.
Note: The source code headers (i.e., SPDX) are to protect you, the user. I donโt expect you to retain them. Remove them or replace them with your own when you modify them.