if (name_declared("pkgversions") != 4 ) { execute("strdef pkgversions") } sprint(pkgversions,"%sbpap-record = $Revision: 1.25 $, ",pkgversions) load_file("nrngui.hoc") load_file("FormatFile.hoc") load_file("bpap-cell.hoc") load_file("bpap-data.hoc") // // Recordngs // // Remove all recordings from list of vectors proc record_remove() { local i for i=0,$o1.count() - 1 { if (cvode_active()) { cvode.record_remove($o1.object(i)) } } } // Voltage from segments of dendritic tree objref vtree, tsyn // List of membrane potential at synapses proc record_vtree() { vtree = new List() tsyn = new List() for i= 0, segreflist.srl.count() - 1 { vtree.append(new Vector()) tsyn.append(new Vector()) segreflist.srl.object(i).secref.sec cvode.record(&v(segreflist.srl.object(i).x),vtree.object(i),tsyn.object(i)) } } // Voltage from segments of dendritic tree objref catree, ttree // List of membrane potential at synapses proc record_catree() { catree = new List() ttree = new List() for i= 0, segreflist.srl.count() - 1 { catree.append(new Vector()) ttree.append(new Vector()) segreflist.srl.object(i).secref.sec cvode.record(&cai(segreflist.srl.object(i).x),catree.object(i),ttree.object(i)) } } // Voltage from the soma objref vsoma, tsoma proc record_vsoma() { vsoma = new Vector() tsoma = new Vector() cvode.record(&v(0), vsoma, tsoma) } // Calcium concentration in spine heads objref casyn, scall_inputs proc record_casyn() { casyn = new List() for i=0,scall_inputs.count()-1 { casyn.append(new Vector()) scall_inputs.object(i).spine.head casyn.object(i).record(&cai(0.5)) } } // Voltage at spine head objref vsyn proc record_vsyn() { localobj inputs vsyn = new List() for i=0, scall_inputs.count()-1 { vsyn.append(new Vector()) scall_inputs.object(i).spine.head vsyn.object(i).record(&v(0.5)) } } // Calcium current in spine head objref icasyn proc record_icasyn() { localobj inputs inputs = $o1 icasyn = new List() for i=0, inputs.count()-1 { icasyn.append(new Vector()) inputs.object(i).spine.head icasyn.object(i).record(&ica(0.5)) } } // Calcium current through NMDA receptors. // The argument inputs is a list of SpineSynStim objects objref ica_nmdasyn proc record_ica_nmdasyn() { localobj inputs inputs = $o1 ica_nmdasyn = new List() for i=0, inputs.count()-1 { ica_nmdasyn.append(new Vector()) ica_nmdasyn.object(i).record(&inputs.object(i).nmdasyn.ica) } } // Calcium current through AMPA receptors. // The argument inputs is a list of SpineSynStim objects objref ica_ampasyn proc record_ica_ampasyn() { localobj inputs inputs = $o1 ica_ampasyn = new List() for i= 0, inputs.count()-1 { ica_ampasyn.append(new Vector()) ica_ampasyn.object(i).record(&inputs.object(i).ampasyn.ica) } } // record_apcount_soma() // set up a recording of the action potential count in the soma objref record_apc proc record_apcount_soma() { record_apc = new APCount(0.5) } // Record time of presynaptic spikes objref tprespike // List of times of presynaptic spikes tprespike = new List() // record_tprespike() // Set up a recording of the presynaptic spike times proc record_tprespike() { tprespike = new List() // Ulp!! need to know where the synapses are... // ... oh no we don't, never mind for i= 0,scall_inputs.count()-1 { tprespike.append(new Vector()) scall_inputs.object(i).netcon.record(tprespike.object(i)) } // datalist.appendMatrix("tprespike",tprespikes) }