Cookiecutter template for research projects in Python on the Popper workflow execution engine.
The goal is to provide a structure for developing reproducible projects in computational research (machine learning, statistics, bioinformatics, ...) following best practices in a container-native environment.
Resource:
- A guide for developing Python workflows for computational research with Popper is available in the Popper documentation.
- An example project following this structure is available at popper-examples.
- Python >= 3.5
- Cookiecutter >= 1.1
Additionally, to run the generated project:
- Popper
- Docker
Run
cookiecutter gh:getpopper/cookiecutter-popper-python
Cookiecutter options:
containers
:one
orseveral
. Pickone
if the workflow only needs one container for a Python environment.
├── LICENSE
├── README.md <- The top-level README.
├── data <- Data used in workflow.
├── paper <- Generated paper as PDF, LaTeX.
├── wf.yml <- Workflow starter
├── containers <- Definitions of containers used in workflow
| └── exploration <- Container used for exploratory work.
| ├── exploration.dockerfile <- Default dockerfile used in workflow.
| └── exploration_env.yml <- Defines conda environment used by container.
├── results
| ├── models <- Model predictions, serialized models, etc.
| └── figures <- Graphics created during workflow.
└── src <- Source code for this project.
├── notebooks <- Jupyter notebooks.
├── data <- Scripts to download or generate data.
├── models <- Scripts used to generate models.
└── figures <- Scripts to generate graphics.
This project takes inspiration from Driven Data's cookiecutter-data-science, adapting their approach for use with Popper.