At the lecture, we discussed how a good directory structure can greatly help with reproducibility. At this exercise we'll create a template structure which you could easily use in your future projects.
As already mentioned, there isn't one structure that would fit all workloads, so it is important to choose one that fits you.
Please read the entire document before you start working on the tasks
To complete this exercise, you need to do the following
Every project should describe to users what the purpose of the project is. This is commonly done in a README file. As the starting point for a project the README file is formatted as plain text (or markdown) to make it easily readable. A README file should include the following information:
Think about the beginning of this lesson, when we had nothing but a file with a name. These are the things that would have made it easy to make sense of that data.
So, before we make any modifications to the raw data, we need a practice for how to record the initial state of the data, as well as our modifications.
Project name
Today's date
Maintainer's contact info
Data Origin
3-4 sentences about the goal of the project
README
in the project directory.This file serves as the starting point for future you, or anyone who receives this data.
README files in subdirectories are a good idea too. Often there are many files, and it's distracting to fill the top-level README with details about smaller pieces of the project.
READMEs are commentary on what we consider the "real work", and realistically can be an afterthought. We've all had projects under a deadline or someone asking for a result, and the documentation step is easy to defer until later.
Later never comes, or we forget the details by the time it does. So another good practice is to use good, descriptive names on files, directories, and in code. These are for our benefit, not the computer.
.
├── code
│ └── README.md
├── data
│ ├── clean
│ │ └── README.md
│ ├── raw
│ │ └── README.md
│ └── README.md
├── doc
│ ├── paper
│ │ └── README.md
│ └── README.md
├── README.md
├── results
│ ├── figures
│ │ └── README.md
│ ├── pictures
│ │ └── README.md
│ └── README.md
└── scratch
└── README.md
.
├── code
│ ├── notebooks
│ │ └── README.md
│ ├── README.md
│ └── scripts
│ └── README.md
├── data
│ ├── clean
│ │ └── README.md
│ ├── raw
│ │ └── README.md
│ └── README.md
├── output
│ ├── figures
│ │ └── README.md
│ ├── manuscript
│ │ └── README.md
│ ├── pictures
│ │ └── README.md
│ ├── README.md
│ └── tables
├── README.md
└── scratch
└── README.md