//genesis // This simulation generates IP3-dependent Ca2+ threshold dynamics // when IP3 step-up pulse and transient Ca2+ infulx applied. include DoiCaModel.g /* main scripts */ float normdt = 1e-06 /* 0 < t < 0.1, 0.51 < t < 2 */ float finedt = 1e-08 /* 0.5 < t < 0.51 */ float slowdt = 1e-05 /* 0.1 < t < 0.5, 2 < t < 10 */ float plotdt = 0.0001 float IP3conc = 0.1 /* default value */ setfield /kinetics/mGluR/100Hz5Glu is_running 0 /* remove mGluR pathway */ setfield /kinetics/Influx/100Hz5PFCa-in kf 0 /* remove AMPAR pathway */ setfield /kinetics/Influx/CF input -200 /* eliminate CF input */ echo "" echo "# This simulation generates IP3-dependent Ca2+ threshold dynamics." echo "# It takes very long time (10 days / Pentium 4 PC) to complete Fig.8F." echo "#" echo "# To see and save one example of Ca2+ time course, type" echo "# makedynamics IP3concentration(log10 M) Ca2+influx(#)" echo "# Exmanple: Ca2+ time course with 1 uM IP3 and 10000 Ca2+ ions" echo "# makedynamics -6 10000" echo "#" echo "# To generate whole Ca2+ dynamics in Fig.8F, type" echo "# makedynamicsloop -7.5 0.1 -4.5 0 100 25000" echo "# [IP3] is varied from -7.5 to -4.5 (log M) with a step of 0.1, " echo "# and applied Ca2+ ions are varied from 0 to 25000 with a step of 100." echo "# If you would like more accurate results, use finer steps." echo "# We recommend you to divide the parameter space and use a PC cluster, " echo "# with no graphical mode, 'genesis -nox fig8F.g'." echo "" function makedynamics (now_log10IP3, now_Canum) float now_log10IP3 int now_CFnum float now_realIP3 = {pow 10 {now_log10IP3 + 6}} float now_CFkf = {now_Canum * 4166.6 / 5000} /* Equilibrium at the basal state for 0.5 sec */ /* initialze */ setfield /kinetics/PLC/IP3_PSD CoInit 0.1 setfield /kinetics/IP3deg/IP3_spine CoInit 0.1 setfield /kinetics/Influx/CF_pool CoInit 0 setfield /kinetics/Influx/CF-in kf 0 setfield /kinetics/PLC/IP3_PSD slave_enable 0 setfield /kinetics/IP3deg/IP3_spine slave_enable 0 setfield /kinetics/Influx/CF_pool slave_enable 0 reset setclock 0 {normdt} setclock 1 {normdt} setclock 3 {plotdt} MAXTIME = 0.5 step {MAXTIME} -time /* 0 < t < 0.5 */ /* Change [IP3] and Start Ca2+ entry */ setfield /kinetics/PLC/IP3_PSD CoInit {now_realIP3} setfield /kinetics/IP3deg/IP3_spine CoInit {now_realIP3} setfield /kinetics/Influx/CF_pool CoInit 10 setfield /kinetics/Influx/CF-in kf {now_CFkf} setfield /kinetics/PLC/IP3_PSD slave_enable 4 setfield /kinetics/IP3deg/IP3_spine slave_enable 4 setfield /kinetics/Influx/CF_pool slave_enable 4 setclock 0 {finedt} setclock 1 {finedt} MAXTIME = 0.002 /* Ca2+ entry for 2 msec */ step {MAXTIME} -time /* 0.5 < t < 0.502 */ /* Stop Ca2+ entry */ setfield /kinetics/Influx/CF_pool CoInit 0 setfield /kinetics/Influx/CF-in kf 0 setclock 0 {finedt} setclock 1 {finedt} MAXTIME = 0.008 step {MAXTIME} -time /* 0.502 < t < 0.51 */ /* Apply normdt */ setclock 0 {normdt} setclock 1 {normdt} MAXTIME = 1.49 step {MAXTIME} -time /* 0.51 < t < 2 */ /* save data */ do_save_named_plot /graphs/conc2/Ca.Co {"./simresult/fig8F/CaRes_IP3" @ {now_log10IP3} @ "Canum" @ {now_Canum} @ "_Ca.plot"} echo "saved at IP3 =" {now_realIP3} "uM and Ca2+ influx =" {now_Canum} "ions" end function makedynamicsloop (start_log10IP3, step_log10IP3, end_log10IP3, start_Canum, step_Canum, end_Canum) float start_log10IP3 float step_log10IP3 float end_log10IP3 int start_Canum int step_Canum int end_Canum float now_log10IP3 int now_Canum end_log10IP3 = end_log10IP3 + step_log10IP3 / 2 end_Canum = end_Canum + step_Canum / 2 for(now_log10IP3 = start_log10IP3; now_log10IP3 <= end_log10IP3; now_log10IP3 = now_log10IP3 + step_log10IP3) for(now_Canum = start_Canum; now_Canum <= end_Canum; now_Canum = now_Canum + step_Canum) makedynamics {now_log10IP3} {now_Canum} end end echo "Finally, Simulation has done!" echo "Type 'quit' to exit GENESIS/kinetikit" end