//CHEMESIS2.0 //gabab-syn.g function gabab_synapse(vpath, length, radius, ip3path, type) str vpath, ip3path float length, radius str type echo {type} ce {vpath} float initcon = 0 /* volume of cylinder in Liters from cm units */ float vol=PI*radius*radius*length/1000 /* receptor + transmitter <-> bound_receptor */ conservepool unbound_recept {recept_tot} {vol} 0 1e-6 poolcyl bound_recept {length} {radius} {initcon} 0 1e-6 create reaction gaba_recept_rxn setfield gaba_recept_rxn kf {gabab_kf} kb {gabab_kb} addmsg unbound_recept gaba_recept_rxn SUBSTRATE Conc addmsg /stat/spike gaba_recept_rxn SUBSTRATE state addmsg bound_recept gaba_recept_rxn PRODUCT Conc addmsg gaba_recept_rxn bound_recept RXN2 kfsubs kbprod addmsg bound_recept unbound_recept CONC Conc /* bound_receptor + Gprot <-> recept-gaba-Gprot -> bound_receptor + Galfstar */ /**** Old formulation, using mmenz **** **** This has no unbinding of G from receptor after producing G alpha poolcyl RgabaGprot {length} {radius} {initcon} 0 1e-6 conservepool Gprot {Gprot_syn} {vol} 0 1e-6 create reaction RG_Gprot_rxn setfield RG_Gprot_rxn kf {gabab_gf} kb {gabab_gb} addmsg bound_recept RG_Gprot_rxn SUBSTRATE Conc addmsg Gprot RG_Gprot_rxn SUBSTRATE Conc addmsg RgabaGprot RG_Gprot_rxn PRODUCT Conc addmsg RG_Gprot_rxn bound_recept RXN2 kbprod kfsubs addmsg RG_Gprot_rxn RgabaGprot RXN2 kfsubs kbprod addmsg RgabaGprot unbound_recept CONC Conc addmsg RgabaGprot Gprot CONC Conc poolcyl Galfstar {length} {radius} {initcon} 0 1e-6 create mmenz RGGprot_enz setfield RGGprot_enz Vmax {gabab_gcat} addmsg RgabaGprot RGGprot_enz ENZ Conc addmsg RGGprot_enz Galfstar RXN0 product addmsg Galfstar Gprot CONC Conc *** end of old formulation ****/ poolcyl Galfstar {length} {radius} {initcon} 0 1e-6 poolcyl Gbg {length} {radius} {initcon} 0 1e-6 conservepool Gprot {Gprot_syn} {vol} 0 1e-6 create enzyme RgabaGprot setfield RgabaGprot kf {gabab_gf} kb {gabab_gb} kcat {gabab_gcat} type 0 units 1e-6 vol {vol} addmsg bound_recept RgabaGprot ENZ Conc addmsg Gprot RgabaGprot SUBSTRATE Conc addmsg RgabaGprot bound_recept RXN2 kbprod kfsubs addmsg RgabaGprot Galfstar RXN0MOLES deltacat addmsg RgabaGprot Gbg RXN0MOLES deltacat addmsg RgabaGprot unbound_recept CONC complex_conc addmsg RgabaGprot Gprot CONC complex_conc /* Galphastar -> Ginact */ poolcyl Ginact {length} {radius} {initcon} 0 1e-6 create reaction galfdeg setfield galfdeg kf {Khyd} addmsg Galfstar galfdeg SUBSTRATE Conc addmsg galfdeg Galfstar RXN1 kf addmsg galfdeg Ginact RXN0 kfsubs addmsg Ginact Gprot CONC Conc addmsg Galfstar Gprot CONC Conc /* plc + galfstar <-> plc-galpha */ conservepool plctot {plc_syn} {vol} 0 1e-6 poolcyl plcGa {length} {radius} {initcon} 0 1e-6 create reaction plc_rxn setfield plc_rxn kf {Kplcf} kb {Kplcb} addmsg Galfstar plc_rxn SUBSTRATE Conc addmsg plctot plc_rxn SUBSTRATE Conc addmsg plcGa plc_rxn PRODUCT Conc addmsg plc_rxn plcGa RXN2 kfsubs kbprod addmsg plc_rxn Galfstar RXN2 kbprod kfsubs addmsg plcGa plctot CONC Conc addmsg plcGa Gprot CONC Conc /***** GAP activity of PLC causes degradation of PLC-Ga ***/ create reaction GAP setfield GAP kf {Kgap} addmsg plcGa GAP SUBSTRATE Conc addmsg GAP plcGa RXN1 kf addmsg GAP Ginact RXN0 kfsubs if (type=="mm") /***** plc + pip2 <-> ip3 + plc using mm kinetics ****/ conservepool pip2 {piptot} {vol} 0 1e-6 create mmenz pip2ip3 /* divide the total activity over compartments 5-10 * ideally, would want to set Kpicat1 to correct value, and * send 1/5 of quantity to each compartment.*/ setfield pip2ip3 Vmax {Kpicat1/5} Km {({Kpicat1}+{Kpib})/{Kpif}} addmsg plcGa pip2ip3 ENZ quantity addmsg pip2 pip2ip3 SUBSTRATE Conc int i for (i=5; i<=10; i=i+1) addmsg pip2ip3 {ip3path}[{i}] RXN0MOLES product addmsg {ip3path}[{i}] pip2 CONC Conc end /***** end of plc + pip2 <-> ip3 + plc using mm kinetics ****/ else /***** plc + pip2 <-> plcPI -> ip3 + plc using enzyme formulation ***/ poolcyl pip2 {length} {radius} {piptot} 0 1e-6 poolcyl plcPI {length} {radius} {initcon} 0 1e-6 create reaction plc_pip setfield plc_pip kf {Kpif} kb {Kpib} /*** messages to compute enzyme complex ***/ addmsg pip2 plc_pip SUBSTRATE Conc addmsg plcGa plc_pip SUBSTRATE quantity addmsg plcPI plc_pip PRODUCT quantity addmsg plc_pip plcGa RXN2MOLES kbprod kfsubs addmsg plc_pip plcPI RXN2MOLES kfsubs kbprod addmsg plc_pip pip2 RXN2MOLES kbprod kfsubs /* conserve pool messages */ addmsg plcPI Gprot MOLES quantity addmsg plcPI plctot MOLES quantity /*** reaction to create ip3 and produce plc and Ginact***/ create reaction plcPIgap setfield plcPIgap kf {Kpicat2} addmsg plcPI plcPIgap SUBSTRATE quantity addmsg plcPIgap plcPI RXN1 kf addmsg plcPIgap Ginact RXN0MOLES kfsubs /* ideally, should distribute ip3 to several compartments, but * can't do that with the present code, so ip3 from GAP goes to 6 and * ip3 with plcGa regenerated goes to 9 ***/ addmsg plcPIgap {ip3path}[6] RXN0MOLES kfsubs /** reaction to create ip3 and regenerate plcGqa ***/ create reaction plcPIenz setfield plcPIenz kf {Kpicat1} addmsg plcPI plcPIenz SUBSTRATE quantity addmsg plcPIenz plcPI RXN1 kf addmsg plcPIenz plcGa RXN0MOLES kfsubs addmsg plcPIenz {ip3path}[9] RXN0MOLES kfsubs /*** end of reaction formulation of enzymes ***/ end /*** inactivation of Gbg - assume that Gbg combines with inactive Galpha *** thus it's inacivation rate should be similar to that of Galpha ***/ addmsg GAP Gbg RXN1 kf end