# Overview of directory structure

```
- root
 - [Participant ID 1]
     - MasterSynced
     - OriginalRaw
     - Derived
         - [SetName]
     - Meta
         - location_mapping.csv
         - subject.csv
         - sessions.csv
 - [Participant ID 2]
     - MasterSynced
     - OriginalRaw
     - Derived
         - location_mapping.csv
         - subject.csv
         - sessions.csv
         - [SetName]
 - MetaCrossParticipants
     - location_mapping.csv
     - sessions.csv
     - subjects.csv
 - DerivedCrossParticipants
     - [SetName]
```

## Participant ID

1. Allowed characters: *alphabets* and *digits*.
2. Globally Unique.
3. Used as directory name.

### MasterSynced

1. Synchronized **sensor**, **feature**, **event**, **annotation** files, stored in mhealth storage format.
2. Files are divided **hourly**, in folder `MasterSynced/YYYY/MM/DD/HH/`

### OriginalRaw

1. Original files stored in manufacturer's format.
2. Arbitrary directory structure.
3. Recommended to divide sub directories by the type of sensor or data.

### Meta

1. Store meta files that are additional information to files in `MasterSynced`folder.
2. Meta files should be kept unchanged all the time.

### Derived

1. Store data files derived or merged from files in `MasterSynced` folder. Such as **feature** files, **class** files, **model** files, ema summary files.
2. `SetName` is used to specify any common properties of a set of derived files. Popular names could be `AllTime`,`LabSession`,`Weekend`, `FebruaryMorning` or the combination between them.

## MetaCrossParticipants

1. Store meta information that is aggregated from files in each participant's  `Meta` folders.
2. Meta information is the unchanged information for a dataset.

## DerivedCrossParticipants

1. Store data files derived and merged from files in each participant's `MasterSynced` or `Derived` folders.
2. `SetName` is used to specify the time or participant characte of a set of derived files. For example, `AllTimeMale`, `LabSessionAdults` and so on.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mhealth-specification.gitbook.io/mhealth-specification/directory-structure/overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
