//genesis //UpState.g //Figure out how these different random spikes were used. May be possible to create them one at a time, or only use one, and change its rate function UpState(AP_time,AP_durtime,inj,upstate_time, seedval, file) float AP_time,AP_durtime,inj,upstate_time int seedval str file int TDstart=1 int TDsegstart=1 randseed {seedval} int maxRanSpikes, i float third_time = {upstate_time}-{first_time}-{second_time} //**********set the filenames if ({inj}==0) str filenam={file}@"Up_"@{Rate1}@"_"@{Rate2}@"_"@{Rate3}@"_noAP" else str filenam={file}@"Up_"@{Rate1}@"_"@{Rate2}@"_"@{Rate3}@"_AP"@{AP_time} end echo "################ simulating Upstate, Rates" {Rate1} {Rate2} {Rate3} "AP: " {AP_time} "Inj: " {inj*1e-9} setfilename {Vmfile} {filenam} 1 {Vmhead} setfilename {Cafile} {filenam} 1 {Cahead} setfilename {Gkfile} {filenam} 1 {Gkhead} setfilename {spinefile} {filenam} 1 {spinehead} //**********create pulse generator for current injection float basal_current = 0 str injectName="/injectCurr" createPulseGen {inj} {basal_current} {AP_time+0.05} {AP_durtime} {neuronname}/soma {injectName} 0 "no message" //*********create randomspikes for synaptic input //0 goes to GABA, should be higher than GLU basal rate //1, and optionally 2 & 3 go to GLU. 2&3 are the higher initial rates for gradient makeALLspikes {GabaRate} 0 {neuronname} 1 1 makeALLspikes {Rate1} 1 {neuronname} {TDstart} {TDsegstart} if ({first_time} < {upstate_time}) makeALLspikes {Rate2} 2 {neuronname} {TDstart} {TDsegstart} makeALLspikes {Rate3} 3 {neuronname} {TDstart} {TDsegstart} maxRanSpikes=4 else maxRanSpikes=2 end //Now run the simulations step 0.05 -time ConnectALLInput 0 {neuronname} 1 1 ConnectALLInput 1 {neuronname} {TDstart} {TDsegstart} step {first_time} -time DisconnectALLinput 1 {neuronname} {TDstart} {TDsegstart} if ({first_time} < {upstate_time}) ConnectALLInput 2 {neuronname} {TDstart} {TDsegstart} step {second_time} -time DisconnectALLinput 2 {neuronname} {TDstart} {TDsegstart} ConnectALLInput 3 {neuronname} {TDstart} {TDsegstart} step {third_time} DisconnectALLinput 3 {neuronname} {TDstart} {TDsegstart} end DisconnectALLinput 0 {neuronname} 1 1 step 0.2 -t /* for (i=0; i<maxRanSpikes; i=i+1) deleteALLspikes {i} {neuronname} {TDstart} {TDsegstart} end */ fileFLUSH {Vmfile} fileFLUSH {Cafile} fileFLUSH {Gkfile} fileFLUSH {spinefile} setfield {injectName} level1 0 end