:orphan:

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


