/*******Cerebellar Golgi Cell Model ********** Developers: Sergio Solinas & Egidio D'Angelo Code contributors: Thierry Neius, Shyam Diwakar, Lia Forti Data Analysis: Sergio Solinas Work Progress: April 2004 - May 2007 Developed At: Università Degli Studi Di Pavia Dipartimento Di Scienze Fisiologiche Pavia - Italia Model Published in: Sergio M. Solinas, Lia Forti, Elisabetta Cesana, Jonathan Mapelli, Erik De Schutter and Egidio D`Angelo (2008) Computational reconstruction of pacemaking and intrinsic electroresponsiveness in cerebellar golgi cells Frontiers in Cellular Neuroscience 2:2 ********************************************/ objref dta, dta2 dta = new Vector () dta2 = new Vector () proc FR() { print "spike times (ms): " $o1.printf() dta.deriv($o1,1,1) print "In terspike intervals (ms): " dta.printf() dta2.resize(dta.size()) dta2.fill(1000) dta2.div(dta) print "Inst. Firing rates (sp/s): " dta2.printf() print " first ISI\t Last ISI\tAdaptation\tMean rate\tCV-ISI\n" printf("\t%-5.2g\t\t%-5.2g\t\t%-5.2g\t\t%-5.2g\t%-5.2g\n", dta2.x[0], dta2.x[dta2.size()-1],dta2.x[dta2.size()-1]/dta2.x[0], 1000/dta.mean(), dta.stdev()/dta.mean()) } proc PrintRates() { print "Control\tIh\tKM\tSK-bSK2\tHVA\tKA" $o1.getcol(9).printf $o1.getcol(1).div($o1.getcol(1).get(0)/100).sub(100).printf } func Cell_area() { local surf surf = 0 forall { surf = surf + area(0.5)*nseg} return surf } proc Cell_Pass() { local cnm cnm = 0 forall { cnm = cnm + area(0.5)*nseg*glbar_Golgi_lkg*1e-8} print "Resistance\t",1/cnm*1e-6," MOhm" cnm = 0 forall { cnm = cnm + area(0.5)*nseg*cm*1e-8} print "Capacitance\t",cnm*1e6," pF" } proc FR_show() { FR(Golgi[0].SpikeTrain) }