# Data structure

A single sample directory contains one sample (one imaging session). Within this you will find the following files:

This directory contains:

* *recipe\_XXX.yml* -- This text file is [YAML formatted](https://en.wikipedia.org/wiki/YAML) and contains the parameters the user entered to set up the acquisition. It also contains extra information generated by BakingTray, such as the scanning parameters. This file is required for the individual images to be assembled (stitched) into full planes.
* *acqLog\_XXX.txt* -- Logs major acquisition events, the laser state, and the time take for each section. This file is mainly for record keeping and is not required to stitch the images. It may be used by BakingTray for certain operations, such as resumption of a finished acquisition.
* The *rawData* directory is created when acquisition starts. Within it are a series of section directories. Each section directory contains data from one physical section. e.g. if the sample name is `AMo_20` you will see:

  ```
  $ ls -l rawData
  ls -l rawData/
  total 0
  drwxrwx--- 1 user users 5526 Aug 11 10:29 AMo_20-0001
  drwxrwx--- 1 user users 5526 Aug 11 10:31 AMo_20-0002
  drwxrwx--- 1 user users 5526 Aug 11 10:32 AMo_20-0003
  ...
  ```
* Within each *section directory* you will find the image files. If you are using ScanImage for the acquisition and doing tile-scanning (grid of images) then each TIFF will contain all depths from all channels for each x/y position. So if you have a 3 x 3 tile grid, there will be 9 TIFFs per section directory. Once all tiles have been acquired, an empty file called `COMPLETED` is added. There is also a file called `tilePositions.mat`, which contains the position of each tile in the grid (including the stage coordinates reported by the stage). This file is created by the callback function `SIBT.tileAcqDone` which in a tile scan runs at the conclusion of each X/Y position.

## Developer information

* The recipe file is generated by `recipe.writeFullRecipeForAcquisition` (the API command is `hBT.recipe.writeFullRecipeForAcquisition`).
* The \_acqLog\_XXX.txt file is created during acquisition by `BT.bake`.


---

# 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://bakingtray.mouse.vision/users/data-structure.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.
