// genesis
//Overall simulation parameters
float tmax = 10
float dt = 5.0e-5 // sec
floatformat %g
float refresh_factor = 10.0
// Seeding the random number generator used later in the input pattern.
// Seeding with a defined number (integer) allows one to reproduce
// 'random' patterns from one simulation to the next. Seeding
// without a defined seed gives different results each time you run
// the simulation.
randseed 34521
// setting the simulation clocks
setclock 0 {dt} // sec
setclock 1 {dt * refresh_factor} // sec
setclock 2 1.0
// Distributed Processing Setup
int display = 1 // display neurons and graphs
int output = 1 // don't dump neural output to a file
// Thalamocortical and Gaps flags
int thalamocortical
int gaps
gaps = 1 // Gap junction flag
thalamocortical = 1 // TC flag
int batch = (display == 0) // we are running interactively
echo Genesis started at {getdate}
echo "display = " {display}
echo "output = " {output}
echo "batch = " {batch}
echo ""
// variables
int i_am_Q1, i_am_Q2, i_am_Q3, i_am_Q4 // booleans indicating what cells are assigned
int i_am_Q5, i_am_Q6, i_am_Q7, i_am_Q8 // to this node
int i_am_Q9, i_am_Q10,i_am_Q11, i_am_Q12
int i_am_Q13, i_am_Q14, i_am_Q15, i_am_Q16
int Nnodes = 81
int sqrtNnodes = 9
// START UP
paron -parallel -nodes {Nnodes} -output /home/pol/NeoDiff/o.out \
-executable nxpgenesis
//setfield /post msg_hang_time 100000 // set a very long timeout in case
// we need to do debugging
// Label nodes (whereami)
i_am_Q1 = {mynode} == 0
i_am_Q2 = {mynode} == 1
i_am_Q3 = {mynode} == 2
i_am_Q4 = {mynode} == 3
i_am_Q5 = {mynode} == 4
i_am_Q6 = {mynode} == 5
i_am_Q7 = {mynode} == 6
i_am_Q8 = {mynode} == 7
i_am_Q9 = {mynode} == 8
i_am_Q10 = {mynode} == 9
i_am_Q11 = {mynode} == 10
i_am_Q12 = {mynode} == 11
i_am_Q13 = {mynode} == 12
i_am_Q14 = {mynode} == 13
i_am_Q15 = {mynode} == 14
i_am_Q16 = {mynode} == 15
echo I am node {mynode}
echo Completed startup at {getdate}
// Neocortex - Setup / Global Variables
int probedex
int probedex2
int gridsize
float sqrtgrdsz
float neuronfrac // Percentage of neurons receiving background
// Flags for minicolumnar architecture
int columntype // 0 = standard column, all cell types represented in each Minicolumn
// 1 = Traub like columns
columntype = 1
// Load Network cell spacings and cell numbers
include netparams.g
// Central Q1 P23RSa current injection
float Q1_P23RSa_centralinj = 0.0
gridsize = P23RSa_NX*P23RSa_NY
probedex = gridsize/2
probedex2 = probedex/2
//===============================
// Function Definitions
//===============================
function step_tmax
step {tmax} -time
end
//===============================
// Data Out
//===============================
function do_asc_file(diskpath, srcpath, field, fd)
create asc_file /{fd}
setfield /{fd} filename {diskpath} flush 1 leave_open 1 append 0 float_format %0.9g
addmsg {srcpath} /{fd} SAVE {field}
end
//===============================
// Spike Class Data Out ASCII
//===============================
function do_classasc_file(diskpath, srcpath, classdex, Nelements, field, fd)
int Nelements, classdex
int i
create asc_file /{fd}
setfield /{fd} filename {diskpath} flush 1 leave_open 1 append 0 float_format %0.9g
for (i=1;i<={Nelements};i=i+1)
addmsg {srcpath}[{i-1}]/soma/spk{classdex} /{fd} SAVE {field}
end
end
//================================
// Spike Class Data Out Binary
//================================
function do_classasc_filebin(diskpath, srcpath, classdex, Nelements, field, fd)
int Nelements, classdex
int i
create disk_out /{fd}
setfield /{fd} filename {diskpath} flush 1 leave_open 1 append 0
for (i=1;i<={Nelements};i=i+1)
addmsg {srcpath}[{i-1}]/soma/spk{classdex} /{fd} SAVE {field}
end
end
//===============================
// Set up Network
//===============================
//Table of synaptic conductances
include syncond.g
// Load cell definitions
include celldefs.g
// Define soma SPIKE outputs
include spikedefs
// CREATE NETWORK CONNECTIONS
// Network definitions
barrierall
P23RSa
P23RSb
P23RSc
P23RSd
B23FS
P5IBa
P5IBb
P5IBc
P5IBd
B5FS
P6RSa
P6RSb
if ({columntype == 0})
P6RSc
P6RSd
end
C23FS
C5FS
ST4RS
I23LTS
I5LTS
if ({thalamocortical == 1})
TCR
nRT
end
P23FRBa
P5RSa
barrierall
// Synaptic weight decay parameters and delays
barrierall
include synapticprobsTraub.g
barrierall
barrierall
include synapticdelays.g
barrierall
barrierall
include axonaldelays.g
barrierall
//Establish Wiring
include netdefs.g
barrierall
echo Made it past netdefs.g! {mynode}
// Create Gap Junctions
if ({gaps == 1})
barrierall
include Gapdefs.g
barrierall
end
// Create Random Background Inputs
include synchansSPIKEs.g
neuronfrac=0.005
include randominputdefs.g
// Output and diagnostics
// Local field potential calculation
include LFP16s.g
//Setup messages for Data File writing
if ( {output == 1} )
// LFP data write
include LFP8sASCIIwrite.g
// Spike Class Output Binary
include BinarySpikeClasswrite.g
end
check
reset // This initialises and gets everything ready to go.
barrier
step_tmax // Run the sim to time tmax
|