Skip to content

This template serves as a guide for maintaining a standardized folder structure within an experiment.

License

Notifications You must be signed in to change notification settings

poulet-lab/experiment-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Template

Description

This template serves as a guide for maintaining a standardized folder structure within a project.

Usage

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 :)

Folder Structure

The project is organized into thee main folders:

  1. data:
    This folder is for structuring the data in a way that enables relative imports and exports within the codebase.
  2. noteboos:
    This folder is for all jupyter notebooks.
  3. reports:
    This folder is for any generated analysis as HTML, PDF, LaTeX, etc. and for storing exported figures.
  4. 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

Logbook

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.

Column description

  1. 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"

  2. subject_id:
    The subject id of the session.
    e.g "eg-3429"

  3. method:
    The method used in the session.
    e.g. surgery, imaging, intrinsic etc.

  4. 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"]
    }

Gitignore

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.

Requirements

You can put all required packages into requirement.txt file and install them using pip, conda or similar.

pip install -r requirements.txt

Suggest changes

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.

About

This template serves as a guide for maintaining a standardized folder structure within an experiment.

Topics

Resources

License

Stars

Watchers

Forks