// This function is used to balance the membrane potential to v_init (= -70 mV) // written by Yiota Poirazi, July 2001, poirazi@LNC.usc.edu proc current_balance() { // print "Note: This does not account for non-specific ion currents.\n" finitialize($1) printf("Balancing each compartment to %d mV\n", $1) forall { for (x) { if (ismembrane("na_ion") && ismembrane("ca_ion") && ismembrane("Ca_ion") && (ismembrane("k_ion"))) { e_pas(x)=(ina(x)+ik(x)+ica(x)+iCa(x)+g_pas(x)*v(x))/g_pas(x) } else if (ismembrane("na_ion") && ismembrane("ca_ion") && (ismembrane("k_ion"))){ e_pas(x)=(ina(x)+ik(x)+ica(x)+g_pas(x)*v(x))/g_pas(x) } else if (ismembrane("na_ion") && (ismembrane("k_ion"))) { e_pas(x)=(ina(x)+ik(x)+g_pas(x)*v(x))/g_pas(x) // printf("Section %s ina: %g ik: %g\n", secname(), ina(x), ik(x)) // psection() } else { print "simply assigning v(x)" e_pas(x)=v(x) } fcurrent() } } frecord_init() }