//CHEMESIS2.0 //phototrans.g //stochastic activation of rhodopsin in individual microvilli function phototrans (ip3path) create neutral /rhabmemb ce /rhabmemb int cyl, i float value, cumvalue float slice_volume, vil_volume, vil_xarea, vil_sa /******* light stimulus **********/ create pulsegen shutter setfield shutter \ baselevel 0 \ level1 {intensity} \ /* photon rate (msec-1) during light on */ width1 {duration} \ /* specify in units of time, not steps */ delay1 {lightdelay} \ /* specify in units of time, not steps */ delay2 99999 \ trig_mode 0 \ trig_time 0 create randomspike light setfield light min_amp 0 max_amp 1.0 rate 0 addmsg shutter light RATE output /****setup phototransduction in ncyls membrane compartments of rhabdomere **/ /* outerrad*outerrad - innerrad*innerrad */ slice_volume=PI*(rhabrad*rhabrad-(rhabcorerad*rhabcorerad))*(rhablen/rhabcyls)/1000 vil_xarea=PI*rhabvilrad*rhabvilrad vil_volume=vil_xarea*rhabvillen/1000 vil_sa=PI*rhabvilrad*2*rhabvillen int slice_vil = numvilli/rhabcyls echo {slice_vil} for (cyl = 1; cyl <= rhabcyls; cyl=cyl+1) /*******rhodopsin activation and inactivation***********/ create rhodopsin mrhod[{cyl}] setfield mrhod[{cyl}] \ slice {cyl} \ total_villi {numvilli} \ slice_villi {slice_vil} \ villus_vol {vil_volume} \ villus_xarea {vil_xarea} \ villus_sa {vil_sa} \ inact_const {Krkcat*Krkf*RKArrtot/(Krkcat+Krkb)} \ len {rhabvillen} \ radius {rhabvilrad} \ depletion {deplete_power} \ factor[1] 1 factor[2] 1.9 factor[3] 2.7 factor[4] 3.4 factor[5] 4.02 \ factor[6] 4.56 factor[7] 5.0 factor[8] 5.4 factor[9] 5.74 factor[0] 0 \ units {umole} cumvalue=0 for (i=1; i<10; i=i+1) value=1/{sqrt {i}} cumvalue=cumvalue+value setfield mrhod[{cyl}] factor[{i}] {cumvalue} end addmsg light mrhod[{cyl}] ISOM state create randomspike inact[{cyl}] setfield inact[{cyl}] min_amp 0 max_amp 1.0 rate 0 addmsg mrhod[{cyl}] inact[{cyl}] RATE inact_rate addmsg inact[{cyl}] mrhod[{cyl}] INACT state /*** calcium feedback to arrestin activity ***/ /* setfield RKcomplex[{cyl}] form {RKform} pow 1 thresh {RKthresh} halfmax {RKhalf} sign 1 addmsg {capath}[{cyl}] RKcomplex[{cyl}] FEEDBACK Conc {RKwhich} */ /********* G protein *******************************/ /*** Gprotein pools ***/ create enzyme mrhoGprot[{cyl}] setfield mrhoGprot[{cyl}] kf {Kgf} kb {Kgb} kcat {Kgcat} type {quant} units {umole} pool2D Ga[{cyl}] {rhabrad} {rhabrad-rhabvillen} {rhablen/rhabcyls} 0 {quant} {umole} conservepool Gprot[{cyl}] {Gtot} {slice_volume} {quant} {umole} pool2D Ginact[{cyl}] {rhabrad} {rhabrad-rhabvillen} {rhablen/rhabcyls} 0 {quant} {umole} /*** messages to set up reaction ***/ addmsg mrhod[{cyl}] mrhoGprot[{cyl}] RHODOPSIN effective slice_vol slice_xarea slice_sa addmsg mrhod[{cyl}] Gprot[{cyl}] VOLUME slice_vol addmsg Gprot[{cyl}] mrhoGprot[{cyl}] SUBSTRATE Conc addmsg mrhoGprot[{cyl}] Ga[{cyl}] RXN0MOLES deltacat addmsg mrhoGprot[{cyl}] Ga[{cyl}] VOLUME vol SAin SAout /*** decrement Gprot conservepool by Ga and mrhoGprot amount ***/ addmsg mrhoGprot[{cyl}] Gprot[{cyl}] MOLES complex_quant addmsg Ga[{cyl}] Gprot[{cyl}] MOLES quantity /*** degradation of active Ga & production of Ginact ***/ create reaction gadeg[{cyl}] setfield gadeg[{cyl}] kf {Khyd} addmsg Ga[{cyl}] gadeg[{cyl}] SUBSTRATE quantity addmsg gadeg[{cyl}] Ga[{cyl}] RXN1 kf addmsg gadeg[{cyl}] Ginact[{cyl}] RXN0MOLES kfsubs addmsg Ga[{cyl}] Ginact[{cyl}] VOLUME vol SAin SAout addmsg Ginact[{cyl}] Gprot[{cyl}] MOLES quantity /******** plc reaction and GAP activity ***************/ /*** pool of PLCtot and plcGa ***/ pool2D plcGqa[{cyl}] {rhabrad} {rhabrad-rhabvillen} {rhablen/rhabcyls} 0 {quant} {umole} conservepool PLC[{cyl}] {plctot} {slice_volume} {quant} {umole} /*** volume and SA messages */ addmsg Ga[{cyl}] plcGqa[{cyl}] VOLUME vol SAin SAout addmsg Ga[{cyl}] PLC[{cyl}] VOLUME vol /*** reaction between PLC and Ga ***/ create reaction Ga_plc[{cyl}] setfield Ga_plc[{cyl}] kf {Kplcf} kb {Kplcb} addmsg Ga[{cyl}] Ga_plc[{cyl}] SUBSTRATE quantity addmsg PLC[{cyl}] Ga_plc[{cyl}] SUBSTRATE Conc addmsg plcGqa[{cyl}] Ga_plc[{cyl}] PRODUCT quantity addmsg Ga_plc[{cyl}] Ga[{cyl}] RXN2MOLES kbprod kfsubs addmsg Ga_plc[{cyl}] plcGqa[{cyl}] RXN2MOLES kfsubs kbprod /*** decrement PLC and Gprot conservepools by plcGa amount ***/ addmsg plcGqa[{cyl}] PLC[{cyl}] MOLES quantity addmsg plcGqa[{cyl}] Gprot[{cyl}] MOLES quantity /*** degradation of plcGa via GAP activity ***/ create reaction GAP[{cyl}] setfield GAP[{cyl}] kf {Kgap} addmsg plcGqa[{cyl}] GAP[{cyl}] SUBSTRATE quantity addmsg GAP[{cyl}] plcGqa[{cyl}] RXN1 kf addmsg GAP[{cyl}] Ginact[{cyl}] RXN0MOLES kfsubs /*****************IP3 production by PLC action on PIP2 ************/ /*** pool of PIP2 (IP3 already created) ***/ /*** don't use conserve pool because IP3 diffuses and degrads in multiple compartments ***/ pool2D pip2[{cyl}] {rhabrad} {rhabrad-rhabvillen} {rhablen/rhabcyls} {piptot} {quant} {umole} pool2D plcPI[{cyl}] {rhabrad} {rhabrad-rhabvillen} {rhablen/rhabcyls} 0 {quant} {umole} create reaction plc_pip[{cyl}] setfield plc_pip[{cyl}] kf {Kpif} kb {Kpib} /*** messages to compute enzyme complex ***/ addmsg pip2[{cyl}] plc_pip[{cyl}] SUBSTRATE Conc addmsg plcGqa[{cyl}] plc_pip[{cyl}] SUBSTRATE quantity addmsg plcPI[{cyl}] plc_pip[{cyl}] PRODUCT quantity addmsg plc_pip[{cyl}] plcGqa[{cyl}] RXN2MOLES kbprod kfsubs addmsg plc_pip[{cyl}] pip2[{cyl}] RXN2MOLES kbprod kfsubs addmsg plc_pip[{cyl}] plcPI[{cyl}] RXN2MOLES kfsubs kbprod /* volume messages from enzyme to substrate and product pools */ addmsg plcGqa[{cyl}] plcPI[{cyl}] VOLUME vol SAin SAout addmsg plcGqa[{cyl}] pip2[{cyl}] VOLUME vol SAin SAout addmsg plcGqa[{cyl}] {ip3path}[{cyl}] VOLUME vol SAin SAout /*** reaction to create ip3 and produce plc and Ginact***/ create reaction plcPIgap[{cyl}] setfield plcPIgap[{cyl}] kf {Kpicat2} addmsg plcPI[{cyl}] plcPIgap[{cyl}] SUBSTRATE quantity addmsg plcPIgap[{cyl}] plcPI[{cyl}] RXN1 kf addmsg plcPIgap[{cyl}] {ip3path}[{cyl}] RXN0MOLES kfsubs addmsg plcPIgap[{cyl}] Ginact[{cyl}] RXN0MOLES kfsubs /*** reaction to create ip3 and regenerate plcGqa***/ create reaction plcPIenz[{cyl}] setfield plcPIenz[{cyl}] kf {Kpicat1} addmsg plcPI[{cyl}] plcPIenz[{cyl}] SUBSTRATE quantity addmsg plcPIenz[{cyl}] plcPI[{cyl}] RXN1 kf addmsg plcPIenz[{cyl}] {ip3path}[{cyl}] RXN0MOLES kfsubs addmsg plcPIenz[{cyl}] plcGqa[{cyl}] RXN0MOLES kfsubs addmsg plcPI[{cyl}] Gprot[{cyl}] MOLES quantity addmsg plcPI[{cyl}] PLC[{cyl}] MOLES quantity end useclock /rhabmemb/#[] 2 ce / end function step2isom float isom while (isom == 0) showfield /rhabmemb/light state showfield /rhabmemb/mrhod[1] total_time step isom={getfield /rhabmemb/mrhod[1] last_isom} end isom=0 showfield /rhabmemb/light state end