// GENESIS SETUP FILE silent int i str tstr, hstr, readcompartment //initialize parameters include ../common/genesis_funcs_nws.g include ../common/GP1_defaults_nws_syn.g //include ../common/simdefaults.g //include ../common/simdefaults_NaF_art.g include ../common/simdefaults_synBack.g /* COMMENT ALL intrinsic model params have now been initialized and set. They can be safely overwritten any time between now and the calling of the make_GP_library file. Once the library has been created, parameter values are set and cannot be changed except with explicit calls to setfield. */ int i str tstr, hstr, readcompartment //PARAMETERS: float stimType = //set from parameter file // 1, 2, 3, 4, or 5 for CIP, uniform EXC synaptic, uniform INH synaptic, weighted EXC synaptic, weighted INH synaptic float stimMag = //set from parameter file // in pA if CIP or pS if synaptic float stimInterval = //set from parameter file float stimDur = //set from parameter file // unneccessary if stimType is synaptic float stimComptsIdx = //set from parameter file // a number reflecting a list of compartments receiving the stimulus // (either soma, or a subset of dendritic compts) //float modelType = {getarg {arglist {parrow}} -arg 6} float modelType = 3 // 1 or 2 for nonspiking or spiking float currentComptsIdx = //set from parameter file // a number reflecting the grouping of compartment conductances to be saved // 1 for FULL, 2 for THIRDS, 3 for SUB, etc. float voltageComptsIdx = //set from parameter file // a number reflecting the group of compartment voltages to be saved float HVA_PRC_scalefac = //set from parameter file float SK_PRC_scalefac = //set from parameter file //float KV4F_PRC_scalefac = {getarg {arglist {parrow}} -arg 11} float KV4F_PRC_scalefac = 1 //float KV4S_PRC_scalefac = {getarg {arglist {parrow}} -arg 12} float KV4S_PRC_scalefac = 1 float store_mode = //set from parameter file store_mode = 2 STN_rate = //set from parameter file striatum_rate = //set from parameter file // 0 is asynchronous and 1 is synchronous //float synBack_synch = {getarg {arglist {parrow}} -arg 14} float synBack_synch = 0 float spikeIdx = //set from parameter file //spikeIdx = ({spikeIdx}+25) float syngain = //set from parameter file float NaF_base = //set from parameter file float NaP_base = //set from parameter file float KV2_base = //set from parameter file //float KV3_base = {KV2_base} float KV3_base = //set from parameter file //KV3_base = ({KV2_base}*10) float KV4_base = //set from parameter file // Start with 75 float HVA_base = //set from parameter file float SK_base = //set from parameter file float KCNQ_base = //set from parameter file float spiCurDist = //set from parameter file //float spiCurDist = 11.11111 spiCurDist = ({spiCurDist}/100) float dendSpiCurMult = //set from parameter file float NaPdendmult = //set from parameter file //float NaISMult = {getarg {arglist {parrow}} -arg 25} float NaISMult = 57 //float KdrISMult = {getarg {arglist {parrow}} -arg 26} float KdrISMult = 40 float SKsomaMult = //set from parameter file float SKdendMult = //set from parameter file //float NaF_dq10_m = {getarg {arglist {parrow}} -arg 22} float NaF_dq10_m = .25 float dq10_NaF_m = {NaF_dq10_m} //float NaF_dq10_h1 = {getarg {arglist {parrow}} -arg 23} float NaF_dq10_h1 = .6667 float dq10_NaF_h1 = {NaF_dq10_h1} //float NaF_dq10_h2 = {getarg {arglist {parrow}} -arg 24} float NaF_dq10_h2 = 1 float dq10_NaF_h2 = {NaF_dq10_h2} //float KV2_taunDiv = {getarg {arglist {parrow}} -arg 26} float KV2_taunDiv = 1 //float KV3_taunDiv = {getarg {arglist {parrow}} -arg 27} float KV3_taunDiv = 1 //float KV4_taunDiv = {getarg {arglist {parrow}} -arg 28} float KV4_taunDiv = 1 //float Eshift = {getarg {arglist {parrow}} -arg 28} //float Eshift = 0 float Eshift = {getarg {arglist {parrow}} -arg 28} echo echo Eshift is {Eshift} mV echo Eshift = {Eshift}/1000 //float constcurr_loc = {getarg {arglist {parrow}} -arg 28} float constcurr_loc = 1 //float NaPdendmult = {getarg {arglist {parrow}} -arg 27} E_AMPA = 0+{Eshift} E_NMDA = 0+{Eshift} E_GABA = -0.080+{Eshift} float GsynMult = 0 float Esyn = -0.06 float Rmembr = {RM_sd} float Gcomb = ({GsynMult}+1)*(1/{Rmembr}) float Ecomb = ({ELEAK_sd}+{GsynMult}*{Esyn})/({GsynMult}+1) RM_sd = 1/{Gcomb} //RM_ax = 1/{Gcomb} ELEAK_sd = {Ecomb} //ELEAK_ax = {Ecomb} echo echo spikeidx {spikeIdx} echo syngain {syngain} echo include ../common/calc_syn_integ.g float unitary_gSTN = {calc_syn_integ 250 .001 .003} echo unitary_gSTN is {unitary_gSTN} float unitary_gSTR = {calc_syn_integ 250 .0005 .00491} echo unitary_gSTR is {unitary_gSTR} //quit float snapgate = 0 if ({snapgate}==1) str out_dir = "/data/snapshots/simData_synGrid_alldata/" str spktime_dest_dir = "/data/snapshots/spiketimes_synGrid_alldata/" mkdir {spktime_dest_dir} mkdir {out_dir} else str out_dir = "/data/simData_synGrid_alldata/" str spktime_dest_dir = "/data/spiketimes_synGrid_alldata/" mkdir {spktime_dest_dir} mkdir {out_dir} end if ({store_mode}==1) str strStoreMode = "currents_" end if ({store_mode}==2) str strStoreMode = "conductances_" end // use conductance scalefacs from par file to set multipliers include ../common/g_mult_PRC2 // Nonspiking or spiking model? Include appropriate passive or active parameters: if ({modelType}==1) include ../common/paspars.g str strModel = "_nonspiking_" end if ({modelType}==2) include ../common/actpars.g str strModel = "_spiking_" end if ({modelType}==3) // include ../common/varpars_newGP_dendNaP.g include ../common/varpars_GPbase_synback.g str strModel = "_GPbase_" end // stimComptsNum reflects the number of compartments receiving a stimulus float stimComptsNum if ({stimComptsIdx}==1) include ../common/stimComptsIdxs1toTen else include ../common/stimComptsIdxs11toSeventeen end if ({stimType}==1) str strStim = "_cipStim_" end if ({stimType}==2) str strStim = "_EXCsynStim_" end if ({stimType}==3) str strStim = "_INHsynStim_" end // include list of control spike times for calculation of stimTimes: //include ../common/dendComptGroups/control_spikeTimes_PRC //include ../common/dendComptGroups/control_spikeTimes_dendComptGroups //include ../common/control_spikeTimes_GPbase_synback_oscillator //include ../common/control_spikeTimes_GPbase_synback_Eshift //include ../common/control_spikeTimes_synback_Eshift_CNS09_paper2 include ../common/control_spikeTimes_synback_synGrid // if CIP stimulus: if ({stimType}==1) float cip = {stimMag} cip = {cip}/{stimComptsNum} float cipTime = {{spike1time}+{{({stimInterval}-1)}*{({spike2time}-{spike1time})}/72}} echo echo Stimulus time is {cipTime} float cipDur = {stimDur} echo The current injected into each compartment of {strStimLoc} is {cip} pA echo else //if synaptic stimulation: float Gmax_PRC = {stimMag} Gmax_PRC = {Gmax_PRC}/((1e12)*{stimComptsNum}) float synTime = {spike1time} + {{({stimInterval}-1)}*{({spike2time}-{spike1time})}/72} end // Now that all params have been established, create library objects. // Intrinsic params should be left alone from this point forward. echo echo cci is {currentComptsIdx} echo include ../common/make_GP_library_NaF_art.g //filename based on variable parameters (don't include path!) if ({stimType}==1) if ({stimMag}==0) str basefilename = {stimMag} @ "_pA_" @ {strStimLoc} @ {spikeIdx} @ "_spikeIdx_" @ {syngain} @ "_syngain_" @ {STN_rate} @ "_STNrate_" @ {striatum_rate} @ "_STRIATUMrate_" @ {spiCurDist} @ "_dist_" @ {Eshift} @ "_Eshift_" @ {dendSpiCurMult} @ "_dendIspikeMult_" @ {NaPdendmult} @ "_NaPdendmult_" @ {SKsomaMult} @ "_SKsomaX_" @ {SKdendMult} @ "_SKdendX_" @ {stimType} @ {strStim} @ "GPbase_baseModels_SynBackControl_" else str basefilename = {pad_num_gen {stimInterval} 3} @ "_stimInt_" @ {stimMag} @ "_pA_" @ {cipTime} @ "_msTime_" @ {cipDur} @ "_msDur" @ {strStimLoc} @ {spikeIdx} @ "_spikeIdx_" @ {syngain} @ "_syngain_" @ {STN_rate} @ "_STNrate_" @ {striatum_rate} @ "_STRIATUMrate_" @ {spiCurDist} @ "_dist_" @ {Eshift} @ "_Eshift_" @ {dendSpiCurMult} @ "_dendIspikeMult_" @ {NaPdendmult} @ "_NaPdendmult_" @ {SKsomaMult} @ "_SKsomaX_" @ {SKdendMult} @ "_SKdendX_" @ {stimType} @ {strStim} @ "GPbase_baseModels_SynBack_" end end if (! ({stimType}==1)) if ({stimMag}==0) str basefilename = {stimMag} @ "_pS_" @ {strStimLoc} @ {spikeIdx} @ "_spikeIdx_" @ {syngain} @ "_syngain_" @ {STN_rate} @ "_STNrate_" @ {striatum_rate} @ "_STRIATUMrate_" @ {spiCurDist} @ "_dist_" @ {Eshift} @ "_Eshift_" @ {dendSpiCurMult} @ "_dendIspikeMult_" @ {NaPdendmult} @ "_NaPdendmult_" @ {SKsomaMult} @ "_SKsomaX_" @ {SKdendMult} @ "_SKdendX_" @ {stimType} @ {strStim} @ "GPbase_baseModels_SynBackControl_" else str basefilename = {pad_num_gen {stimInterval} 3} @ "_stimInt_" @ {stimMag} @ "_pS_" @ {synTime} @ "_msTime_" @ {stimDur} @ "_msDur" @ {strStimLoc} @ {spikeIdx} @ "_spikeIdx_" @ {syngain} @ "_syngain_" @ {STN_rate} @ "_STNrate_" @ {striatum_rate} @ "_STRIATUMrate_" @ {spiCurDist} @ "_dist_" @ {Eshift} @ "_Eshift_" @ {dendSpiCurMult} @ "_dendIspikeMult_" @ {NaPdendmult} @ "_NaPdendmult_" @ {SKsomaMult} @ "_SKsomaX_" @ {SKdendMult} @ "_SKdendX_" @ {stimType} @ {strStim} @ "GPbase_baseModels_SynBack_" end end if ({currentComptsIdx}==4) str strCurrentsLoc = {currentComptsIdx} @ "_dend1" @ {strStoreMode} str strCaLoc = {currentComptsIdx} @ "_dend1calcium_" end if ({currentComptsIdx}==5) str strCurrentsLoc = {currentComptsIdx} @ "_dend2" @ {strStoreMode} str strCaLoc = {currentComptsIdx} @ "_dend2calcium_" end if ({currentComptsIdx}==6) str strCurrentsLoc = {currentComptsIdx} @ "_dend3" @ {strStoreMode} str strCaLoc = {currentComptsIdx} @ "_dend3calcium_" end if ({voltageComptsIdx}==1) str strVoltagesLoc = {voltageComptsIdx} @ "_somaVm_" end if ({voltageComptsIdx}==2) str strVoltagesLoc = {voltageComptsIdx} @ "_stimlocVms_" end if ({voltageComptsIdx}==3) str strVoltagesLoc = {voltageComptsIdx} @ "_dend1voltages_" end if ({voltageComptsIdx}==4) str strVoltagesLoc = {voltageComptsIdx} @ "_dend2voltages_" end if ({voltageComptsIdx}==5) str strVoltagesLoc = {voltageComptsIdx} @ "_dend3voltages_" end echo {basefilename} str filename_v = {basefilename} @ {strVoltagesLoc} @ "v.bin" str filename_gtot = {basefilename} @ {strCurrentsLoc} @ "itot.bin" str filename_ca = {basefilename} @ {strCaLoc} @ "ca.bin" str filename_gsyns = {basefilename} @ "_gsyns.bin" str filename_mhhnn = {basefilename} @ "mhhnn.bin" dt = 2e-5 if ({snapgate}==1) dt = 1e-5 echo echo This should not be happening except for snapshot simulations!!!!!!! echo end //set up clocks setclock 0 {dt} // simulation //output set to 1e-4 under normal circumstances setclock 1 {1e-4} // output //rundur = 13.5 // simulation length //rundur = {({spike6time}/1000)+(.05)} rundur=1 if ({snapgate}==1) rundur = 10 end if (({snapgate}==0) & ({stimMag}==0)) rundur = 2 end //load compartments with ion channels //if ({currentComptsIdx}==1) // readcell ../common/GP1/GP1_FULLdendsort.p {cellpath} -hsolve //end //if ({currentComptsIdx}==2) // readcell ../common/GP1/GP1_THIRDSdendsort.p {cellpath} -hsolve //end //if ({currentComptsIdx}==3) // readcell ../common/GP1/GP1_SUBdendsort.p {cellpath} -hsolve //end if (({currentComptsIdx}>=4) & ({currentComptsIdx}<=6)) readcell ../common/GP1_dendComptGroups.p {cellpath} -hsolve end //add synapses to appropriate compartments include ../common/read_STN_nocluster_ratescaled_nws_Kopell /* if ({currentComptsIdx}==1) include ../common/read_clusters_FULLdendsort end if ({currentComptsIdx}==2) include ../common/read_clusters_THIRDSdendsort end if ({currentComptsIdx}==3) include ../common/read_clusters_SUBdendsort end if (({currentComptsIdx}>=4) & ({currentComptsIdx}<=6)) include ../common/read_clusters_dendComptGroups end */ include ../common/read_striatum_syns_ratescaled_nws_Kopell include ../common/add_pallidum_syns create pulsegen /constantcurrent setfield /constantcurrent \ level1 {0e-12} \ width1 11 \ delay1 0 \ delay2 50 \ baselevel 0 \ trig_mode 0 str readcompartment if ({constcurr_loc}==1) str constcurr_filename = "../common/comptlists/constcurr_soma.txt" end if ({constcurr_loc}==2) str constcurr_filename = "../common/comptlists/constcurr_axIS.txt" end openfile {constcurr_filename} r readcompartment = {readfile {constcurr_filename}} while (! {eof {constcurr_filename}}) addmsg /constantcurrent {cellpath}/{readcompartment} INJECT output readcompartment = {readfile {constcurr_filename}} end closefile {constcurr_filename} //set up current injection if ({stimType}==1) create pulsegen /pulse setfield /pulse \ level1 {{cip}*1e-12} \ width1 {{cipDur}*1e-3} \ delay1 {{cipTime}*1e-3} \ delay2 50 \ baselevel 0 \ trig_mode 0 // NWS: add msg with while loop to distribute CIP str readcompartment if ({stimComptsIdx}==1) str CIPfilename = "../common/comptlists/nws_soma_only.txt" end if ({stimComptsIdx}==2) str CIPfilename = "../common/comptlists/nws_proximal_FULLdendcompts.txt" end if ({stimComptsIdx}==3) str CIPfilename = "../common/comptlists/nws_mid_FULLdendcompts.txt" end if ({stimComptsIdx}==4) str CIPfilename = "../common/comptlists/nws_distal_FULLdendcompts.txt" end if ({stimComptsIdx}==5) str CIPfilename = "../common/comptlists/nws_proximal_THIRDSdendcompts.txt" end if ({stimComptsIdx}==6) str CIPfilename = "../common/comptlists/nws_mid_THIRDSdendcompts.txt" end if ({stimComptsIdx}==7) str CIPfilename = "../common/comptlists/nws_distal_THIRDSdendcompts.txt" end if ({stimComptsIdx}==8) str CIPfilename = "../common/comptlists/nws_proximal_SUBdendcompts.txt" end if ({stimComptsIdx}==9) str CIPfilename = "../common/comptlists/nws_mid_SUBdendcompts.txt" end if ({stimComptsIdx}==10) str CIPfilename = "../common/comptlists/nws_distal_SUBdendcompts.txt" end if ({stimComptsIdx}==11) str CIPfilename = "../common/comptlists/dend1_proximal25compts.txt" end if ({stimComptsIdx}==12) str CIPfilename = "../common/comptlists/dend1_distal25compts.txt" end if ({stimComptsIdx}==13) str CIPfilename = "../common/comptlists/dend2_proximal25compts.txt" end if ({stimComptsIdx}==14) str CIPfilename = "../common/comptlists/dend2_distal25compts.txt" end if ({stimComptsIdx}==15) str CIPfilename = "../common/comptlists/dend3_proximal25compts.txt" end if ({stimComptsIdx}==16) str CIPfilename = "../common/comptlists/dend3_mid25compts.txt" end if ({stimComptsIdx}==17) str CIPfilename = "../common/comptlists/dend3_distal25compts.txt" end openfile {CIPfilename} r readcompartment = {readfile {CIPfilename}} while (! {eof {CIPfilename}}) addmsg /pulse {cellpath}/{readcompartment} INJECT output readcompartment = {readfile {CIPfilename}} end closefile {CIPfilename} end //default valence (not used with CIP) if ({stimType}==1) str valence = "AMPA" end if ({stimType}==2 || {stimType}==4) str valence = "AMPA" end if ({stimType}==3 || {stimType}==5) str valence = "GABA" end if ({stimType}==1) include ../common/PRCsynDend_CIP else include ../common/PRCsynDend end silent -1 //set up hines solver setfield {cellpath} \ path {cellpath}/##[][TYPE=compartment] \ comptmode 1 \ chanmode 4 \ calcmode 0 \ outclock 1 \ storemode {store_mode} call {cellpath} SETUP setmethod 11 //set up outputs create disk_out /out_v useclock /out_v 1 setfield /out_v filename {{out_dir} @ {filename_v}} flush 0 append 0 leave_open 1 create disk_out /out_gsyns useclock /out_gsyns 1 setfield /out_gsyns filename {{out_dir} @ {filename_gsyns}} flush 0 append 0 leave_open 1 // NWS for simulations with tiny timestep when itot isn't needed, comment out: create disk_out /out_gtot useclock /out_gtot 1 setfield /out_gtot filename {{out_dir} @ {filename_gtot}} flush 0 append 0 leave_open 1 create disk_out /out_ca useclock /out_ca 1 setfield /out_ca filename {{out_dir} @ {filename_ca}} flush 0 append 0 leave_open 1 /* //save Vm of selected compartments to file: soma, axon, dends int n openfile {outputcompsfname} r readcompartment = {readfile {outputcompsfname}} while (! {eof {outputcompsfname}}) hstr={findsolvefield {cellpath} {cellpath}/{readcompartment} Vm} addmsg {cellpath} /out_v SAVE {hstr} readcompartment = {readfile {outputcompsfname}} end closefile {outputcompsfname} */ // Save Vm for a sample of compartments if ({voltageComptsIdx}==1) str voltageCompts = "../common/comptlists/nws_soma_only.txt" str calciumCompts = "../common/comptlists/nws_soma_only.txt" end if ({voltageComptsIdx}==2) str voltageCompts = "../common/comptlists/nws_stimloc_subset.txt" str calciumCompts = "../common/comptlists/nws_noCaConc_in_ax.txt" end if ({voltageComptsIdx}==3) str voltageCompts = "../common/comptlists/save_dend1voltageCompts.txt" str calciumCompts = "../common/comptlists/save_dend1calciumCompts.txt" end if ({voltageComptsIdx}==4) str voltageCompts = "../common/comptlists/save_dend2voltageCompts.txt" str calciumCompts = "../common/comptlists/save_dend2calciumCompts.txt" end if ({voltageComptsIdx}==5) str voltageCompts = "../common/comptlists/save_dend3voltageCompts.txt" str calciumCompts = "../common/comptlists/save_dend3calciumCompts.txt" end openfile {voltageCompts} r readcompartment = {readfile {voltageCompts}} while(! {eof {voltageCompts}}) // Vm hstr={findsolvefield {cellpath} {cellpath}/{readcompartment} Vm} addmsg {cellpath} /out_v SAVE {hstr} // Gsyn //hstr={findsolvefield {cellpath} {cellpath}/{readcompartment}/AMPA Gk} //addmsg {cellpath} /out_gsyns SAVE {hstr} // Get next compt name readcompartment = {readfile {voltageCompts}} end /* USED THIS FOR POST-KOPELL WORKSHOP create disk_out /out_mhhnn useclock /out_mhhnn 1 setfield /out_mhhnn filename {{out_dir} @ {filename_mhhnn}} flush 0 append 0 leave_open 1 hstr = {findsolvefield {cellpath} {cellpath}/soma Vm} addmsg {cellpath} /out_mhhnn SAVE {hstr} //echo {showfield {cellpath}/soma *} //echo {le {cellpath}/soma/ *} //echo {showfield {cellpath}/soma/Na_fast_GP_somahill *} hstr = {findsolvefield {cellpath} {cellpath}/soma/Na_fast_GP_somahill X} addmsg {cellpath} /out_mhhnn SAVE {hstr} hstr = {findsolvefield {cellpath} {cellpath}/soma/Na_fast_GP_somahill Y} addmsg {cellpath} /out_mhhnn SAVE {hstr} hstr = {findsolvefield {cellpath} {cellpath}/soma/Na_fast_GP_somahill Z} addmsg {cellpath} /out_mhhnn SAVE {hstr} hstr = {findsolvefield {cellpath} {cellpath}/soma/Kv3_GP_somahill X} addmsg {cellpath} /out_mhhnn SAVE {hstr} hstr = {findsolvefield {cellpath} {cellpath}/soma/Kv2_GP_somahill X} addmsg {cellpath} /out_mhhnn SAVE {hstr} */ create neutral /PRCspiketimes create spikegen /PRCspiketimes/soma_spikegen setfield /PRCspiketimes/soma_spikegen \ output_amp 1 thresh 0 abs_refract .002 hstr={findsolvefield {cellpath} {cellpath}/soma Vm} addmsg {cellpath} /PRCspiketimes/soma_spikegen INPUT {hstr} create spikehistory /PRCspiketimes/soma_spikehistory setfield /PRCspiketimes/soma_spikehistory \ filename {{spktime_dest_dir} @ {basefilename} @ "spikehistory.asci"} \ initialize 1 leave_open 1 flush 1 ident_toggle 1 addmsg /PRCspiketimes/soma_spikegen /PRCspiketimes/soma_spikehistory SPIKESAVE call /PRCspiketimes/soma_spikehistory RESET echo {showfield /PRCspiketimes/soma_spikehistory *} //IF WE DO THE 'ENTRAINMENT TO PERIODIC STN INPUT EXPERIMENT', THIS WILL GET USED // Save Gsyn AND Vm for every STN synapse to file openfile {STNfilename} r readcompartment = {readfile {STNfilename}} while(! {eof {STNfilename}}) // Vm hstr={findsolvefield {cellpath} {cellpath}/{readcompartment} Vm} addmsg {cellpath} /out_v SAVE {hstr} // Gsyn hstr={findsolvefield {cellpath} {cellpath}/{readcompartment}/AMPA Gk} addmsg {cellpath} /out_gsyns SAVE {hstr} // Get next compt name readcompartment = {readfile {STNfilename}} end // save the selected total conductances or currents into filename_g // commented out when not saving itot /* if ({currentComptsIdx}==4) // stimulus to dendrite 1 for(i=0; i<=0; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end for(i=71; i<=92; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end for(i=106; i<=117; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end end if ({currentComptsIdx}==5) //stimulus to dendrite 2 for(i=0; i<=0; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end for(i=49; i<=70; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end for(i=106; i<=117; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end end if ({currentComptsIdx}==6) // stimulus to dendrite 3 for(i=0; i<=0; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end for(i=14; i<=48; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end for(i=106; i<=117; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end end */ //for all currents (throughout dendrite) from dendComptGroups: for(i=0; i<=117; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end /* //This block of channels to save in itot works for dend3_distal (prior to dendComptGroups) for(i=0; i<=0; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end for(i=14; i<=48; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end for(i=62; i<=73; i=i+1) addmsg {cellpath} /out_gtot SAVE itotal[{i}] end */ openfile {calciumCompts} r readcompartment = {readfile {calciumCompts}} while(! {eof {calciumCompts}}) // Ca++ hstr={findsolvefield {cellpath} {cellpath}/{readcompartment}/Ca_GP_conc Ca} addmsg {cellpath} /out_ca SAVE {hstr} // Get next compt name readcompartment = {readfile {calciumCompts}} end if ({modelType}==1) if ({currentComptsIdx}==1) str snapshotname = "../common/snapshots/nonspiking_FULLdendsort_snapshot.save" end if ({currentComptsIdx}==2) str snapshotname = "../common/snapshots/nonspiking_THIRDSdendsort_snapshot.save" end if ({currentComptsIdx}==3) str snapshotname = "../common/snapshots/nonspiking_SUBdendsort_snapshot.save" end if (({currentComptsIdx}>=4) & ({currentComptsIdx}<=6)) str snapshotname = "../common/snapshots/dendComptGroups/synBack/Kopell/Kopell_nonspiking" @ {strStimLoc} @ {HVA_PRC_scalefac} @ "_xHVA_" @ {SK_PRC_scalefac} @ "_xSK_" @ {STN_rate} @ "_HzSTN_" @ {striatum_rate} @ "_HzSTR_" @ {synBack_synch} @ "_synch_snapshot.save" end end if ({modelType}==2) if ({currentComptsIdx}==1) str snapshotname = "../common/snapshots/spiking_FULLdendsort_snapshot.save" end if ({currentComptsIdx}==2) str snapshotname = "../common/snapshots/spiking_THIRDSdendsort_snapshot.save" end if ({currentComptsIdx}==3) str snapshotname = "../common/snapshots/spiking_SUBdendsort_snapshot.save" end if (({currentComptsIdx}>=4) & ({currentComptsIdx}<=6)) str snapshotname = "../common/snapshots/dendComptGroups/synBack/spiking" @ {strStimLoc} @ {HVA_PRC_scalefac} @ "_xHVA_" @ {SK_PRC_scalefac} @ "_xSK_" @ {STN_rate} @ "_HzSTN_" @ {striatum_rate} @ "_HzSTR_" @ {synBack_synch} @ "_synch_" @ "snapshot.save" end end if ({modelType}==3) if (({currentComptsIdx}>=4) & ({currentComptsIdx}<=6)) str snapshotname = "../common/snapshots/GP" @ {strStimLoc} @ {syngain} @ "_syngain_" @ {STN_rate} @ "_STNrate_" @ {striatum_rate} @ "_STRIATUMrate_" @ {spiCurDist} @ "_dist_" @ {Eshift} @ "_Eshift_" @ {dendSpiCurMult} @ "_dendIspikeMult_" @ {NaPdendmult} @ "_NaPdendmult_" @ {SKsomaMult} @ "_SKsomaX_" @ {SKdendMult} @ "_SKdendX" @ {strStim} @ "synback_baseModels_snapshot.save" end end echo echo Snapshot to be made or used by this simulation is echo {snapshotname} echo include ../common/snapshotGP_nws /* for getting axial resistance of each compt: str thiscompt foreach thiscompt ({el {cellpath}/##[][OBJECT=compartment]}) echo {thiscompt} {getfield {thiscompt} Ra} end quit */ /* for getting surface areas of each compt: str thiscompt foreach thiscompt ({el {cellpath}/##[][OBJECT=compartment]}) echo {thiscompt} {({getfield {thiscompt} len})*({getfield {thiscompt} dia})*3.141592653589793} end quit */ include ../common/spiCurDist_echoDist.g /* echo somaNaFGbar {getfield /GP/soma/Na_fast_GP_somahill Gbar} echo somaNaSGbar {getfield /GP/soma/Na_slow_GP_somahill Gbar} echo somaKV3Gbar {getfield /GP/soma/Kv3_GP_somahill Gbar} echo somaKV2Gbar {getfield /GP/soma/Kv2_GP_somahill Gbar} echo somaRM {getfield /GP/soma Rm} echo somaCM {getfield /GP/soma Cm} */ if ({snapgate}==1) reset step {rundur} -time take_snapshot //compress data files // str filename_v_c = {compress_data_file {{out_dir} @ {filename_v}}} // str filename_gtot_c = {compress_data_file {{out_dir} @ {filename_gtot}}} // str filename_ca_c = {compress_data_file {{out_dir} @ {filename_ca}}} // Copy file from temporary location (on nodes) to desired location (on /scratch) // mv {filename_v_c} {dest_dir} // mv {filename_gtot_c} {dest_dir}& // mv {filename_ca_c} {dest_dir}& quit else //run the simulation reset restore_snapshot step {rundur} -time //compress data files // str filename_v_c = {compress_data_file {{out_dir} @ {filename_v}}} // str filename_gtot_c = {compress_data_file {{out_dir} @ {filename_gtot}}} // str filename_ca_c = {compress_data_file {{out_dir} @ {filename_ca}}} // Copy file from temporary location (on nodes) to desired location (on /scratch) // mv {filename_v_c} {dest_dir} // mv {filename_gtot_c} {dest_dir}& // mv {filename_ca_c} {dest_dir}& quit end