Configuration file#

The 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 the 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 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 Extracellular 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"
    },
  ...
  ]
}