This template serves as a guide for maintaining a standardized folder structure within a project.
Push use as template
button at the top right of this page to create a new repository based on this template.
Name your repository with something short (maximum 4 words) and descriptive referring to the hypothesis of your experiment
Clone the repository and start developing there :)
The project is organized into thee main folders:
- data:
This folder is for structuring the data in a way that enables relative imports and exports within the codebase. - noteboos:
This folder is for all jupyter notebooks. - reports:
This folder is for any generated analysis as HTML, PDF, LaTeX, etc. and for storing exported figures. - src:
This folder contains all code, scripts, or notebooks related to the project.
Each folder contains a README file providing detailed explanations of their respective purposes.
├── logbook.csv
├── data
│ ├── analyzed
│ ├── external
│ ├── other
│ ├── processed
│ │ └── subject_1
│ │ └── session_1
│ └── raw
│ └── subject_1
│ └── session_1
├── notebooks
├── reports
│ ├── figures
├── external
└── src
├── analysis
├── external
├── data
├── experiment
└── processing
A logbook.csv file is present in the root path which should be used from all researchers in every session<βρ> The logbook has 5 mandatory columns. More can be added depending on the needs.
-
timestamp:
UTC Day and time of the start of the session in the following format "YYYY-mm-DD HH:MM:ss +-TTTT".
+-TTTT is the timezone difference from UTC time.
e.g "2024-05-20 14:50:32 +0200" -
subject_id:
The subject id of the session.
e.g "eg-3429" -
method:
The method used in the session.
e.g. surgery, imaging, intrinsic etc. -
notes:
All notes regarding the session.
Best would be to use JSON formatting.
For example, you can use the following as a starting template, but no strict rules are applied here.{ "subject": { "weight": 34.5, "dob": "2024-05-01" }, "drugs": { "dosage": "1mg" }, "watering": { "restriction": "1w" }, "other_notes": ["highly stressed during surgery", "needed extra ketamine"] }
The template is language-agnostic but includes specific exceptions for Python and MATLAB in .gitignore file.
It's crucial to update this file as necessary to exclude unnecessary files from being synced to GitHub.
For instance, common data files are excluded by default.
If there's a need to sync PNG format figures with GitHub, remove the *.png
exclusion from .gitignore.
However, exercise caution to ensure that only required files are synced and unnecessary ones are omitted.
You can put all required packages into requirement.txt file and install them using pip, conda or similar.
pip install -r requirements.txt
Either open an issue or create a pull request with the change describing the current limitations and the solution.
This template has been highly influenced from coockiecutter data science template.