Configuration file

Configuration file defines the files describing the network, its input as well as run-time parameters. For convenience it is grouped into the following categories:

Manifest

Includes custom path variables that may be used to build full paths to files. The special variable “${configdir}” in the “$BASE_DIR” stands for the directory where configuration file is located. Users may specify any valid directory for “$BASE_DIR” as well.

"manifest": {
      "$BASE_DIR":    "${configdir}",
      "$OUTPUT_DIR":  "$BASE_DIR/output",
      "$INPUT_DIR":   "$BASE_DIR/../../NWB_files",
      "$NETWORK_DIR": "$BASE_DIR/network",
      "$COMPONENT_DIR":"$BASE_DIR/../components"
},

Run

Includes run time parameters

"run": {
      "tstop":3000.0,                 # run time (ms)
      "dt": 0.1,                      # time step (ms)
      "dL": 20,                       # length of compartments (i.e., segments) (um)
      "overwrite_output_dir": true,   # if True: will overwrite the output directory; if False: will issue an error that directory exists
      "spike_threshold": -15,         # will record a spike when membrane voltage (mV) is exceeded
      "nsteps_block":5000,            # will write to disk data after this many steps
      "save_cell_vars": ["v", "cai"], # save somatic variables in the list
      "calc_ecp": true                # calculate ExtraCellular Potential (ECP): True or False
},

Conditions

Includes information about the initial conditions:

"conditions": {
      "celsius": 34.0,        # temperature (C)
      "v_init": -80           # initial membrane voltage (mV)
},

Node_id selections

Defines selections of cells. For example, this way can specify the cells (node_ids) for which variables will be saved

"node_id_selections": {
      "save_cell_vars": [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
},

Input

Defines spike_trains for the the external inputs

"input": [
      {
        "type": "external_spikes",
        "format": "nwb",
        "file": "$INPUT_DIR/lgn_spikes.nwb",
        "source_nodes": "LGN",
        "trial": "trial_0"
      },
      ...
      ]

Output

Defines file names for the output

"output": {
      "log_file":             "$OUTPUT_DIR/log.txt",          # log file
      "spikes_ascii_file":    "$OUTPUT_DIR/spikes.txt",       # file for spikes in ascii format
      "spikes_hdf5_file":     "$OUTPUT_DIR/spikes.h5",        # file for spikes in HDF5 format
      "cell_vars_dir":        "$OUTPUT_DIR/cellvars",         # folder to save variables from individual cells
      "ecp_file":             "$OUTPUT_DIR/ecp.h5",           # file to save extracellular potential
      "output_dir":           "$OUTPUT_DIR"                   # output directory
},

Components

The “components” grouping includes paths to directories containing building blocks of a network model

"components": {
      "morphologies_dir":             "$COMPONENT_DIR/biophysical/morphology",        # morphologies
      "synaptic_models_dir":          "$COMPONENT_DIR/synaptic_models",               # synaptic models
      "mechanisms_dir":               "$COMPONENT_DIR/mechanisms",                    # NEURON mechanisms
      "biophysical_neuron_models_dir":"$COMPONENT_DIR/biophysical/electrophysiology", # parameters of biophysical models
      "point_neuron_models_dir":      "$COMPONENT_DIR/intfire",                       # parameters of point neuron models
      "templates_dir":                "$COMPONENT_DIR/hoc_templates"                  # NEURON HOC templates
},

Recording Extracelullar Electrode

Includes parameters defining extracellular electrodes

"recXelectrode": {
      "positions": "$COMPONENT_DIR/recXelectrodes/linear_electrode.csv"
      },

Networks

Includes files defining nodes and edges:

"networks": {
      "nodes": [
        {
          "name": "V1",
          "nodes_file": "$NETWORK_DIR/v1_nodes.h5",
          "node_types_file": "$NETWORK_DIR/v1_node_types.csv"
        },
              ...
      ],

      "edges": [
        {
          "target": "V1",
          "source": "V1",
          "edges_file": "$NETWORK_DIR/v1_v1_edges.h5",
          "edge_types_file": "$NETWORK_DIR/v1_v1_edge_types.csv"
        },
      ...
      ]
}