//genesis // MSsimSyn.g /*************************** MS Model, Version 12 ***************/ //*********** includes - functions for constructing model and outputs, and doing simulations include SimParams.g //simulation control parameters, can be overridden in this file include MScell/globals.g include MScell/Ca_constants.g include MScell/SynParamsCtx.g include MScell/spineParams.g include MScell/MScellSynSpines // access make_MS_cell include InOut/add_output.g //functions for ascii file output include InOut/IF.g //function to create pulse generator for current injection, also IF & IV curves include InOut/HookUp.g //run STDP protocols - single PSP with current injection //include InOut/SpikeMakerFunctions.g //functions to create randomspikes and connect to synapes //include InOut/PreSynSync.g //functions for setting up synchronous pre-synaptic stimulation //include InOut/UpState.g //run upstate simulations - asynchronous synaptic stimulation //include InOut/UpStateSTDP.g //run upstate simulations //include InOut/PlasStim.g //run plasticity protocols - pattern of PSPS, no current injection /*//include InOut/ConstrainUp.g //include RebekahSims/Store_Parameters.g //include graphics7.g //set random seed so for each simulation the randomspike train will be the same //3 = 5757538 //5 = 9824501 //4 = 2394075 //6 = 492 //7 = 2370 //int seedvalue= 5757538 //**************** end of parameters, now contruct model and do simulations*/ setclock 0 {simdt} setclock 1 {outputclock} echo Paradigm list: Fino, Shen, P_and_K (Pawlak and Kerr), K_and_P (Kerr and Plenz), Shindou, 3_AP (just the soma injections from Shindou), 1_AP, 1_PSP str DA = {input "MSN type:" "UI"} str Protocol = {input "Protocol:" "P_and_K"} str Timing = {input "Timing:" "Pre"} str Location = {input "Location:" "tertdend1_1"} str jitter = {input "With jitter:" "No"} int seedvalue = {input "Random seed:" 5757538} echo "DA" {DA} echo "Protocol" {Protocol} echo "Timing" {Timing} echo "Jitter" {jitter} if ({Protocol}=="P_and_K") str pname = "PandK" elif ({Protocol}=="P_and_K_1_AP") str pname = "PandK1AP" elif ({Protocol}=="K_and_P") str pname = "KandP" else str pname = {Protocol} end int jitter_int = 0 if (({jitter}!="No") && ({jitter}!="no")) jitter_int = 1 end str diskpath="SimData/"@{pname}@"_"@{DA}@"_"@{Timing}@"_randseed_"@{seedvalue}@"_high_res" if ({GABAtonic}) diskpath = {diskpath}@"_tonic_gaba" end if ({calciumtype}) diskpath = {diskpath}@"_simple_calcium" end //include PSim_Params.g int totspine={make_MS_cell_SynSpine {neuronname} {pfile} {spinesYesNo} {DA}} // MS_cell.g reset /*uncomment the following lines (and one line in MScell.g) to use the hsolver setfield {neuronname} chanmode 1 call {neuronname} SETUP setmethod 11 */ //Store_Parameters echo {Vmfile} //Set up asc_file outputs and get headers for the files if ( {calciumdye} == 0) Vmfile = {Vmfile} elif ( {calciumdye} == 1) Vmfile = {Vmfile}@"_Ca_Fura_2" elif ( {calciumdye} == 2) Vmfile = {Vmfile}@"_Ca_Fluo_5f" elif ( {calciumdye} == 3) Vmfile = {Vmfile}@"_Ca_Fluo_4" else Vmfile = {Vmfile}@"_Ca_unnkown_dye" end Vmhead={add_outputVm {comps} {Vmfile} {neuronname}} if ({CaOut}) if ( {calciumdye} == 0) Cafile = "Ca" elif ( {calciumdye} == 1) Cafile = "Ca_Fura_2" elif ( {calciumdye} == 2) Cafile = "Ca_Fluo_5f" elif ( {calciumdye} == 3) Cafile = "Ca_Fluo_4" else Cafile = "Ca_unnkown_dye" end if ({plastYesNo}) Cafile = {Cafile}@"_plasticity" end Cahead={add_outputCal {comps} {CaBufs} {Cafile} {neuronname}} else Cafile="Unknown_Ca" if ({plastYesNo}) Cafile = {Cafile}@"_plasticity" end Cahead="" end if ({GkOut}) Gkfile="Gk" if ({plastYesNo}) Gkfile = {Gkfile}@"_plasticity" end if ( {calciumdye}== 0) Gkfile = {Gkfile} elif ( {calciumdye}== 1) Gkfile = {Gkfile}@"_Ca_Fura_2" elif ( {calciumdye}== 2) Gkfile = {Gkfile}@"_Ca_Fluo_5f" elif ( {calciumdye}== 3) Gkfile = {Gkfile}@"_Ca_Fluo_4" else Gkfile = {Gkfile}@"_Ca_unnkown_dye" end Gkhead={add_outputGk {comps} {chans} {Gkfile} {neuronname}} else Gkfile="Unknown_Gk" if ({plastYesNo}) Gkfile = {Gkfile}@"_plasticity" end if ( {calciumdye}== 0) Gkfile = {Gkfile} elif ( {calciumdye}== 1) Gkfile = {Gkfile}@ "_Ca_Fura_2" elif ( {calciumdye}== 2) Gkfile = {Gkfile}@"_Ca_Fluo_5f" elif ( {calciumdye}== 3) Gkfile = {Gkfile}@"_Ca_Fluo_4" else Gkfile = {Gkfile}@"_Ca_unnkown_dye" end Gkhead="" end str stimcomp= {Location} str spinefile="spine" if ({plastYesNo}) spinefile = {spinefile}@"_plasticity" end if ( {calciumdye} == 0) spinefile = {spinefile} elif ( {calciumdye} == 1) spinefile = {spinefile}@"_Ca_Fura_2" elif ( {calciumdye} == 2) spinefile = {spinefile}@"_Ca_Fluo_5f" elif ( {calciumdye} == 3) spinefile = {spinefile}@"_Ca_Fluo_4" else spinefile = {spinefile}@"_Ca_unnkown_dye" end ce / /***************************** Simulations of STDP */ if ({Protocol}=="Shen") include InOut/Shen.g if ({DA} == "D1") inject = 1.45e-9 elif ({DA} == "D2") inject = 1.3e-9 end elif ({Protocol}=="P_and_K") include InOut/P_K.g elif ({Protocol}=="P_and_K_1_AP") include InOut/P_K_1_AP.g elif ({Protocol}=="Fino") include InOut/Fino.g elif ({Protocol}=="Shindou") include InOut/Shindou.g elif ({Protocol}=="K_and_P") include InOut/Kerr_and_Plenz.g elif ({Protocol}=="3_AP") include InOut/3_AP.g elif ({Protocol}=="1_AP") include InOut/1_AP.g elif ({Protocol}=="1_PSP") include InOut/1_PSP.g elif ({Protocol}=="no_stim") include InOut/no_stim.g elif ({Protocol}=="IF") //setclock 1 {outputclock} setclock 0 {simdt} setclock 1 {simdt} numcurr = 5 injectstart = .1e-9 IFcurve {injectstart} {inc} {numcurr} {delay} {duration} {diskpath} end // if ({Protocol}!="IF") // float newTrainFreq = {burstFreq}/{numbursts} // echo {newTrainFreq} // echo {prestim} {Protocol} {Timing} {stimcomp} {diskpath} {numAP} {inject} {AP_durtime} {APinterval} {ISI} {pulseFreq} {pulses} {burstFreq} {numbursts} {newTrainFreq} 1 {jitter_int} // HookUp {prestim} {Protocol} {Timing} {stimcomp} {diskpath} {numAP} {inject} {AP_durtime} {APinterval} {ISI} {pulseFreq} {pulses} {burstFreq} {numbursts} {newTrainFreq} 1 {jitter_int} // step 2.6 -time // fileFLUSH {Vmfile} // fileFLUSH {Cafile} // fileFLUSH {Gkfile} // fileFLUSH {spinefile} // fileFLUSH {somainjfile} // end reset if ({numtrains}>1) reset //uncomment the following lines (and one line in MScell.g) to use the hsolver //setfield {neuronname} chanmode 1 //call {neuronname} SETUP //setmethod 11 ce / setclock 0 {simdt} setclock 1 {outputclock} str diskpath="SimData/"@{pname}@"_"@{DA}@"_"@{Timing}@"_randseed_"@{seedvalue}@"_low_res" if ({Protocol}!="IF") HookUp {prestim} {Protocol} {Timing} {stimcomp} {diskpath} {numAP} {inject} {AP_durtime} {APinterval} {ISI} {pulseFreq} {pulses} {burstFreq} {numbursts} {trainFreq} {numtrains} {jitter_int} step {numtrains/trainFreq} -time fileFLUSH {Vmfile} fileFLUSH {Cafile} fileFLUSH {Gkfile} fileFLUSH {spinefile} fileFLUSH {somainjfile} end end