Overview

Sections

The amorphys metadata format consists of the following distinct sections:

  1. the “organization” section, describing project organization
  2. the “subjects” section, describing the subjects of interest used throughout an experiment.
  3. the “setups” section, describing spatial organization of each setup
  4. the “acquisition” section, describing programs and channels on each setup
  5. the “procedures” section, describing experimental procedures for each subject
  6. the “tasks” section, describing the task/protocol controls
  7. the “variables” section, describing the experimental conditions and variables

In principle, the six sections are independent from each other: you can only implement some of them while leaving the others unimplemented, if you are fine with this way.

“section” class

class section

Each section of amorphys has different properties of its own. But it can have an optional property, $description to describe itself.

$description

a human-readable string description of the section. It is recommended to include this property for every section, for increased understandability.

Formatting options

As described below, there are two ways to organize these sections (i.e. Single-file format and Multi-file format formats), and it is completely up to the user which way to choose.

Single-file format

A most simple way of formatting in amorphys is to make a large, single JSON file:

{
    "$schema": "https://.../amorphys.json",

    "organization" {
        ...
    },

    "setups": {
        ...
    },

    "acquisition": {
        ...
    },

    ...
}

In the example above (the content of each section is omitted for simplicity), each of the implemented sections is represented as a value to the corresponding key.

While it may be simple in reading and parsing, it may be difficult to be read by the human beings.

Multi-file format

Another way of formatting in amorphys involves splitting sections into multiple JSON files:

in: “organization.json”
{
    "$schema": "https://.../amorphys.json#properties/organization",

    "dataset": {
        ...
    },

    "people": {
        ...
    },

    ...
}
in: “setups.json”
{
    "$schema": "https://.../amorphys.json#properties/setups",

    "behavioral-rig": {
        ...
    },

    ...
}

In the example above (again, the details are omitted for brevity), each of the implemented sections are represented as a file with the corresponding name.

This may have some difficulty in referring to an entity across multiple sections, but individual JSON files become much smaller, and may be easier to read by a human being.