objref ff proc ch() { local i,j,fac, pos, chAll,chDe,chAp,chSo,chCol,chAis,chMy,chNo, chAllA,chDeA,chApA,chSoA,chColA,chAisA,chMyA,chNoA //all chAll=0 chAllA=0 ff=new File() ff.wopen("exportOverlAll.tmp") forall { for j=1,nseg { ff.printf("%e\n",overl_charge_(j/nseg)) pos=0.5/nseg+(j-1)/nseg chAll = chAll + area(pos)*na_ch_charge_(pos) //mA/cm^2 * um^2 chAllA = chAllA + area(pos) } } ff.close() //dend chDe=0 chDeA=0 ff=new File() ff.wopen("exportOverlDend.tmp") for i=0,dendNum-1 { dend[i] { for j=1,nseg { ff.printf("%e\n",overl_charge_(j/nseg)) pos=0.5/nseg+(j-1)/nseg chDe = chDe + area(pos)*na_ch_charge_(pos) //mA/cm^2 * um^2 chDeA = chDeA + area(pos) } } } ff.close() //apic chAp=0 chApA=0 ff=new File() ff.wopen("exportOverlApic.tmp") for i=0,apicNum-1 { apic[i] { for j=1,nseg { ff.printf("%e\n",overl_charge_(j/nseg)) pos=0.5/nseg+(j-1)/nseg chAp = chAp + area(pos)*na_ch_charge_(pos) //mA/cm^2 * um^2 chApA = chApA + area(pos) } } } ff.close() //soma chSo=0 chSoA=0 ff=new File() ff.wopen("exportOverlSoma.tmp") soma { for j=1,nseg { ff.printf("%e\n",overl_charge_(j/nseg)) pos=0.5/nseg+(j-1)/nseg chSo = chSo + area(pos)*na_ch_charge_(pos) //mA/cm^2 * um^2 chSoA = chSoA + area(pos) } } ff.close() //collaterals chCol=0 chColA=0 ff=new File() ff.wopen("exportOverlAxon.tmp") for i=1,axonNum-1 { //axon[0] is AIS axon[i] { for j=1,nseg { ff.printf("%e\n",overl_charge_(j/nseg)) pos=0.5/nseg+(j-1)/nseg chCol = chCol + area(pos)*na_ch_charge_(pos) //mA/cm^2 * um^2 chColA = chColA + area(pos) } } } ff.close() //ais chAis=0 chAisA=0 ff=new File() ff.wopen("exportOverlAxon.tmp") axon[0] { for j=1,nseg { ff.printf("%e\n",overl_charge_(j/nseg)) pos=0.5/nseg+(j-1)/nseg chAis = chAis + area(pos)*na_ch_charge_(pos) //mA/cm^2 * um^2 chAisA = chAisA + area(pos) } } ff.close() //myelin chMy=0 chMyA=0 ff=new File() ff.wopen("exportOverlMyelin.tmp") for i=0,myNum-1 { my[i] { for j=1,nseg { ff.printf("%e\n",overl_charge_(j/nseg)) pos=0.5/nseg+(j-1)/nseg chMy = chMy + area(pos)*na_ch_charge_(pos) //mA/cm^2 * um^2 chMyA = chMyA + area(pos) } } } ff.close() //node chNo=0 chNoA=0 ff=new File() ff.wopen("exportOverlNode.tmp") for i=0,nodeNum-1 { node[i] { for j=1,nseg { ff.printf("%e\n",overl_charge_(j/nseg)) pos=0.5/nseg+(j-1)/nseg chNo = chNo + area(pos)*na_ch_charge_(pos) //mA/cm^2 * um^2 chNoA = chNoA + area(pos) } } } ff.close() fac=-10^-3*10^4*10^-12*dt*10^-3*6.24*10^18*(1/3) // (current (mA) / area (cm^2) ) * area (um^2) * dt in ms // 10^-3 10^4 10^-12 10^-3 // => A*s //and: // A*s * number of elementary charges per Coulomb * 3 Na per 1 ATP // 6.24*10^18=1/e=1/1.6*10^19 1/3 printf("--------------------------------------------------------------------------------------\n") printf("The Na influx was analyzed from %f to %f ms\n",tStart_charge_,tEnd_charge_) printf("Required ATP molecules to pump Na ions out:\n") printf("Total: %e\n",fac*chAll) printf("Soma: %e\n",fac*chSo) printf("Basal dendrite: %e\n",fac*chDe) printf("Apical dendrite: %e\n",fac*chAp) printf("Axon Initial Segment: %e\n",fac*chAis) printf("Axon collaterals: %e\n",fac*chCol) printf("Myelin: %e\n",fac*chMy) printf("Node: %e\n",fac*chNo) printf("--------------------------------------------------------------------------------------\n") printf("--------------------------------------------------------------------------------------\n") printf("Required ATP molecules to pump Na ions out per um^2:\n") printf("Total: %e\n",fac*chAll/chAllA) printf("Soma: %e\n",fac*chSo/chSoA) printf("Basal dendrite: %e\n",fac*chDe/chDeA) printf("Apical dendrite: %e\n",fac*chAp/chApA) printf("Axon Initial Segment: %e\n",fac*chAis/chAisA) printf("Axon collaterals: %e\n",fac*chCol/chColA) printf("Myelin: %e\n",fac*chMy/chMyA) printf("Node: %e\n",fac*chNo/chNoA) printf("--------------------------------------------------------------------------------------\n") printf("Total area (um^2): %e\n",chAllA) printf("Soma area (um^2): %e\n",chSoA) printf("--------------------------------------------------------------------------------------\n") //export ff=new File() ff.wopen("exportChargeNames.tmp") ff.printf("%s\n","Total:") ff.printf("%s\n","Soma:") ff.printf("%s\n","Basal dendrite:") ff.printf("%s\n","Apical dendrite:") ff.printf("%s\n","Axon Initial Segment: ") ff.printf("%s\n","Axon collaterals: ") ff.printf("%s\n","Myelin:") ff.printf("%s\n","Node: ") ff.printf("%s\n","TotalA:") ff.printf("%s\n","SomaA:") ff.printf("%s\n","Basal dendriteA:") ff.printf("%s\n","Apical dendriteA:") ff.printf("%s\n","Axon Initial SegmentA: ") ff.printf("%s\n","Axon collateralsA: ") ff.printf("%s\n","MyelinA:") ff.printf("%s\n","NodeA: ") ff.close() ff=new File() ff.wopen("exportChargeValues.tmp") ff.printf("%e\n",fac*chAll) ff.printf("%e\n",fac*chSo) ff.printf("%e\n",fac*chDe) ff.printf("%e\n",fac*chAp) ff.printf("%e\n",fac*chAis) ff.printf("%e\n",fac*chCol) ff.printf("%e\n",fac*chMy) ff.printf("%e\n",fac*chNo) ff.printf("%e\n",fac*chAll/chAllA) ff.printf("%e\n",fac*chSo/chSoA) ff.printf("%e\n",fac*chDe/chDeA) ff.printf("%e\n",fac*chAp/chApA) ff.printf("%e\n",fac*chAis/chAisA) ff.printf("%e\n",fac*chCol/chColA) ff.printf("%e\n",fac*chMy/chMyA) ff.printf("%e\n",fac*chNo/chNoA) ff.close() }