// This function is used to deduce the maximum AMPA coductance value // at any location along the cell, such that a single current pulse will give // rise to approximately 5mV local depolarization. // tune-epsps.hoc is used is advance to calculate maximum AMPA conductance values // for a few locations along each section (reference list). This function is used to // deduce the AMPA conductance for ANY specified location in ANY section by finding // the estimated AMPA value of the reference point closest to the specified point. // written by Terrence Brannon, last modified by Yiota Poirazi, July 2001, poirazi@LNC.usc.edu objref find_gmax_vec, find_gmax_dest, find_gmax_index, find_gmax_tmp func find_gmax() { local range_ref, pre_diff, pre_i, post_gmax, diff, i,R range_ref = $1 find_gmax_vec = new Vector() find_gmax_index = new Vector() find_gmax_tmp = new Vector() post_i=-1 for i=0,tune_epsp_list.count()-1 { // for all sections in tune_epsp_list (reference list) if (issection(tune_epsp_list.object(i).section_name)) { // print "\t\t-- tuning", secname() // printf("R=tune_epsp_list.object(%d).range_ref\n", i) R = tune_epsp_list.object(i).range_ref // printf("R=tune_epsp_list.object(%d).range_ref == %g\n", i,R) if (R <= range_ref) { pre_i=i pre_R=R } if (R > range_ref) { if (post_i < 0) { post_i=i post_R=R } } } } //print "===================================== calculating ret_gmax, ret_R" if ( (post_i < 0) || (abs(pre_R-range_ref) < abs(post_R-range_ref)) ) { // print "pre_i", pre_i ret_gmax=tune_epsp_list.object(pre_i).gbar_ampa ret_R=pre_R } else { // print "post_i", post_i, "post_R ", post_R ret_gmax=tune_epsp_list.object(post_i).gbar_ampa ret_R=post_R } // printf("%g was the closest range_ref to %g for %s\n", ret_R, range_ref, secname()) return(ret_gmax) }