README for Neocortex simulation. Based on Traub's thalamocortical model: Traub RD, Contreras D, Cunningham MO, Murray H, LeBeau FE, Roopun A, et al. Single-column thalamocortical network model exhibiting gamma oscillations, sleep spindles, and epileptogenic bursts. J Neurophysiol (2005) 93(4):2194-2232. doi:10.1152/jn.00983.2004 Modified from NeoDiffuse provided by Stan Anderson and Pawel Kudela. We removed the A modified version of this model was previously used in: Boothe DL, Yu AB, Kudela P, Anderson WS, Vettel JM and Franaszczuk PJ (2017) Impact of Neuronal Membrane Damage on the Local Field Potential in a Large-Scale Simulation of Cerebral Cortex. Front. Neurol. 8:236. doi:10.3389/fneur.2017.00236 ######################################## 2015-01-14 11:37 Alfred Yu There are 23 cell types, with some duplicate subtypes (labeled as a,b,c,d suffixes). Note that the duplicates are largely, but not always (see netdefs.g), functionally identical in the current instantiation. So their division into subtypes is to facilitate potential tweaking. P23RSa P23RSb P23RSc P23RSd B23FS P5IBa P5IBb P5IBc P5IBd B5FS P6RSa P6RSb P6RSc P6RSd C23FS C5FS ST4RS I23LTS I5LTS TCR nRT P23FRBa P5RSa ---------------- Here's a flow chart. Embedded blocks are called by their parents. run_Neocortex: wrapper to do some basic checks on paths, existence of data directory, MPI details. Calls pgenesis Neocortex.g netparams.g: defining Network cell spacings and numbers syncond.g: defining synaptic conductances celldefs.g: Load cell definitions schema to all listed cell types (except TCR/nRT which don't use cell3D): include config_neuron/protodefs/{}protodefs.g compartments.g config_neuron/chan/{}chan.g readcell {}cell3D.p /{} include config_neuron/synapsedefs/{}_synapsedefs.g P23RSa P23RSb P23RSc P23RSd B23FS P5IBa P5IBb P5IBc P5IBd B5FS P6RSa P6RSb IFDEF COLUMNTYPE==0 P6RSc P6RSd C23FS C5FS ST4RS I23LTS I5LTS IFDEF THALAMOCORTICAL==1 include config_neuron/protodefs/TCRprotodefs.g readcell TCRcell.p /TCR // Note: not cell3D include config_neuron/synapsedefs/TCR_synapsedefs.g include config_neuron/protodefs/nRTprotodefs.g readcell nRTcell.p /nRT // Note: not cell3D include config_neuron/synapsedefs/nRT_synapsedefs.g P23FRBa P5RSa spikedefs.g: defining SPIKE elements for all somae config_neuron/spatiallayout/{}: Define spatial layout for all cells //synapticprobsbase.g <- commented in favor of Traub version??? synapticprobsTraub.g: set Synaptic weight decay parameters and delays synapticdelays.g: Defines base synaptic delays and variability (stdev+maxdev) axonaldelays.g: Ditto netdefs.g: Establish wiring General schema: include config_neuron_x_neuron/{}_{allother}.g Special cases: IF COLUMNTYPE==0 include config_neuron_x_neuron/{}_P6RS[cd].g IF thalamocortical==1 (only for P6RS[ab]) include config_neuron_x_neuron/{}_TCR.g include config_neuron_x_neuron/{}_nRT.g IF thalamocortical==1 & COLUMNTYPE==0 (only for P6RS[cd]) include config_neuron_x_neuron/{}_TCR.g include config_neuron_x_neuron/{}_nRT.g IF thalamocortical==1 include config_neuron_x_neuron/TCR_{allother}.g include config_neuron_x_neuron/nRT_TCR.g include config_neuron_x_neuron/nRT_nRT.g IF GAP==1 Gapdefs.g: This is a rat's nest of switch statements to determine which synapses get gap junctions. It is in dire need of reorganizing IF we ever want to use gap junctions. Example: include config_neuron_x_neuron/P23RSa_P23RSa_Gap.g include config_neuron_x_neuron/P23RSa_P23RSb_Gap.g include config_neuron_x_neuron/P23RSa_P23RSc_Gap.g include config_neuron_x_neuron/P23RSa_P23RSd_Gap.g include config_neuron_x_neuron/P23RSb_P23RSb_Gap.g include config_neuron_x_neuron/P23RSb_P23RSc_Gap.g include config_neuron_x_neuron/P23RSb_P23RSd_Gap.g include config_neuron_x_neuron/P23RSc_P23RSc_Gap.g include config_neuron_x_neuron/P23RSc_P23RSd_Gap.g include config_neuron_x_neuron/P23RSd_P23RSd_Gap.g . . . //synchansSPIKEs.g //randominputdefs.g LFP5e.g: LFP Calculation from cellular network,taken at specified point. IF DISPLAY==1 (probedices.g|probedicesTraub.g) rasterdefspos1.g (probedices2.g|probedices2Traub.g) rasterdefspos2.g IF OUTPUT==1 LFP5eASCIIwrite.g --------------------------- I'm a little concerned about the conditionals-- even with display=0 the scripts will crash if they can't find probedices.g, etc. Not sure if the conditional statements are wrong, or if Genesis evaluates everything even if it's not run. ######################################## 2015-03-16 08:47 Alfred Yu Adjusted z placement to be deterministic even when model is spread over a different number of computing nodes (merged "improvedrandomheight" branch). Many other small fixes (see git log). We are starting to implement long range connections, so I'm cleaning house prior to merging a large amount of changes. The structure of these changes is yet to be determined because we're balancing ease of implementation vs. future flexibility. ######################################## 2016-03-21 11:08 Alfred Yu Implementing long range connections in excitatory cells. Pyramidal: fully connected to pyramidal and B, C, I cells in other columns ST4RS: only local connectivity. Rationale: Schubert, Kotter, Zilles, Luhmann, & Staiger (2003). TCR: I think the outputs are typically very focused onto a corresponding cortical column (think LGN) so not including any long-range connections other than the existing within column connections. ########################################