//////////////////////////////////////////////////////////////////////////
//
// Johannes Hjorth, june 2005
// hjorth@nada.kth.se
// Sriraman Damodaran, september 2010
// FScell.g - Creates a fast spiking neuron in the library
//
//////////////////////////////////////////////////////////////////////////
//
// make_FS_cell -- Creates the library template for a FS-neuron
//
//////////////////////////////////////////////////////////////////////////
include FScell/proto.g
//************************ Begin function set_position *********************
//**************************************************************************
function set_position (cellpath)
//********************* Begin Local Variables ************************
str compt, cellpath
float dist2soma,x,y,z
//********************* End Local Variables *****************************
if (!{exists {cellpath}})
echo The current input {cellpath} does not exist (set_position)
return
end
foreach compt ({el {cellpath}/##[TYPE=compartment]})
x={getfield {compt} x}
y={getfield {compt} y}
z={getfield {compt} z}
dist2soma={sqrt {({pow {x} 2 }) + ({pow {y} 2}) + ({pow {z} 2})} }
setfield {compt} position {dist2soma}
end
end
//************************ End function set_position ***********************
//**************************************************************************
function make_FS_cell (cellpath,pfile)
str cellpath,pfile
make_prototypes // see proto.g
readcell {pfile} {cellpath}
set_position {cellpath} // local call
// Number of inputs to each compartmenttype
addfield {cellpath} somaDensityAMPA
addfield {cellpath} somaDensityNMDA
addfield {cellpath} somaDensityGABA
addfield {cellpath} primDensityAMPA
addfield {cellpath} primDensityNMDA
addfield {cellpath} primDensityGABA
addfield {cellpath} secDensityAMPA
addfield {cellpath} secDensityNMDA
addfield {cellpath} secDensityGABA
addfield {cellpath} tertDensityAMPA
addfield {cellpath} tertDensityNMDA
addfield {cellpath} tertDensityGABA
// Weights of each input
addfield {cellpath} somaWeightAMPA
addfield {cellpath} somaWeightNMDA
addfield {cellpath} somaWeightGABA
addfield {cellpath} primWeightAMPA
addfield {cellpath} primWeightNMDA
addfield {cellpath} primWeightGABA
addfield {cellpath} secWeightAMPA
addfield {cellpath} secWeightNMDA
addfield {cellpath} secWeightGABA
addfield {cellpath} tertWeightAMPA
addfield {cellpath} tertWeightNMDA
addfield {cellpath} tertWeightGABA
// Set default values for densities
setfield {cellpath} somaDensityAMPA 1
setfield {cellpath} somaDensityNMDA 1
setfield {cellpath} somaDensityGABA 3
setfield {cellpath} primDensityAMPA 1
setfield {cellpath} primDensityNMDA 1
setfield {cellpath} primDensityGABA 3
setfield {cellpath} secDensityAMPA 1
setfield {cellpath} secDensityNMDA 1
setfield {cellpath} secDensityGABA 3
setfield {cellpath} tertDensityAMPA 1
setfield {cellpath} tertDensityNMDA 1
setfield {cellpath} tertDensityGABA 0
// Set default values for synapse weights
setfield {cellpath} somaWeightAMPA 1.0
setfield {cellpath} somaWeightNMDA 1.0
setfield {cellpath} somaWeightGABA 1.0
setfield {cellpath} primWeightAMPA 1.0
setfield {cellpath} primWeightNMDA 1.0
setfield {cellpath} primWeightGABA 1.0
setfield {cellpath} secWeightAMPA 1.0
setfield {cellpath} secWeightNMDA 1.0
setfield {cellpath} secWeightGABA 1.0
setfield {cellpath} tertWeightAMPA 1.0
setfield {cellpath} tertWeightNMDA 1.0
setfield {cellpath} tertWeightGABA 1.0
end
//////////////////////////////////////////////////////////////////////////
|