/* Uses the makeCell*.hoc files in parallel. Also the new ball and stick template. */ AMPA = 2.5 // Modify as needed. "2.5" = 250 pS, "4" = 400 pS /************* Loading necessary files *********************/ xopen("makeSavestates.hoc") load_file("Threshold_Template.hoc") // Uses 50 um range for threshold test, and 50 ms width Gaussian. // Assumes savestates are already made and in the folder. Use 'makeSavestates.hoc' for each machine /************* The procs ****************/ strdef mcVS,ThName,fName,filename objref savestate proc mcVolt() { local voltInput,length,startS,AMPAc localobj cell // Inputs: // $1 is v_init // $2 is length // $3 is starting seed // $4 is AMPA conductance, normal .0005 umho voltInput = $1 length = $2 startS = $3 AMPAc = $4 // Makes cell with desired voltage and length cell = new Cell(length,voltInput) v_init = voltInput savestate = new SaveState() savestate = loadSv(length,voltInput*-1) // Loads the savestate to a variable 'savestate' // Running the test runTh(length,cell,startS,AMPAc) } proc runTh() { local nSpines,startS,AMPAc // $1 is the number of spines (dendrite length) // $o2 is the cell // $3 is the starting seed for the trials // $4 is the AMPA conductance nSpines = $1 startS = $3 AMPAc = $4 // Inputs: // $1: locRange is the range to be uniformly sampled in space // $2: gaussTime is the width of the Gaussian to be sampled for timing // $3: repStat is the number of repetitions for each location, to collect statistics in variation // $4: incrBy is the distance in microns each trial is separated by. // $5: branchLength is the number of spines on the tested branch. // $6: toggle is the kind of synapse: 0 BOTH, 1 AMPA, 2 NMDA // $s7: filename. // $8: the starting seed // $o9: the cell itself // $10: AMPA conductance, with normal .0005 umho // below- changed repStat from 1 to 9 // below- changed incrBy from 20 to 10 sprint(ThName,"Tr%dThLen%dV%dB.dat",startS,nSpines,v_init*-1) ThreshSpace(50,50,10,10,nSpines,0,ThName,startS,$o2,AMPAc) //sprint(ThName,"Tr%dThLen%dV%dA.dat",startS,nSpines,v_init*-1) //ThreshSpace(50,50,10,10,nSpines,1,ThName,startS,$o2,AMPAc) //sprint(ThName,"Tr%dThLen%dV%dN.dat",startS,nSpines,v_init*-1) //ThreshSpace(50,50,10,10,nSpines,2,ThName,startS,$o2,AMPAc) } proc init() { // The right savestate must be loaded finitialize(v_init) savestate.restore(1) t=0 fcurrent() frecord_init() } obfunc loadSv() { localobj f,svstate // Loads the right savestate // $1 is the dendrite length // $2 is the voltage*-1 sprint(filename,"BLen%dstdstt%d.dat",$1,$2) svstate = new SaveState() f = new File(filename) svstate.fread(f) return svstate } /************************************************************/ /**************** The actual script *************************/ /************************************************************/ for vo_ind = 1,7 { // RMP range (1 to 7 equates to -55 to -85 mV) for le_ind = 1,5 { // Length, from 200 to 1,000 um (1 = 200 um, 5 = 1,000 um) for ac_ind = AMPA,AMPA { // AMPA conductance (in hundreds of pS) for tr_ind = 0,0 { // redundant mcVolt(((vo_ind*5)+50)*-1,le_ind*200,tr_ind,ac_ind*.0001) } } } }