prcs: Producing diffs from 0.58 to parpat-storage-film.3.
Index: 0.58/xgraph.g
--- 0.58/xgraph.g Mon, 24 Jul 2000 17:38:55 +0200 hugo (purkinje/20_xgraph.g 1.13.1.1.1.1.2.1.2.1 644)
+++ parpat-storage-film.3/xgraph.g Wed, 27 Sep 2000 11:39:30 +0200 hugo (purkinje/20_xgraph.g 1.13.1.1.1.1.2.1.2.1.1.1 640)
@@ -23,6 +23,11 @@
// xgraph.g : xgraph functionality
+
+//v default color for plots
+
+int iDefaultPlotColor = 38
+
int include_xgraph
if ( {include_xgraph} == 0 )
@@ -49,7 +54,7 @@
function XGraphPlotColor
- //- get next available color
+ //- get next color
int color = {getfield /xgraphs/graph cNextColor}
@@ -79,7 +84,7 @@
//- modulo 64 to get a legal value
- color = {color + 18} % 64
+ color = {color + 19} % 64
//- increment the color count
@@ -194,7 +199,7 @@
function XGraphNextPlotMode(mode)
-str path
+str mode
//v result of function
@@ -1172,6 +1177,7 @@
xmax {runtime / 1000} \
ymin -0.1 \
ymax 0.05 \
+ bg white \
XUnits "t (sec)"
//- add a button to clear the graph
@@ -1228,7 +1234,7 @@
//- add an initialized field for allocated colors
addfield /xgraphs/graph cNextColor -descr "next color to allocate"
- setfield /xgraphs/graph cNextColor 1
+ setfield /xgraphs/graph cNextColor {iDefaultPlotColor}
//- set clock to use for graph
@@ -1481,6 +1487,12 @@
//- register next output mode
XGraphNextPlotMode {xcOutputValue}
+
+ // reset next plot color
+
+ //! don't do this, read the comments in XCellCBAddPlot why.
+
+ //setfield /xgraphs/graph cNextColor {iDefaultPlotColor}
end
Index: 0.58/xcell.g
--- 0.58/xcell.g Thu, 30 Mar 2000 16:43:16 +0200 hugo (purkinje/21_xcell.g 1.1.1.6.1.5.2.6.1.1.2.1 644)
+++ parpat-storage-film.3/xcell.g Wed, 27 Sep 2000 11:39:30 +0200 hugo (purkinje/21_xcell.g 1.1.1.6.1.5.2.6.1.1.2.1.1.2 640)
@@ -117,6 +117,9 @@
//////////////////////////////////////////////////////////////////////////////
+include movie.g
+
+
//v bool to indicate first toggle for tabchannel has been created
int bButtonsCreated = 0
@@ -129,6 +132,10 @@
str strXCLibrary = "XCLib"
+//v movie handle for xcell widget
+
+str xcellMovieHandle = ""
+
///
/// SH: XCellElectrodeName
@@ -1964,13 +1971,46 @@
-offlabel "No Electrodes" \
-script "XCellSetupElectrodes <v>"
- //- create label as seperator
+/*
+** original code from -r 0
+**
+*/
+/* //- create label as seperator */
+
+/* create xlabel /xcell/sep3 \ */
+/* -xgeom 70% \ */
+/* -ygeom 6:graph.top \ */
+/* -wgeom 30% \ */
+/* -title "" */
+
+ //- create button for film settings
- create xlabel /xcell/sep3 \
+ create xbutton /xcell/filmSettings \
-xgeom 70% \
- -ygeom 6:graph.top \
- -wgeom 30% \
- -title ""
+ -ygeom 4:graph.top \
+ -wgeom 20% \
+ -title "Settings" \
+ -script "echo Film settings"
+
+ //- create toggle to enable filming
+
+ create xtoggle /xcell/filmToggle \
+ -xgeom 0:filmSettings.right \
+ -ygeom 4:graph.top \
+ -wgeom 10% \
+ -title "Film" \
+ -script "XCellCBScheduleMovie <value>"
+
+ //- remove previous movie images
+
+ sh "rm 2>/dev/null -f /tmp/movies/*"
+
+ //- create movie elements
+
+ sh "mkdir 2>/dev/null /tmp/movies"
+
+ xcellMovieHandle \
+ = {MovieCreateElements /xcell/ /tmp/movies/purkinje 0 0}
//- create toggle to change normalized / absolute output
@@ -2177,6 +2217,10 @@
//! the field cNextColor should be considered private,
//! but read the comments below to understand why I had to
//! read it as if it is public.
+ //!
+ //! With this public read it becomes more difficult to decide if the
+ //! graph should do a reset (and skipping back to the default color)
+ //! Modularity with genesis scripts can be tough...
//- get allocated color
@@ -2210,6 +2254,66 @@
XCellAddElectrode {path} {electrode} {color}
end
+ end
+end
+
+
+///
+/// SH: XCellCBScheduleMovie
+///
+/// PA: movieHandle...: movie handle to schedule
+/// bOn...........: 1 == schedule, 0 == do not schedule
+///
+/// DE: Rechedule a movie handle
+///
+/// NO: It seems impossible to pass variable from Xodus script fields,
+/// hardcoded {{xcellMovieHandle}}
+///
+
+function XCellCBScheduleMovie(bOn)
+
+int bOn
+
+ //- if turn on
+
+ if ( {bOn} == 1 )
+
+ //- diag's
+
+ echo "Enabling movie "{{xcellMovieHandle}}
+
+ //- schedule
+
+ MovieSchedule \
+ {{xcellMovieHandle}} \
+ /tmp/movies/purkinje \
+ {getstat -step} \
+ 10000000
+
+ //- else if turn off
+
+ elif ( {bOn} == 0 )
+
+ //- diag's
+
+ echo "Disabling movie "{{xcellMovieHandle}}
+
+ //- schedule
+
+ MovieSchedule \
+ {{xcellMovieHandle}} \
+ /tmp/movies/purkinje \
+ 0 \
+ 0
+
+ //- else
+
+ else
+
+ //- diag's
+
+ echo "XCellCBScheduleMovie : Wrong mode requested for movie"
+
end
end
Index: 0.58/settings.g
--- 0.58/settings.g Wed, 05 Jan 2000 11:55:14 +0100 hugo (purkinje/23_settings.g 1.8.2.2.1.1.1.1.1.1 644)
+++ parpat-storage-film.3/settings.g Fri, 29 Sep 2000 20:06:06 +0200 hugo (purkinje/23_settings.g 1.8.2.2.1.1.1.1.1.1.2.2 640)
@@ -23,6 +23,12 @@
// settings.g : control panel settings
+
+//v normal path for xcell script
+
+str cbXCell
+
+
int include_settings
if ( {include_settings} == 0 )
@@ -33,9 +39,13 @@
include actions.g
-//v normal path for xcell script
+function SettingsPFStored
-str cbXCell
+end
+
+function SettingsPFNovel
+
+end
///
@@ -815,7 +825,7 @@
create xlabel nooffset \
-ygeom 3:pulse \
- -title "Offset not available"
+ -title "Amplitude not available"
//- hide the offset dialog
@@ -825,7 +835,7 @@
create xlabel nowidth \
-ygeom 3:offset \
- -title "Width not available"
+ -title "Width not available"
//- hide the width dialog
@@ -1476,7 +1486,7 @@
str element
- foreach element ( {el {cellpath}/##[][TYPE=synchan]} )
+ foreach element ( {el {cellpath}/##[][TYPE=channelC3]} )
//- for vitro mode
Index: 0.58/info.g
--- 0.58/info.g Fri, 29 Oct 1999 21:02:10 +0200 hugo (purkinje/28_info.g 1.4.2.1 644)
+++ parpat-storage-film.3/info.g Wed, 27 Sep 2000 11:39:30 +0200 hugo (purkinje/28_info.g 1.4.2.1.1.1 640)
@@ -125,7 +125,7 @@
-xgeom 200 \
-ygeom 330 \
-wgeom 450 \
- -hgeom 200
+ -hgeom 230
//- make created form current element
Index: 0.58/credits.txt
--- 0.58/credits.txt Mon, 25 Jan 1999 16:30:02 +0100 hugo (purkinje/30_credits.tx 1.1 644)
+++ parpat-storage-film.3/credits.txt Sun, 11 Jul 1999 22:37:50 +0200 hugo (purkinje/30_credits.tx 1.1.1.2 640)
@@ -2,9 +2,9 @@
Purkinje tutorial : credits
---------------------------
+Purkinje cell model. Erik De Schutter and Jim M. Bower
functional ideas ... Erik De Schutter, erik@bbf.uia.ac.be
genesis coding ..... Hugo Cornelis, hugo@bbf.uia.ac.be
+documentation ...... Hugo Cornelis, Erik De Schutter
-general feedback ... Reinoud Maex, Erik De Schutter
-
-
+general feedback ... Reinoud Maex, Volker Steuber
Index: 0.58/control.g
--- 0.58/control.g Mon, 24 Jul 2000 16:00:59 +0200 hugo (purkinje/31_control.g 1.14.1.1.2.1.1.1.1.1.1.1.1.2 664)
+++ parpat-storage-film.3/control.g Wed, 27 Sep 2000 11:39:30 +0200 hugo (purkinje/31_control.g 1.14.1.1.2.1.1.1.1.1.1.1.1.2.1.1 640)
@@ -181,10 +181,20 @@
int steps = time / 1000 / dt
- //- give an informational message
-
echo "Running simulation for "{steps}" steps"
+ // prepare the input files
+
+ filecnt = {rand_int {filenum/2 - 75} {filenum/2 - 1}}
+ infile1 = (infile) @ (filecnt) @ ".dat"
+ echo stored PF pattern is {infile1}
+ setfield /infileStored nx {spinenum} ny 1 filename {infile1} leave_open 1
+
+ filecnt = {rand_int {filenum/2} {filenum/2 + 74}}
+ infile1 = (infile) @ (filecnt) @ ".dat"
+ echo novel PF pattern is {infile1}
+ setfield /infileNovel nx {spinenum} ny 1 filename {infile1} leave_open 1
+
//- do the simulation steps
step {steps} -background
@@ -339,6 +349,18 @@
ActionClimbingStart {strength}
+ elif (action == 4)
+
+ echo "Presenting stored PF pattern"
+
+ ActionPFPatternStart "/infileStored"
+
+ elif (action == 5)
+
+ echo "Presenting novel PF pattern"
+
+ ActionPFPatternStart "/infileNovel"
+
//- else we have an unkown action
else
@@ -640,7 +662,7 @@
create xdialog time \
-value {runtime} \
- -title "time (msec) : " \
+ -title "Time (msec) : " \
-script "SetRunTime <v>"
//- create the time step dialog
@@ -756,18 +778,48 @@
-title "Settings" \
-script "SettingsIClamp"
+
+ create xbutton pfstored \
+ -wgeom 70% \
+ -title "Stored PF pattern" \
+ -script "ToggleAction 4"
+
+ //- create settings button
+
+ create xbutton PFStoredSettings \
+ -xgeom 0:last.right \
+ -ygeom 0:iClamp \
+ -wgeom 30% \
+ -title "Settings" \
+ -script "SettingsPFStored"
+
+
+ create xbutton pfnovel \
+ -wgeom 70% \
+ -title "Novel PF pattern" \
+ -script "ToggleAction 5"
+
+ //- create settings button
+
+ create xbutton PFNovelSettings \
+ -xgeom 0:last.right \
+ -ygeom 0:pfstored \
+ -wgeom 30% \
+ -title "Settings" \
+ -script "SettingsPFNovel"
+
//- create the parallel fiber button
create xbutton parallel \
-wgeom 70% \
- -title "Activate parallel fibers" \
+ -title "Random synchr PFs" \
-script "ToggleAction 1"
//- create settings button
create xbutton parallelSettings \
-xgeom 0:last.right \
- -ygeom 0:iClamp \
+ -ygeom 0:pfnovel \
-wgeom 30% \
-title "Settings" \
-script "SettingsParallel"
@@ -806,7 +858,7 @@
//- create information label
- create xlabel info \
+/* create xlabel info \
-title "Simulation information"
//- create help button
@@ -825,6 +877,7 @@
-wgeom 50% \
-title "Credits" \
-script "InfoCredits"
+*/
//- show the control panel
Index: 0.58/bounds.txt
--- 0.58/bounds.txt Thu, 18 Mar 1999 14:33:34 +0100 hugo (purkinje/34_bounds.txt 1.3 644)
+++ parpat-storage-film.3/bounds.txt Sun, 11 Jul 1999 20:24:33 +0200 hugo (purkinje/34_bounds.txt 1.4 640)
@@ -8,7 +8,7 @@
##
## (C) 1998-2002 BBF-UIA
##
-## see our site at http://bbf-www.uia.ac.be/ for more information regarding
+## see our site at http://www.bbf.uia.ac.be/ for more information regarding
## the Purkinje cell and genesis simulation software.
##
##
@@ -37,50 +37,46 @@
# 6-9. Same as 2-5, normalized mode
#
#
-# 1 2 3 4 5 6 7 8 9
+# 1 2 3 4 5 6 7 8 9
#
-_Vm -0.09 0.02 -0.1 0.05 -0.09 0.02 -0.1 0.05
-Ca_pool_Ca 0 0.001 0 0.001 0 0.001 0 0.001
-# adapted to normalized mode
-CaP_Ik 5e-12 3e-11 0 1e-10 0.0025 0.0015 0 0.05
-# end
-CaT_Ik 4e-13 6e-13 0 1.3e-12 4e-13 6e-13 0 1.3e-12
-K2_Ik -4e-11 -1e-13 -6e-11 0 -4e-11 -1e-13 -6e-11 0
-KA_Ik -2e-11 0 -3e-10 0 -2e-11 0 -3e-10 0
-KC_Ik -1e-11 -7e-11 -2e-10 0 -1e-11 -7e-11 -2e-10 0
-KM_Ik -9e-13 0 -9e-12 0 -9e-13 0 -9e-12 0
-Kdr_Ik -5e-10 0 -7e-10 0 -5e-10 0 -7e-10 0
-NaF_Ik 0 1.6e-09 0 7e-10 0 1.6e-09 0 7e-10
-NaP_Ik 2e-11 2e-10 0 4e-10 2e-11 2e-10 0 4e-10
-h1_Ik 2e-12 1e-11 0 6e-11 2e-12 1e-11 0 6e-11
-h2_Ik 6e-13 1.8e-12 0 1e-11 6e-13 1.8e-12 0 1e-11
-excitatory_Ik 0 2.8e-11 0 4e-11 0 2.8e-11 0 4e-11
-inhibitory_Ik -6e-10 0 -1e-09 0 -6e-10 0 -1e-09 0
-CaP_Gk 1e-11 6e-11 0 2e-10 1e-11 6e-11 0 2e-10
-CaT_Gk 3.5e-12 4.8e-12 0 1e-11 3.5e-12 4.8e-12 0 1e-11
-K2_Gk 0 2e-10 0 3e-10 0 2e-10 0 3e-10
-KA_Gk 3e-09 1.5e-06 0 6e-09 3e-09 1.5e-06 0 6e-09
-KC_Gk 5e-11 3e-10 0 7e-10 5e-11 3e-10 0 7e-10
-KM_Gk 2e-12 1.4e-11 0 2.5e-10 2e-12 1.4e-11 0 2.5e-10
-Kdr_Gk 0 1e-09 0 2.5e-08 0 1e-09 0 2.5e-08
-NaF_Gk 2e-09 1.2e-08 0 3.5e-08 2e-09 1.2e-08 0 3.5e-08
-NaP_Gk 1e-10 2e-09 0 4e-09 1e-10 2e-09 0 4e-09
-h1_Gk 7.5e-11 4e-10 0 1.6e-09 7.5e-11 4e-10 0 1.6e-09
-h2_Gk 3e-11 6e-11 0 2e-10 3e-11 6e-11 0 2e-10
-# adapted to normalized mode
-excitatory_Gk 0 6e-10 0 1e-09 0 5e-09 0 8e-09
-inhibitory_Gk 0 3e-09 0 1e-08 0 1.5e-08 0 3e-08
-# end
-CaP_Ek 0.117 0.127 0.07 0.14 0.117 0.127 0.07 0.14
-CaT_Ek 0.11 0.126 0.07 0.14 0.11 0.126 0.07 0.14
-K2_Ek 0 1 0 1 0 1 0 1
-KA_Ek 0 1 0 1 0 1 0 1
-KC_Ek 0 1 0 1 0 1 0 1
-KM_Ek 0 1 0 1 0 1 0 1
-Kdr_Ek 0 1 0 1 0 1 0 1
-NaF_Ek 0 1 0 1 0 1 0 1
-NaP_Ek 0 1 0 1 0 1 0 1
-h1_Ek 0 1 0 1 0 1 0 1
-h2_Ek 0 1 0 1 0 1 0 1
-excitatory_Ek 0 1 0 1 0 1 0 1
-inhibitory_Ek 0 1 0 1 0 1 0 1
+_Vm -0.08 0.02 -0.1 0.05 -0.08 0.02 -0.1 0.05
+Ca_pool_Ca 0.0 0.005 0.0 0.010 0.0 0.005 0.0 0.010
+CaP_Ik 0.0 1e-10 0.0 6e-10 0.0 0.05 0.0 0.08
+CaT_Ik 0.0 1e-12 0.0 6e-11 0.0 0.003 0 0.004
+K2_Ik -1e-11 0.0 -2e-11 0.0 -0.02 0.0 -0.04 0.0
+KA_Ik -5e-12 0.0 -5e-10 0.0 -0.001 0.0 -0.004 0.0
+KC_Ik -1e-11 0.0 -4e-10 0.0 -0.003 0.0 -0.005 0.0
+KM_Ik -2e-13 0.0 -4e-13 0.0 -0.02 0.0 -0.03 0.0
+Kdr_Ik -2e-11 0.0 -2e-8 0.0 -0.0005 0.0 -0.001 0.0
+NaF_Ik 0.0 1.6e-9 0.0 3e-7 0.0 0.0001 0.0 0.001
+NaP_Ik 0.0 2e-10 0.0 2e-9 0.0 0.02 0.0 0.07
+h1_Ik 0.0 2e-12 0.0 2e-11 -0.001 0.002 -0.004 0.004
+h2_Ik 0.0 1e-12 0.0 1e-11 -0.001 0.001 -0.002 0.002
+excitatory_Ik 0.0 2e-11 0.0 4e-11 0.0 3e-10 0.0 1e-9
+inhibitory_Ik -6e-10 0.0 -1e-09 0.0 -3e-10 0.0 -5e-10 0.0
+CaP_Gk 0.0 2e-9 0.0 6e-9 0.0 0.5 0.0 1.0
+CaT_Gk 0.0 1e-10 0.0 4e-10 0.0 0.02 0.0 0.03
+K2_Gk 0.0 2e-10 0.0 1e-9 0.0 0.5 0.0 0.8
+KA_Gk 0.0 5e-11 0.0 7e-9 0.0 0.01 0.0 0.03
+KC_Gk 0.0 5e-10 0.0 5e-9 0.0 0.05 0.0 0.05
+KM_Gk 0.0 1e-11 0.0 5e-10 0.0 0.3 0.0 0.5
+Kdr_Gk 0.0 1e-9 0.0 3e-7 0.0 0.01 0.0 0.05
+NaF_Gk 0.0 1e-7 0.0 6e-6 0.0 0.01 0.0 0.03
+NaP_Gk 0.0 1e-8 0.0 3e-8 0.0 0.1 0.0 1.0
+h1_Gk 0.0 2e-10 0.0 1e-9 0.0 0.02 0.0 0.1
+h2_Gk 0.0 1e-10 0.0 5e10 0.0 0.005 0.0 0.01
+excitatory_Gk 0.0 5e-10 0.0 7e-10 0.0 5e-09 0.0 8e-09
+inhibitory_Gk 0.0 1e-09 0.0 1e-08 0.0 1e-08 0.0 2e-08
+CaP_Ek 0.10 0.14 0.07 0.14 0.10 0.14 0.07 0.14
+CaT_Ek 0.10 0.14 0.07 0.14 0.10 0.14 0.07 0.14
+K2_Ek -0.09 1 -0.09 1 -0.09 1 -0.09 1
+KA_Ek -0.09 -0.08 -0.09 -0.08 -0.09 -0.08 -0.09 -0.08
+KC_Ek -0.09 -0.08 -0.09 -0.08 -0.09 -0.08 -0.09 -0.08
+KM_Ek -0.09 -0.08 -0.09 -0.08 -0.09 -0.08 -0.09 -0.08
+Kdr_Ek -0.09 -0.08 -0.09 -0.08 -0.09 -0.08 -0.09 -0.08
+NaF_Ek 0.04 0.05 0.04 0.05 0.04 0.05 0.04 0.05
+NaP_Ek 0.04 0.05 0.04 0.05 0.04 0.05 0.04 0.05
+h1_Ek -0.04 -0.02 -0.04 -0.02 -0.04 -0.02 -0.04 -0.02
+h2_Ek -0.04 -0.02 -0.04 -0.02 -0.04 -0.02 -0.04 -0.02
+excitatory_Ek -0.01 0.01 -0.01 0.01 -0.01 0.01 -0.01 0.01
+inhibitory_Ek -0.09 -0.07 -0.09 -0.07 -0.09 -0.07 -0.09 -0.07
Index: 0.58/actions.g
--- 0.58/actions.g Mon, 24 Jul 2000 16:00:59 +0200 hugo (purkinje/35_actions.g 1.13.1.1 644)
+++ parpat-storage-film.3/actions.g Fri, 29 Sep 2000 20:06:06 +0200 hugo (purkinje/35_actions.g 1.13.1.3 640)
@@ -23,6 +23,11 @@
// actions.g : parallel fiber and climbing fiber actions
+
+include mapping.g
+
+int PFPatternSteps = 0
+
int include_actions
if ( {include_actions} == 0 )
@@ -30,8 +35,7 @@
include_actions = 1
-include mapping.g
-
+int PFPatternDelaySteps = bidelay / dt
//v climbing step delay while climbing fiber is firing
@@ -42,6 +46,93 @@
int climbingSynapse = 0
+function ActionPFPattern(inelement)
+
+str inelement
+
+ if (PFPatternSteps == 0)
+
+ for (i = 0; {i <= spinenum - 1}; i = i + 1)
+ setfield {cellpath}/par_presyn[{i}] z {getfield {inelement} val[{i}][{0}]}
+ end
+ PFPatternSteps = 1
+
+ elif (PFPatternSteps == 1)
+
+ for (i = 0; {i <= spinenum - 1}; i = i + 1)
+ setfield {cellpath}/par_presyn[{i}] z 0
+ end
+ PFPatternSteps = 2
+
+ elif ((PFPatternSteps > 1) && (PFPatternSteps < PFPatternDelaySteps))
+
+ PFPatternSteps = PFPatternSteps + 1
+
+ elif (PFPatternSteps == PFPatternDelaySteps)
+
+ setfield {cellpath}/bc_presyn z {biamp}
+ PFPatternSteps = PFPatternDelaySteps + 1
+
+ elif (PFPatternSteps > PFPatternDelaySteps)
+
+ setfield {cellpath}/bc_presyn z 0
+ PFPatternSteps = 0
+ setfield /actions/pfpattern command ""
+
+ end
+
+end
+
+
+
+function ActionPFPatternInit(path)
+
+str path
+
+ create script_out {path}pfpattern
+ setfield /actions/pfpattern command ""
+
+ // create {spinenum} presynaptic elements for synchronous PF input
+ // add messages to the AMPA receptors
+ for (i = 0; {i <= spinenum - 1}; i = i + 1)
+ create neutral {cellpath}/par_presyn[{i}]
+ disable {cellpath}/par_presyn[{i}]
+ setfield {cellpath}/par_presyn[{i}] z 0
+ addmsg {cellpath}/par_presyn[{i}] \
+ {cellpath}/spine[{i}]/head[{i}]/par ACTIVATION z
+ end
+
+ // create the basket cell presynaptic element
+ // add messages to GABA receptors
+ create neutral {cellpath}/bc_presyn
+ disable {cellpath}/bc_presyn
+ setfield {cellpath}/bc_presyn z 0
+ addmsg {cellpath}/bc_presyn {cellpath}/soma/basket ACTIVATION z
+ addmsg {cellpath}/bc_presyn {cellpath}/main[]/basket ACTIVATION z
+
+ // create the input elements
+ create disk_in /infileStored
+ create disk_in /infileNovel
+
+
+
+end
+
+
+
+function ActionPFPatternStart(inelement)
+
+str inelement
+
+ PFPatternSteps = 0
+
+ setfield /actions/pfpattern \
+ command "ActionPFPattern "{inelement}
+
+end
+
+
+
///
/// SH: ActionBasket
///
@@ -92,6 +183,7 @@
end
+
///
/// SH: ActionBasketInit
///
@@ -149,7 +241,7 @@
//- set field in script object
setfield /actions/basket \
- command "ActionBasket "{level / dt}
+ command "ActionBasket "{level}
// call reset on the script to avoid bugs
@@ -423,7 +515,7 @@
//- set field in script object
setfield /actions/climbing \
- command "ActionClimbing "{strength / dt}
+ command "ActionClimbing "{strength}
// call reset on the script to avoid bugs
@@ -1359,7 +1451,7 @@
//- set field of script object
setfield /actions/parallel \
- command "ActionParallelLocal "{branch}" "{level / dt}
+ command "ActionParallelLocal "{branch}" "{level}
// call reset on the script to avoid bugs
@@ -1414,7 +1506,7 @@
//- set field of script object
setfield /actions/parallel \
- command "ActionParallelDistr "{number}" "{level / dt}
+ command "ActionParallelDistr "{number}" "{level}
// call reset on the script to get around some bugs
@@ -1452,6 +1544,10 @@
//- initialize synchronous parallel fiber
ActionParallelInit /actions/
+
+ ActionPFPatternInit /actions/
+
+
end
Index: 0.58/TUTORIAL.g
--- 0.58/TUTORIAL.g Tue, 04 Jan 2000 15:16:41 +0100 hugo (purkinje/36_TUTORIAL.g 1.1.1.3.1.6.3.1.1.1 640)
+++ parpat-storage-film.3/TUTORIAL.g Wed, 27 Sep 2000 11:39:30 +0200 hugo (purkinje/36_TUTORIAL.g 1.1.1.3.1.6.3.1.1.1.2.2 640)
@@ -1,4 +1,5 @@
//genesis - Purkinje cell version M9 genesis2 master script
+// Copyright: Theoretical Neurobiology, Born-Bunge Foundation - UA, 1998-1999.
//
// $Id: purkinje-0.58-purkinje-parpat-storage-film.3.patch 1.2 Thu, 04 Apr 2002 11:55:56 +0200 hugo $
//
@@ -22,14 +23,14 @@
//- give header
-echo "-----------------------------------------------------------------"
+echo "-------------------------------------------------------------------------"
echo
echo "Purkinje tutorial, version " -n
// $Format: "echo \"$ProjectVersion$ ($ProjectDate$)\""$
echo "Release1.3.2 (Thu, 04 Apr 2002 12:46:38 +0200)"
echo " Simulation script"
echo
-echo "-----------------------------------------------------------------"
+echo "-------------------------------------------------------------------------"
//- include default definitions
@@ -263,6 +264,10 @@
//- set clock for refresh elements
setclock 10 {dt * 239}
+
+//- set clock for movie elements
+
+setclock 11 {dt * outputRate}
//- set delay in steps for climbing fiber
Index: 0.58/README
--- 0.58/README Mon, 27 Dec 1999 19:02:49 +0100 hugo (purkinje/37_README 1.2.1.1 644)
+++ parpat-storage-film.3/README Wed, 27 Sep 2000 11:39:30 +0200 hugo (purkinje/37_README 1.2.1.1.1.1 640)
@@ -1,12 +1,12 @@
$Id: purkinje-0.58-purkinje-parpat-storage-film.3.patch 1.2 Thu, 04 Apr 2002 11:55:56 +0200 hugo $
-README file for the Tutorial Simulation of a cerebellar Purkinje cell
+README file for the Tutorial simulation of a cerebellar Purkinje cell
This tutorial is based upon a GENESIS simulation of a cerebellar Purkinje
cell, modeled and fine-tuned by Erik de Schutter. The tutorial assumes that
you have a basic knowledge of the Purkinje cell and its synaptic inputs. It
-gives visual insights in how different properties as concentrations and
-channel conductances vary and interfere within a real Purkinje cell.
+gives visual insight in how different properties as concentrations and
+channel conductances vary and interact within a real Purkinje cell.
In order to run the simulation, you need the following :
@@ -26,21 +26,32 @@
right hand corner of your display.
2) Change to the directory where the TUTORIAL.g script resides. If you are
- reading this file, you will probably be in the wright directory.
+ reading this file, you should be in the correct directory. The tutorial
+ will create some files in this directory, so you will need to have write
+ privileges. If the tutorial is installed in a system directory for which
+ you do not have write permission, copy the tutorial files to a directory
+ in which you are allowed to create files.
+
+3) At the shell prompt, type "./TUTORIAL". (This Unix shell script will
+ create any needed files and will start GENESIS using the TUTORIAL.g
+ script. You do not need to start GENESIS yourself.) After a long
+ initialization period, a window with a Purkinje cell and a control panel
+ will appear. To move on, click the 'Help' button in the control panel.
+ This will popup the on-line help window. These instructions, which you
+ will need to read before running the tutorial, are contained in the file
+ "help.txt".
+
+Ambitious users can run this tutorial using different model setup files
+(all the files titled Purk_*, including the morphology file, can be
+changed). Before you do so you need to reconfigure the simulation by
+running "genesis makeconfig.g". After some diagnostic messages, you
+should return to the shell prompt.
+
+For feedback write:
+Concepts and documentation: Erik de Schutter - erik@bbf.uia.ac.be
+Bugs: Hugo Cornelis - hugo@bbf.uia.ac.be
-3) Type at the shell prompt : "TUTORIAL".
+Consult our webpages at bbf-www.uia.ac.be for relevant publications and
+additional documentation concerning the model scripts.
-
-If you get an error message like this one :
-
-<Purk_chanload> line 65 <- <Purk_chanload> line 80 <- <TUTORIAL.g> line 142
-** Error - can't read file 'Purk_NaF.tab': wrong version #50331648
-
-Then retry making a configuration file for the tutorial by typing at the UNIX
-shell prompt "genesis makeconfig.g". Afterwards type "genesis TUTORIAL.g".
-If this does not work, consult your system administrator or a person with
-knowledge of UNIX and the Genesis neural simulator.
-
-
-Erik de Schutter - erik@bbf.uia.ac.be
-Hugo Cornelis - hugo@bbf.uia.ac.be
+Copyright for all the scripts: Born-Bunge Foundation - UA 1998-1999.
Index: 0.58/Purk_syn.g
--- 0.58/Purk_syn.g Mon, 27 Dec 1999 18:17:48 +0100 hugo (purkinje/38_Purk_syn.g 1.3 644)
+++ parpat-storage-film.3/Purk_syn.g Fri, 29 Sep 2000 20:06:06 +0200 hugo (purkinje/38_Purk_syn.g 1.5 640)
@@ -10,8 +10,9 @@
** E. De Schutter and J.M. Bower: An active membrane model of the
** cerebellar Purkinje cell: II. Simulation of synaptic responses.
** Journal of Neurophysiology 71: 401-419 (1994).
-** http://bbf-www.uia.ac.be/TNB/TNB_pub7.html
+** http://www.bbf.uia.ac.be/TNB/TNB_pub7.html
** Consult this reference for sources of experimental data.
+** See http://www.bbf.uia.ac.be/models/PM9.shtml for general model info.
*/
// CONSTANTS
@@ -44,14 +45,14 @@
/* asynchronously firing channel */
if (!({exists GABA}))
- create synchan GABA
+ create channelC3 GABA
end
setfield GABA Ek {E_GABA} tau1 {0.93e-3} tau2 {26.50e-3} \
gmax {G_GABA} frequency {0.0}
/* synchronously firing channel */
if (!({exists GABA2}))
- create synchan GABA2
+ create channelC2 GABA2
end
setfield GABA2 Ek {E_GABA} tau1 {0.93e-3} tau2 {26.50e-3} \
gmax {GB_GABA}
@@ -64,7 +65,7 @@
/* asynchronously firing channel */
if (!({exists non_NMDA}))
- create synchan non_NMDA
+ create channelC3 non_NMDA
end
setfield non_NMDA Ek {E_non_NMDA} tau1 {0.50e-3} tau2 {1.20e-3} \
@@ -72,7 +73,7 @@
/* synchronously firing channel */
if (!({exists non_NMDA2}))
- create synchan non_NMDA2
+ create channelC2 non_NMDA2
end
setfield non_NMDA2 Ek {E_non_NMDA} tau1 {0.50e-3} tau2 {1.20e-3}
Index: 0.58/Purk_const.g
--- 0.58/Purk_const.g Mon, 27 Dec 1999 18:17:48 +0100 hugo (purkinje/39_Purk_const 1.3 644)
+++ parpat-storage-film.3/Purk_const.g Wed, 27 Sep 2000 11:39:30 +0200 hugo (purkinje/39_Purk_const 1.4 640)
@@ -14,9 +14,14 @@
echo Using Purkinje 2M9 preferences. Crank Nicholson method.
/* variables controlling hsolve integration */
float dt = 2.0e-5
-int tab_xdivs = 149; int tab_xfills = 2999
+int tab_xdivs = 149
+int tab_xfills = 2999
+
/* The model is quite sensitive to these values in NO_INTERP (caclmode=0) */
-float tab_xmin = -0.10; float tab_xmax = 0.05; float Ca_tab_max = 0.300
+float tab_xmin = -0.10
+float tab_xmax = 0.05
+float Ca_tab_max = 0.300
+
// only used for proto channels
float GNa = 1, GCa = 1, GK = 1, Gh = 1
/* cable parameters */
Index: 0.58/Purk_cicomp.g
--- 0.58/Purk_cicomp.g Fri, 29 Oct 1999 21:02:10 +0200 hugo (purkinje/40_Purk_cicom 1.2 644)
+++ parpat-storage-film.3/Purk_cicomp.g Wed, 27 Sep 2000 11:39:30 +0200 hugo (purkinje/40_Purk_cicom 1.3 640)
@@ -13,12 +13,13 @@
** E. De Schutter and J.M. Bower: An active membrane model of the
** cerebellar Purkinje cell. I. Simulation of current clamps in slice.
** Journal of Neurophysiology 71: 375-400 (1994).
-** http://bbf-www.uia.ac.be/TNB/TNB_pub8.html
+** http://www.bbf.uia.ac.be/TNB/TNB_pub8.html
** E. De Schutter and J.M. Bower: An active membrane model of the
** cerebellar Purkinje cell: II. Simulation of synaptic responses.
** Journal of Neurophysiology 71: 401-419 (1994).
-** http://bbf-www.uia.ac.be/TNB/TNB_pub7.html
+** http://www.bbf.uia.ac.be/TNB/TNB_pub7.html
** Consult these references for sources of experimental data.
+** See http://www.bbf.uia.ac.be/models/PM9.shtml for general model info.
*/
Index: 0.58/Purk_chansave.g
--- 0.58/Purk_chansave.g Fri, 29 Oct 1999 21:02:10 +0200 hugo (purkinje/41_Purk_chans 1.2 644)
+++ parpat-storage-film.3/Purk_chansave.g Wed, 27 Sep 2000 11:39:30 +0200 hugo (purkinje/41_Purk_chans 1.3 640)
@@ -12,8 +12,9 @@
** E. De Schutter and J.M. Bower: An active membrane model of the
** cerebellar Purkinje cell. I. Simulation of current clamps in slice.
** Journal of Neurophysiology 71: 375-400 (1994).
-** http://bbf-www.uia.ac.be/TNB/TNB_pub8.html
+** http://www.bbf.uia.ac.be/TNB/TNB_pub8.html
** Consult this reference for sources of equations and experimental data.
+** See http://www.bbf.uia.ac.be/models/PM9.shtml for general model info.
*/
Index: 0.58/Purk_chanload.g
--- 0.58/Purk_chanload.g Fri, 29 Oct 1999 21:02:10 +0200 hugo (purkinje/42_Purk_chanl 1.2 644)
+++ parpat-storage-film.3/Purk_chanload.g Wed, 27 Sep 2000 11:39:30 +0200 hugo (purkinje/42_Purk_chanl 1.3 640)
@@ -13,8 +13,9 @@
** E. De Schutter and J.M. Bower: An active membrane model of the
** cerebellar Purkinje cell. I. Simulation of current clamps in slice.
** Journal of Neurophysiology 71: 375-400 (1994).
-** http://bbf-www.uia.ac.be/TNB/TNB_pub8.html
+** http://www.bbf.uia.ac.be/TNB/TNB_pub8.html
** Consult this reference for sources of equations and experimental data.
+** See http://www.bbf.uia.ac.be/models/PM9.shtml for general model info.
*/
@@ -126,7 +127,7 @@
/* Equations from the literature */
/* delayed rectifier type K current eq1
** Refs: Yamada (his equations are also for 22C) */
- if (!{exists Purk_Kdr})
+ if (!{exists Purk_dr})
create tabchannel Purk_Kdr
setfield Purk_Kdr Ek {EK} Gbar {GK} Ik 0 Gk 0 Xpower 2 \
Ypower 1 Zpower 0
Index: 0.58/random.g
--- 0.58/random.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/random.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/10_random.g 1.1 640)
@@ -0,0 +1,10 @@
+function rand_int(min, max)
+int min
+int max
+
+ int randint = {round {rand {min} {max}}}
+
+ return randint
+
+end
+
Index: 0.58/XPATREC9A.g
--- 0.58/XPATREC9A.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/XPATREC9A.g Fri, 29 Sep 2000 20:06:06 +0200 hugo (purkinje/b/11_XPATREC9A. 1.2 640)
@@ -0,0 +1,266 @@
+//genesis - Purkinje cell version M9 genesis2 master script
+
+// use the time to seed random number generator
+randseed
+
+// one spine for each of the 1474 spiny compts
+int spinenum = 1474
+int syncnum = 1000
+
+int filenum = 200
+int filecnt
+
+float bidelay = 0.001
+float biamp = 0.0
+
+float phertz = 28
+float ihertz = 1000
+
+int i, j, k, l
+float t
+str name, hstr
+include defaults
+include random
+
+str cellfile = "../patrecog/pfiles/Purk2M9s.p"
+str infile = "../patrecog/pfinput/PFeff_" @ (filenum) @ "_" @ (syncnum) @ "_"
+str infile1
+
+cellpath = "/Purkinje"
+
+include Purk_hficonst
+EREST_ACT = -0.055
+
+/* special scripts to create the prototypes */
+include Purk_chanload
+//include Purk_chansave
+include Purk_cicomp
+include Purk_syn
+
+//- set default output rate
+
+int outputRate = 10
+
+//- set default chanmode for solver : normalized
+
+int iChanMode = 5
+
+//- set default mode : in vitro
+// changed to in vivo
+
+int iVVMode = 0
+
+//- set default for current : current clamp on
+// changed to off
+
+int iCurrentMode = 0
+
+//- speed of climbing fiber volley (in sec)
+
+float delay = 0.00020
+
+//- strength of climbing fiber synapses
+
+float strength = 1.0
+
+//- speed of climbing fiber volley (in steps == delay / dt)
+//- this variable is set later on when dt is defined in an other module
+
+int delaysteps = 0.00020 / 1
+
+//- include the utility module, it is needed by multiple others modules,
+//- but since I do not like multiple includes, I include it here.
+
+include utility.g
+
+//- include the config module
+
+include config.g
+
+//- default we do not update the config file
+
+int bUpdateConfig = 0
+
+include info.g
+include bounds.g
+include config.g
+include control.g
+include xgraph.g
+include xcell.g
+
+//- ensure that all elements are made in the library
+
+ce /library
+
+//- make prototypes of channels and synapses
+
+make_Purkinje_chans
+make_Purkinje_syns
+
+//- set the firing frequencies at the library level
+//- this forces the hsolve object to reserve space for these fields
+
+setfield /library/GABA frequency {ihertz}
+setfield /library/non_NMDA frequency {phertz}
+
+//- add fields to the library elements to respect the vivo / vitro mode
+
+addfield /library/GABA freqmode -description "frequency operation mode"
+addfield /library/non_NMDA freqmode -description "frequency operation mode"
+
+//- set the added fields to the current vivo/vitro mode
+
+setfield /library/GABA freqmode {iVVMode}
+setfield /library/non_NMDA freqmode {iVVMode}
+
+//- add fields to distinguish between inhibition and excitation
+
+addfield /library/GABA synmode -description "synaptic mode"
+addfield /library/non_NMDA synmode -description "synaptic mode"
+
+//- set field to "in" for inhibition
+
+setfield /library/GABA synmode "in"
+
+//- set field to "ex" for excitation
+
+setfield /library/non_NMDA synmode "ex"
+
+//- make prototypes of compartements and spines
+
+make_Purkinje_comps
+make_Purkinje_spines
+
+//- read cell data from .p file
+
+readcell {cellfile} {cellpath}
+
+//- read configuration file
+
+ConfigRead {cellfile} {cellpath}
+
+//- initialize actions
+
+ActionsInit
+
+//- initialize boundaries
+
+BoundsInit "bounds.txt"
+
+//- set simulation clocks
+for (i = 0; i <= 8; i = i + 1)
+ setclock {i} {dt}
+end
+
+//- set the output clock
+
+setclock 9 {dt * outputRate}
+
+//- set clock for refresh elements
+
+setclock 10 {dt * 239}
+
+
+//- set delay in steps for climbing fiber
+
+delaysteps = {delay / dt}
+
+//- setup the hines solver
+
+echo preparing hines solver {getdate}
+ce {cellpath}
+create hsolve solve
+
+//- We change to current element solve and then set the fields of the parent
+//- (solve) to get around a bug in the "." parsing of genesis
+
+ce solve
+
+setfield . \
+ path "../##[][TYPE=compartment]" \
+ comptmode 1 \
+ chanmode {iChanMode} \
+ calcmode 0
+
+/*
+setfield . \
+ path "../b#[][TYPE=compartment],../main[][TYPE=compartment]" \
+ comptmode 1 \
+ chanmode {iChanMode} \
+ calcmode 0
+*/
+
+
+//- create all info widgets
+
+InfoCreate
+
+//- create all settings widgets
+
+SettingsCreate
+
+//- setup the solver with all messages from the settings
+
+call /Purkinje/solve SETUP
+
+//- Use method to Crank-Nicolson
+
+setmethod 11
+
+//- go back to simulation element
+
+ce {cellpath}
+
+//- set colorscale
+
+xcolorscale rainbow3
+
+//- create the xcell widget
+
+XCellCreate
+
+//- create the graph widget
+
+XGraphCreate
+
+//- set default state
+
+XCellReset
+
+//- reset graph
+
+XGraphReset
+
+//- create the control panel
+
+ControlPanelCreate
+
+//- reset all elements
+
+reset
+
+//- to further initialize all elements (e.g. colors of xcell element)
+//- we do one step in the simulation and then a reset
+
+step 1
+
+//- update the firing frequencies for stellate and parallel fibers
+
+UpdateFrequencies
+
+//- reset all elements
+
+reset
+
+// switch to in vivo mode
+
+ToggleMode 1
+
+echo Purkinje cell equilibration...
+
+step 0.1 -time
+
+setfield /xgraphs/graph xmin 0.1
+xshow /xgraphs
+XCellCBAddPlot /Purkinje/soma
+
Index: 0.58/Purk_ticonst.g
--- 0.58/Purk_ticonst.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_ticonst.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/12_Purk_ticon 1.1 640)
@@ -0,0 +1,75 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/* This file defines important simulation parameters, including gmax
+** and Ek for all channels. Everything uses SI units. */
+
+// version with tonic inhibition
+// note that ihertz has to be set to 0 in the main script
+
+echo Using Purkinje 2M9 preferences. Crank Nicholson method.
+/* variables controlling hsolve integration */
+float dt = 2.0e-5
+int tab_xdivs = 149
+int tab_xfills = 2999
+
+/* The model is quite sensitive to these values in NO_INTERP (caclmode=0) */
+float tab_xmin = -0.10
+float tab_xmax = 0.05
+float Ca_tab_max = 0.300
+
+// only used for proto channels
+float GNa = 1, GCa = 1, GK = 1, Gh = 1
+/* cable parameters */
+float CM = 0.0164 // *9 relative to passive
+float RMs = 1.000 // /3.7 relative to passive comp
+float RMd = 3.0 // standard value, no GABA channels on main dendrite and spines
+float RMtd = 0.8902 // tonic inhibition to thick dendrite
+float RMsd = 0.4323 // tonic inhibition to spiny dendrite
+float RA = 2.50
+/* preset constants */
+float ELEAK = -0.0800 // Ek value used for the leak conductance
+float EREST_ACT = -0.0680 // Vm value used for the RESET
+/* concentrations */
+float CCaO = 2.4000 //external Ca as in normal slice Ringer
+float CCaI = 0.000040 //internal Ca in mM
+//diameter of Ca_shells
+float Shell_thick = 0.20e-6
+float CaTau = 0.00010 // Ca_concen tau
+/* Currents: Reversal potentials in V and max conductances S/m^2 */
+/* Codes: s=soma, m=main dendrite, t=thick dendrite, d=spiny dendrite */
+float ENa = 0.045
+float GNaFs = 75000.0
+float GNaPs = 10.0
+float ECa = 0.0125*{log {CCaO/CCaI}} // 0.135 V
+float GCaTs = 5.00
+float GCaTm = 5.00
+float GCaTt = 5.00
+float GCaTd = 5.00
+float GCaPm = 45.0
+float GCaPt = 45.0
+float GCaPd = 45.0
+float EK = -0.085
+float GKAs = 150.0
+float GKAm = 20.0
+float GKdrs = 6000.0
+float GKdrm = 600.0
+float GKMs = 0.400
+float GKMm = 0.100
+float GKMt = 0.130
+float GKMd = 0.130
+float GKCm = 800.0
+float GKCt = 800.0
+float GKCd = 800.0
+float GK2m = 3.90
+float GK2t = 3.90
+float GK2d = 3.90
+float Eh = -0.030
+float Ghs = 3.00
+/* synapses: */
+float E_GABA = -0.080
+float G_GABA = 0.0//70.0/dt
+float GB_GABA = 20.0/dt
+float E_non_NMDA = 0.000
+float G_par_syn = 750.0/dt
+float G_cli_syn = 150.0/dt
Index: 0.58/Purk_spiticomp.g
--- 0.58/Purk_spiticomp.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_spiticomp.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/13_Purk_spiti 1.1 640)
@@ -0,0 +1,264 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/**********************************************************************
+** Sets up active membrane Purkinje cell compartment prototypes
+** and dendritic spine prototypes.
+** E. De Schutter, Caltech, 1991-1992
+** This version sets up a passive soma and active dendritic compartments
+** with stellate cell synapses.
+**********************************************************************/
+
+/* References:
+** E. De Schutter and J.M. Bower: An active membrane model of the
+** cerebellar Purkinje cell. I. Simulation of current clamps in slice.
+** Journal of Neurophysiology 71: 375-400 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub8.html
+** E. De Schutter and J.M. Bower: An active membrane model of the
+** cerebellar Purkinje cell: II. Simulation of synaptic responses.
+** Journal of Neurophysiology 71: 401-419 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub7.html
+** E. De Schutter and J.M. Bower: Simulated responses of cerebellar
+** Purkinje cells are independent of the dendritic location of granule
+** cell synaptic inputs. Proceedings of the National Academy of Sciences
+** USA 91: 4736-4740 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub6.html
+** Consult these references for sources of experimental data.
+** See http://www.bbf.uia.ac.be/models/PM9.shtml for general model info.
+*/
+
+function make_Purkinje_comps
+/* separate function so we can have local variables */
+
+ float len, dia, surf, shell_vol, shell_dia
+ int i
+
+ echo making Purkinje compartment library...
+
+ /* make spherical soma prototype with sodium currents*/
+ len = 0.00e-6
+ dia = 20.0e-6
+ surf = dia*dia*{PI}
+ shell_dia = 2*{Shell_thick}
+ shell_vol = (3*dia*dia*shell_dia - 3*dia*shell_dia*shell_dia + shell_dia*shell_dia*shell_dia)*{PI}/6.0
+ if (!({exists Purk_soma}))
+ create compartment Purk_soma
+ end
+ setfield Purk_soma Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMs}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ /* make main dendrite prototype with fast Ca currents */
+ len = 200.00e-6
+ dia = 2.00e-6
+ surf = len*dia*{PI}
+ shell_vol = (2*dia*shell_dia - shell_dia*shell_dia)*len*{PI}/4.0
+ if (!({exists Purk_maind}))
+ create compartment Purk_maind
+ end
+ setfield Purk_maind Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ if (!({exists Purk_thickd})) // Lets copy before we add currents
+
+ copy Purk_maind Purk_thickd
+ end
+ if (!({exists Purk_spinyd})) // Lets copy before we add currents
+
+ copy Purk_maind Purk_spinyd
+ end
+
+ copy Purk_CaT Purk_maind/CaT
+ addmsg Purk_maind Purk_maind/CaT VOLTAGE Vm
+ addmsg Purk_maind/CaT Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/CaT Gbar {{GCaTm}*surf}
+ copy Purk_KA Purk_maind/KA
+ addmsg Purk_maind Purk_maind/KA VOLTAGE Vm
+ addmsg Purk_maind/KA Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KA Gbar {{GKAm}*surf}
+ copy Purk_Kdr Purk_maind/Kdr
+ addmsg Purk_maind Purk_maind/Kdr VOLTAGE Vm
+ addmsg Purk_maind/Kdr Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/Kdr Gbar {{GKdrm}*surf}
+ copy Purk_KM Purk_maind/KM
+ addmsg Purk_maind Purk_maind/KM VOLTAGE Vm
+ addmsg Purk_maind/KM Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KM Gbar {{GKMm}*surf}
+ copy Purk_CaP Purk_maind/CaP
+ addmsg Purk_maind Purk_maind/CaP VOLTAGE Vm
+ addmsg Purk_maind/CaP Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/CaP Gbar {{GCaPm}*surf}
+ copy Purk_KC Purk_maind/KC
+ addmsg Purk_maind Purk_maind/KC VOLTAGE Vm
+ addmsg Purk_maind/KC Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KC Gbar {{GKCm}*surf}
+ copy Purk_K2 Purk_maind/K2
+ addmsg Purk_maind Purk_maind/K2 VOLTAGE Vm
+ addmsg Purk_maind/K2 Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/K2 Gbar {{GK2m}*surf}
+ create Ca_concen Purk_maind/Ca_pool
+ setfield Purk_maind/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_maind/CaT Purk_maind/Ca_pool I_Ca Ik
+ addmsg Purk_maind/CaP Purk_maind/Ca_pool I_Ca Ik
+ addmsg Purk_maind/Ca_pool Purk_maind/KC CONCEN Ca
+ addmsg Purk_maind/Ca_pool Purk_maind/K2 CONCEN Ca
+ create nernst Purk_maind/Ca_nernst
+ setfield Purk_maind/Ca_nernst Cin {CCaI} Cout {CCaO} valency {2} \
+ scale {1.0} T {37}
+ addmsg Purk_maind/Ca_pool Purk_maind/Ca_nernst CIN Ca
+ addmsg Purk_maind/Ca_nernst Purk_maind/CaP EK E
+ addmsg Purk_maind/Ca_nernst Purk_maind/CaT EK E
+
+ /* make thick dendrite prototype with fast Ca current */
+ /* similar to main dendrite but has CaP and no Kdr */
+ /* passive prototype already copied from Purk_maind */
+ setfield Purk_thickd Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMtd}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ copy Purk_CaT Purk_thickd/CaT
+ addmsg Purk_thickd Purk_thickd/CaT VOLTAGE Vm
+ addmsg Purk_thickd/CaT Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/CaT Gbar {{GCaTt}*surf}
+ copy Purk_CaP Purk_thickd/CaP
+ addmsg Purk_thickd Purk_thickd/CaP VOLTAGE Vm
+ addmsg Purk_thickd/CaP Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/CaP Gbar {{GCaPt}*surf}
+ copy Purk_KM Purk_thickd/KM
+ addmsg Purk_thickd Purk_thickd/KM VOLTAGE Vm
+ addmsg Purk_thickd/KM Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/KM Gbar {{GKMt}*surf}
+ copy Purk_KC Purk_thickd/KC
+ addmsg Purk_thickd Purk_thickd/KC VOLTAGE Vm
+ addmsg Purk_thickd/KC Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/KC Gbar {{GKCt}*surf}
+ copy Purk_K2 Purk_thickd/K2
+ addmsg Purk_thickd Purk_thickd/K2 VOLTAGE Vm
+ addmsg Purk_thickd/K2 Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/K2 Gbar {{GK2t}*surf}
+ create Ca_concen Purk_thickd/Ca_pool
+ setfield Purk_thickd/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_thickd/CaT Purk_thickd/Ca_pool I_Ca Ik
+ addmsg Purk_thickd/CaP Purk_thickd/Ca_pool I_Ca Ik
+ addmsg Purk_thickd/Ca_pool Purk_thickd/KC CONCEN Ca
+ addmsg Purk_thickd/Ca_pool Purk_thickd/K2 CONCEN Ca
+ create nernst Purk_thickd/Ca_nernst
+ setfield Purk_thickd/Ca_nernst Cin {CCaI} Cout {CCaO} \
+ valency {2} scale {1.0} T {37}
+ addmsg Purk_thickd/Ca_pool Purk_thickd/Ca_nernst CIN Ca
+ addmsg Purk_thickd/Ca_nernst Purk_thickd/CaP EK E
+ addmsg Purk_thickd/Ca_nernst Purk_thickd/CaT EK E
+ for (i=1; i<=2; i = i+1)
+ copy GABA Purk_thickd/stell{i}
+ setfield Purk_thickd/stell{i} gmax {{G_GABA}/5*surf}
+ addmsg Purk_thickd/stell{i} Purk_thickd CHANNEL Gk Ek
+ addmsg Purk_thickd Purk_thickd/stell{i} VOLTAGE Vm
+ end
+
+ /* make spiny dendrite prototype with high threshold Ca current \
+ */
+ /* passive prototype already copied from Purk_maind */
+ setfield Purk_spinyd Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMsd}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ copy Purk_CaT Purk_spinyd/CaT
+ addmsg Purk_spinyd Purk_spinyd/CaT VOLTAGE Vm
+ addmsg Purk_spinyd/CaT Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/CaT Gbar {{GCaTd}*surf}
+ copy Purk_CaP Purk_spinyd/CaP
+ addmsg Purk_spinyd Purk_spinyd/CaP VOLTAGE Vm
+ addmsg Purk_spinyd/CaP Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/CaP Gbar {{GCaPd}*surf}
+ copy Purk_KM Purk_spinyd/KM
+ addmsg Purk_spinyd Purk_spinyd/KM VOLTAGE Vm
+ addmsg Purk_spinyd/KM Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/KM Gbar {{GKMd}*surf}
+ copy Purk_KC Purk_spinyd/KC
+ addmsg Purk_spinyd Purk_spinyd/KC VOLTAGE Vm
+ addmsg Purk_spinyd/KC Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/KC Gbar {{GKCd}*surf}
+ copy Purk_K2 Purk_spinyd/K2
+ addmsg Purk_spinyd Purk_spinyd/K2 VOLTAGE Vm
+ addmsg Purk_spinyd/K2 Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/K2 Gbar {{GK2d}*surf}
+ create Ca_concen Purk_spinyd/Ca_pool
+ setfield Purk_spinyd/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_spinyd/CaP Purk_spinyd/Ca_pool I_Ca Ik
+ addmsg Purk_spinyd/CaT Purk_spinyd/Ca_pool I_Ca Ik
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/KC CONCEN Ca
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/K2 CONCEN Ca
+ create nernst Purk_spinyd/Ca_nernst
+ setfield Purk_spinyd/Ca_nernst Cin {CCaI} Cout {CCaO} \
+ valency {2} scale {1.0} T {37}
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/Ca_nernst CIN Ca
+ addmsg Purk_spinyd/Ca_nernst Purk_spinyd/CaP EK E
+ addmsg Purk_spinyd/Ca_nernst Purk_spinyd/CaT EK E
+ copy GABA Purk_spinyd/stell
+ setfield Purk_spinyd/stell gmax {{G_GABA}*surf}
+ addmsg Purk_spinyd/stell Purk_spinyd CHANNEL Gk Ek
+ addmsg Purk_spinyd Purk_spinyd/stell VOLTAGE Vm
+end
+
+/*********************************************************************/
+function make_Purkinje_spines
+/* separate function so we can have local variables */
+/* one standard format, may be rescaled in attach_spines */
+/* Reference: Harris KM, Stevens JK: Dendritic spines of rat
+** cerebellar Purkinje cells: serial electron microscopy with
+** reference to their biophysical characteristics. J Neurosci 8: p
+** 4455-4469, 1988. */
+
+ float len, dia, surf, vol
+
+ /* make spine with average length and diameter */
+ /* make spine neck */
+ len = 0.66e-6
+ dia = 0.20e-6
+ surf = len*dia*{PI}
+ vol = len*dia*dia*{PI}/4.0
+ if (!({exists Purk_spine}))
+ create compartment Purk_spine
+ end
+ setfield Purk_spine Cm {{CM}*surf} \
+ Ra {4.0*{RA}*len/(dia*dia*{PI})} Em {ELEAK} \
+ initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 x {len} dia {dia} \
+ len {len}
+
+ /* make spine head */
+ len = 0.00e-6
+ // derived from average surface
+ dia = 0.54e-6
+ surf = dia*dia*{PI}
+ create compartment Purk_spine/head
+ setfield Purk_spine/head Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 \
+ x {dia} dia {dia} len {len}
+
+ /* make a combined prototype: neck+head */
+ addmsg Purk_spine/head Purk_spine RAXIAL Ra Vm
+ addmsg Purk_spine Purk_spine/head AXIAL Vm
+
+ copy Purk_spine Purk_spine2
+
+ /* put non-NMDA channel on combined prototype */
+ copy non_NMDA Purk_spine/head/par
+ setfield Purk_spine/head/par gmax {{G_par_syn}*surf}
+ addmsg Purk_spine/head Purk_spine/head/par VOLTAGE Vm
+ addmsg Purk_spine/head/par Purk_spine/head CHANNEL Gk Ek
+
+ /* put non-NMDA channel on combined prototype */
+ copy non_NMDA2 Purk_spine2/head/par2
+ setfield Purk_spine2/head/par2 gmax {{G_par_syn}*surf}
+ addmsg Purk_spine2/head Purk_spine2/head/par2 VOLTAGE Vm
+ addmsg Purk_spine2/head/par2 Purk_spine2/head CHANNEL Gk Ek
+
+end
+/*********************************************************************/
Index: 0.58/Purk_spicomp.g
--- 0.58/Purk_spicomp.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_spicomp.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/14_Purk_spico 1.1 640)
@@ -0,0 +1,256 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/**********************************************************************
+** Sets up active membrane Purkinje cell compartment prototypes
+** and dendritic spine prototypes.
+** E. De Schutter, Caltech, 1991-1992
+** This version sets up a passive soma and active dendritic compartments
+** with stellate cell synapses.
+**********************************************************************/
+
+/* References:
+** E. De Schutter and J.M. Bower: An active membrane model of the
+** cerebellar Purkinje cell. I. Simulation of current clamps in slice.
+** Journal of Neurophysiology 71: 375-400 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub8.html
+** E. De Schutter and J.M. Bower: An active membrane model of the
+** cerebellar Purkinje cell: II. Simulation of synaptic responses.
+** Journal of Neurophysiology 71: 401-419 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub7.html
+** E. De Schutter and J.M. Bower: Simulated responses of cerebellar
+** Purkinje cells are independent of the dendritic location of granule
+** cell synaptic inputs. Proceedings of the National Academy of Sciences
+** USA 91: 4736-4740 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub6.html
+** Consult these references for sources of experimental data.
+** See http://www.bbf.uia.ac.be/models/PM9.shtml for general model info.
+*/
+
+function make_Purkinje_comps
+/* separate function so we can have local variables */
+
+ float len, dia, surf, shell_vol, shell_dia
+ int i
+
+ echo making Purkinje compartment library...
+
+ /* make spherical soma prototype with sodium currents*/
+ len = 0.00e-6
+ dia = 20.0e-6
+ surf = dia*dia*{PI}
+ shell_dia = 2*{Shell_thick}
+ shell_vol = (3*dia*dia*shell_dia - 3*dia*shell_dia*shell_dia + shell_dia*shell_dia*shell_dia)*{PI}/6.0
+ if (!({exists Purk_soma}))
+ create compartment Purk_soma
+ end
+ setfield Purk_soma Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMs}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ /* make main dendrite prototype with fast Ca currents */
+ len = 200.00e-6
+ dia = 2.00e-6
+ surf = len*dia*{PI}
+ shell_vol = (2*dia*shell_dia - shell_dia*shell_dia)*len*{PI}/4.0
+ if (!({exists Purk_maind}))
+ create compartment Purk_maind
+ end
+ setfield Purk_maind Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ if (!({exists Purk_thickd})) // Lets copy before we add currents
+
+ copy Purk_maind Purk_thickd
+ end
+ if (!({exists Purk_spinyd})) // Lets copy before we add currents
+
+ copy Purk_maind Purk_spinyd
+ end
+
+ copy Purk_CaT Purk_maind/CaT
+ addmsg Purk_maind Purk_maind/CaT VOLTAGE Vm
+ addmsg Purk_maind/CaT Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/CaT Gbar {{GCaTm}*surf}
+ copy Purk_KA Purk_maind/KA
+ addmsg Purk_maind Purk_maind/KA VOLTAGE Vm
+ addmsg Purk_maind/KA Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KA Gbar {{GKAm}*surf}
+ copy Purk_Kdr Purk_maind/Kdr
+ addmsg Purk_maind Purk_maind/Kdr VOLTAGE Vm
+ addmsg Purk_maind/Kdr Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/Kdr Gbar {{GKdrm}*surf}
+ copy Purk_KM Purk_maind/KM
+ addmsg Purk_maind Purk_maind/KM VOLTAGE Vm
+ addmsg Purk_maind/KM Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KM Gbar {{GKMm}*surf}
+ copy Purk_CaP Purk_maind/CaP
+ addmsg Purk_maind Purk_maind/CaP VOLTAGE Vm
+ addmsg Purk_maind/CaP Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/CaP Gbar {{GCaPm}*surf}
+ copy Purk_KC Purk_maind/KC
+ addmsg Purk_maind Purk_maind/KC VOLTAGE Vm
+ addmsg Purk_maind/KC Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KC Gbar {{GKCm}*surf}
+ copy Purk_K2 Purk_maind/K2
+ addmsg Purk_maind Purk_maind/K2 VOLTAGE Vm
+ addmsg Purk_maind/K2 Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/K2 Gbar {{GK2m}*surf}
+ create Ca_concen Purk_maind/Ca_pool
+ setfield Purk_maind/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_maind/CaT Purk_maind/Ca_pool I_Ca Ik
+ addmsg Purk_maind/CaP Purk_maind/Ca_pool I_Ca Ik
+ addmsg Purk_maind/Ca_pool Purk_maind/KC CONCEN Ca
+ addmsg Purk_maind/Ca_pool Purk_maind/K2 CONCEN Ca
+ create nernst Purk_maind/Ca_nernst
+ setfield Purk_maind/Ca_nernst Cin {CCaI} Cout {CCaO} valency {2} \
+ scale {1.0} T {37}
+ addmsg Purk_maind/Ca_pool Purk_maind/Ca_nernst CIN Ca
+ addmsg Purk_maind/Ca_nernst Purk_maind/CaP EK E
+ addmsg Purk_maind/Ca_nernst Purk_maind/CaT EK E
+
+ /* make thick dendrite prototype with fast Ca current */
+ /* similar to main dendrite but has CaP and no Kdr */
+ /* passive prototype already copied from Purk_maind */
+ copy Purk_CaT Purk_thickd/CaT
+ addmsg Purk_thickd Purk_thickd/CaT VOLTAGE Vm
+ addmsg Purk_thickd/CaT Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/CaT Gbar {{GCaTt}*surf}
+ copy Purk_CaP Purk_thickd/CaP
+ addmsg Purk_thickd Purk_thickd/CaP VOLTAGE Vm
+ addmsg Purk_thickd/CaP Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/CaP Gbar {{GCaPt}*surf}
+ copy Purk_KM Purk_thickd/KM
+ addmsg Purk_thickd Purk_thickd/KM VOLTAGE Vm
+ addmsg Purk_thickd/KM Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/KM Gbar {{GKMt}*surf}
+ copy Purk_KC Purk_thickd/KC
+ addmsg Purk_thickd Purk_thickd/KC VOLTAGE Vm
+ addmsg Purk_thickd/KC Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/KC Gbar {{GKCt}*surf}
+ copy Purk_K2 Purk_thickd/K2
+ addmsg Purk_thickd Purk_thickd/K2 VOLTAGE Vm
+ addmsg Purk_thickd/K2 Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/K2 Gbar {{GK2t}*surf}
+ create Ca_concen Purk_thickd/Ca_pool
+ setfield Purk_thickd/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_thickd/CaT Purk_thickd/Ca_pool I_Ca Ik
+ addmsg Purk_thickd/CaP Purk_thickd/Ca_pool I_Ca Ik
+ addmsg Purk_thickd/Ca_pool Purk_thickd/KC CONCEN Ca
+ addmsg Purk_thickd/Ca_pool Purk_thickd/K2 CONCEN Ca
+ create nernst Purk_thickd/Ca_nernst
+ setfield Purk_thickd/Ca_nernst Cin {CCaI} Cout {CCaO} \
+ valency {2} scale {1.0} T {37}
+ addmsg Purk_thickd/Ca_pool Purk_thickd/Ca_nernst CIN Ca
+ addmsg Purk_thickd/Ca_nernst Purk_thickd/CaP EK E
+ addmsg Purk_thickd/Ca_nernst Purk_thickd/CaT EK E
+ for (i=1; i<=2; i = i+1)
+ copy GABA Purk_thickd/stell{i}
+ setfield Purk_thickd/stell{i} gmax {{G_GABA}/5*surf}
+ addmsg Purk_thickd/stell{i} Purk_thickd CHANNEL Gk Ek
+ addmsg Purk_thickd Purk_thickd/stell{i} VOLTAGE Vm
+ end
+
+ /* make spiny dendrite prototype with high threshold Ca current \
+ */
+ /* passive prototype already copied from Purk_maind */
+ copy Purk_CaT Purk_spinyd/CaT
+ addmsg Purk_spinyd Purk_spinyd/CaT VOLTAGE Vm
+ addmsg Purk_spinyd/CaT Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/CaT Gbar {{GCaTd}*surf}
+ copy Purk_CaP Purk_spinyd/CaP
+ addmsg Purk_spinyd Purk_spinyd/CaP VOLTAGE Vm
+ addmsg Purk_spinyd/CaP Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/CaP Gbar {{GCaPd}*surf}
+ copy Purk_KM Purk_spinyd/KM
+ addmsg Purk_spinyd Purk_spinyd/KM VOLTAGE Vm
+ addmsg Purk_spinyd/KM Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/KM Gbar {{GKMd}*surf}
+ copy Purk_KC Purk_spinyd/KC
+ addmsg Purk_spinyd Purk_spinyd/KC VOLTAGE Vm
+ addmsg Purk_spinyd/KC Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/KC Gbar {{GKCd}*surf}
+ copy Purk_K2 Purk_spinyd/K2
+ addmsg Purk_spinyd Purk_spinyd/K2 VOLTAGE Vm
+ addmsg Purk_spinyd/K2 Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/K2 Gbar {{GK2d}*surf}
+ create Ca_concen Purk_spinyd/Ca_pool
+ setfield Purk_spinyd/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_spinyd/CaP Purk_spinyd/Ca_pool I_Ca Ik
+ addmsg Purk_spinyd/CaT Purk_spinyd/Ca_pool I_Ca Ik
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/KC CONCEN Ca
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/K2 CONCEN Ca
+ create nernst Purk_spinyd/Ca_nernst
+ setfield Purk_spinyd/Ca_nernst Cin {CCaI} Cout {CCaO} \
+ valency {2} scale {1.0} T {37}
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/Ca_nernst CIN Ca
+ addmsg Purk_spinyd/Ca_nernst Purk_spinyd/CaP EK E
+ addmsg Purk_spinyd/Ca_nernst Purk_spinyd/CaT EK E
+ copy GABA Purk_spinyd/stell
+ setfield Purk_spinyd/stell gmax {{G_GABA}*surf}
+ addmsg Purk_spinyd/stell Purk_spinyd CHANNEL Gk Ek
+ addmsg Purk_spinyd Purk_spinyd/stell VOLTAGE Vm
+end
+
+/*********************************************************************/
+function make_Purkinje_spines
+/* separate function so we can have local variables */
+/* one standard format, may be rescaled in attach_spines */
+/* Reference: Harris KM, Stevens JK: Dendritic spines of rat
+** cerebellar Purkinje cells: serial electron microscopy with
+** reference to their biophysical characteristics. J Neurosci 8: p
+** 4455-4469, 1988. */
+
+ float len, dia, surf, vol
+
+ /* make spine with average length and diameter */
+ /* make spine neck */
+ len = 0.66e-6
+ dia = 0.20e-6
+ surf = len*dia*{PI}
+ vol = len*dia*dia*{PI}/4.0
+ if (!({exists Purk_spine}))
+ create compartment Purk_spine
+ end
+ setfield Purk_spine Cm {{CM}*surf} \
+ Ra {4.0*{RA}*len/(dia*dia*{PI})} Em {ELEAK} \
+ initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 x {len} dia {dia} \
+ len {len}
+
+ /* make spine head */
+ len = 0.00e-6
+ // derived from average surface
+ dia = 0.54e-6
+ surf = dia*dia*{PI}
+ create compartment Purk_spine/head
+ setfield Purk_spine/head Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 \
+ x {dia} dia {dia} len {len}
+
+ /* make a combined prototype: neck+head */
+ addmsg Purk_spine/head Purk_spine RAXIAL Ra Vm
+ addmsg Purk_spine Purk_spine/head AXIAL Vm
+
+ copy Purk_spine Purk_spine2
+
+ /* put non-NMDA channel on combined prototype */
+ copy non_NMDA Purk_spine/head/par
+ setfield Purk_spine/head/par gmax {{G_par_syn}*surf}
+ addmsg Purk_spine/head Purk_spine/head/par VOLTAGE Vm
+ addmsg Purk_spine/head/par Purk_spine/head CHANNEL Gk Ek
+
+ /* put non-NMDA channel on combined prototype */
+ copy non_NMDA2 Purk_spine2/head/par2
+ setfield Purk_spine2/head/par2 gmax {{G_par_syn}*surf}
+ addmsg Purk_spine2/head Purk_spine2/head/par2 VOLTAGE Vm
+ addmsg Purk_spine2/head/par2 Purk_spine2/head CHANNEL Gk Ek
+
+end
+/*********************************************************************/
Index: 0.58/Purk_passconst.g
--- 0.58/Purk_passconst.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_passconst.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/15_Purk_passc 1.1 640)
@@ -0,0 +1,70 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/* This file defines important simulation parameters, including gmax
+** and Ek for all channels. Everything uses SI units. */
+
+echo Using Purkinje 2M9 preferences. Crank Nicholson method.
+/* variables controlling hsolve integration */
+float dt = 2.0e-5
+int tab_xdivs = 149
+int tab_xfills = 2999
+
+/* The model is quite sensitive to these values in NO_INTERP (caclmode=0) */
+float tab_xmin = -0.10
+float tab_xmax = 0.05
+float Ca_tab_max = 0.300
+
+// only used for proto channels
+float GNa = 1, GCa = 1, GK = 1, Gh = 1
+/* cable parameters */
+float CM = 0.0164 // *9 relative to passive
+float RMs = 1.000 // /3.7 relative to passive comp
+float RMd = 3.0
+float RA = 2.50
+/* preset constants */
+float ELEAK = -0.0800 // Ek value used for the leak conductance
+float EREST_ACT = -0.0680 // Vm value used for the RESET
+/* concentrations */
+float CCaO = 2.4000 //external Ca as in normal slice Ringer
+float CCaI = 0.000040 //internal Ca in mM
+//diameter of Ca_shells
+float Shell_thick = 0.20e-6
+float CaTau = 0.00010 // Ca_concen tau
+/* Currents: Reversal potentials in V and max conductances S/m^2 */
+/* Codes: s=soma, m=main dendrite, t=thick dendrite, d=spiny dendrite */
+float ENa = 0.045
+float GNaFs = 75000.0
+float GNaPs = 10.0
+float ECa = 0.0125*{log {CCaO/CCaI}} // 0.135 V
+float GCaTs = 5.00
+float GCaTm = 0//5.00
+float GCaTt = 0//5.00
+float GCaTd = 0//5.00
+float GCaPm = 0//45.0
+float GCaPt = 0//45.0
+float GCaPd = 0//45.0
+float EK = -0.085
+float GKAs = 150.0
+float GKAm = 0//20.0
+float GKdrs = 6000.0
+float GKdrm = 0//600.0
+float GKMs = 0.400
+float GKMm = 0//0.100
+float GKMt = 0//0.130
+float GKMd = 0//0.130
+float GKCm = 0//800.0
+float GKCt = 0//800.0
+float GKCd = 0//800.0
+float GK2m = 0//3.90
+float GK2t = 0//3.90
+float GK2d = 0//3.90
+float Eh = -0.030
+float Ghs = 3.00
+/* synapses: */
+float E_GABA = -0.080
+float G_GABA = 70.0/dt
+float GB_GABA = 20.0/dt
+float E_non_NMDA = 0.000
+float G_par_syn = 750.0/dt
+float G_cli_syn = 150.0/dt
Index: 0.58/Purk_iticomp.g
--- 0.58/Purk_iticomp.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_iticomp.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/16_Purk_itico 1.1 640)
@@ -0,0 +1,296 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/**********************************************************************
+** Sets up active membrane Purkinje cell compartment prototypes
+** and dendritic spine prototypes.
+** E. De Schutter, Caltech, 1991-1992
+** This version sets up active compartments with stellate cell synapses.
+**********************************************************************/
+
+/* References:
+** E. De Schutter and J.M. Bower: An active membrane model of the
+** cerebellar Purkinje cell. I. Simulation of current clamps in slice.
+** Journal of Neurophysiology 71: 375-400 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub8.html
+** E. De Schutter and J.M. Bower: An active membrane model of the
+** cerebellar Purkinje cell: II. Simulation of synaptic responses.
+** Journal of Neurophysiology 71: 401-419 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub7.html
+** Consult these references for sources of experimental data.
+** See http://www.bbf.uia.ac.be/models/PM9.shtml for general model info.
+*/
+
+function make_Purkinje_comps
+/* separate function so we can have local variables */
+
+ float len, dia, surf, shell_vol, shell_dia
+ int i
+
+ echo making Purkinje compartment library...
+
+ /* make spherical soma prototype with sodium currents*/
+ len = 0.00e-6
+ dia = 20.0e-6
+ surf = dia*dia*{PI}
+ shell_dia = 2*{Shell_thick}
+ shell_vol = (3*dia*dia*shell_dia - 3*dia*shell_dia*shell_dia + shell_dia*shell_dia*shell_dia)*{PI}/6.0
+ if (!({exists Purk_soma}))
+ create compartment Purk_soma
+ end
+ setfield Purk_soma Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMs}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ copy Purk_NaF Purk_soma/NaF
+ addmsg Purk_soma Purk_soma/NaF VOLTAGE Vm
+ addmsg Purk_soma/NaF Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/NaF Gbar {{GNaFs}*surf}
+ copy Purk_NaP Purk_soma/NaP
+ addmsg Purk_soma Purk_soma/NaP VOLTAGE Vm
+ addmsg Purk_soma/NaP Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/NaP Gbar {{GNaPs}*surf}
+ copy Purk_CaT Purk_soma/CaT
+ addmsg Purk_soma Purk_soma/CaT VOLTAGE Vm
+ addmsg Purk_soma/CaT Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/CaT Gbar {{GCaTs}*surf}
+ copy Purk_KA Purk_soma/KA
+ addmsg Purk_soma Purk_soma/KA VOLTAGE Vm
+ addmsg Purk_soma/KA Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/KA Gbar {{GKAs}*surf}
+ copy Purk_Kdr Purk_soma/Kdr
+ addmsg Purk_soma Purk_soma/Kdr VOLTAGE Vm
+ addmsg Purk_soma/Kdr Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/Kdr Gbar {{GKdrs}*surf}
+ copy Purk_KM Purk_soma/KM
+ addmsg Purk_soma Purk_soma/KM VOLTAGE Vm
+ addmsg Purk_soma/KM Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/KM Gbar {{GKMs}*surf}
+ copy Purk_h1 Purk_soma/h1
+ addmsg Purk_soma Purk_soma/h1 VOLTAGE Vm
+ addmsg Purk_soma/h1 Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/h1 Gbar {{Ghs}*surf}
+ copy Purk_h2 Purk_soma/h2
+ addmsg Purk_soma Purk_soma/h2 VOLTAGE Vm
+ addmsg Purk_soma/h2 Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/h2 Gbar {{Ghs}*surf}
+ create Ca_concen Purk_soma/Ca_pool
+ setfield Purk_soma/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_soma/CaT Purk_soma/Ca_pool I_Ca Ik
+
+ /* make main dendrite prototype with fast Ca currents */
+ len = 200.00e-6
+ dia = 2.00e-6
+ surf = len*dia*{PI}
+ shell_vol = (2*dia*shell_dia - shell_dia*shell_dia)*len*{PI}/4.0
+ if (!({exists Purk_maind}))
+ create compartment Purk_maind
+ end
+ setfield Purk_maind Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ if (!({exists Purk_thickd})) // Lets copy before we add currents
+
+ copy Purk_maind Purk_thickd
+ end
+ if (!({exists Purk_spinyd})) // Lets copy before we add currents
+
+ copy Purk_maind Purk_spinyd
+ end
+
+ copy Purk_CaT Purk_maind/CaT
+ addmsg Purk_maind Purk_maind/CaT VOLTAGE Vm
+ addmsg Purk_maind/CaT Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/CaT Gbar {{GCaTm}*surf}
+ copy Purk_KA Purk_maind/KA
+ addmsg Purk_maind Purk_maind/KA VOLTAGE Vm
+ addmsg Purk_maind/KA Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KA Gbar {{GKAm}*surf}
+ copy Purk_Kdr Purk_maind/Kdr
+ addmsg Purk_maind Purk_maind/Kdr VOLTAGE Vm
+ addmsg Purk_maind/Kdr Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/Kdr Gbar {{GKdrm}*surf}
+ copy Purk_KM Purk_maind/KM
+ addmsg Purk_maind Purk_maind/KM VOLTAGE Vm
+ addmsg Purk_maind/KM Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KM Gbar {{GKMm}*surf}
+ copy Purk_CaP Purk_maind/CaP
+ addmsg Purk_maind Purk_maind/CaP VOLTAGE Vm
+ addmsg Purk_maind/CaP Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/CaP Gbar {{GCaPm}*surf}
+ copy Purk_KC Purk_maind/KC
+ addmsg Purk_maind Purk_maind/KC VOLTAGE Vm
+ addmsg Purk_maind/KC Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KC Gbar {{GKCm}*surf}
+ copy Purk_K2 Purk_maind/K2
+ addmsg Purk_maind Purk_maind/K2 VOLTAGE Vm
+ addmsg Purk_maind/K2 Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/K2 Gbar {{GK2m}*surf}
+ create Ca_concen Purk_maind/Ca_pool
+ setfield Purk_maind/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_maind/CaT Purk_maind/Ca_pool I_Ca Ik
+ addmsg Purk_maind/CaP Purk_maind/Ca_pool I_Ca Ik
+ addmsg Purk_maind/Ca_pool Purk_maind/KC CONCEN Ca
+ addmsg Purk_maind/Ca_pool Purk_maind/K2 CONCEN Ca
+ create nernst Purk_maind/Ca_nernst
+ setfield Purk_maind/Ca_nernst Cin {CCaI} Cout {CCaO} valency {2} \
+ scale {1.0} T {37}
+ addmsg Purk_maind/Ca_pool Purk_maind/Ca_nernst CIN Ca
+ addmsg Purk_maind/Ca_nernst Purk_maind/CaP EK E
+ addmsg Purk_maind/Ca_nernst Purk_maind/CaT EK E
+
+ /* make thick dendrite prototype with fast Ca current */
+ /* similar to main dendrite but has CaP and no Kdr */
+ /* passive prototype already copied from Purk_maind */
+ setfield Purk_thickd Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMtd}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ copy Purk_CaT Purk_thickd/CaT
+ addmsg Purk_thickd Purk_thickd/CaT VOLTAGE Vm
+ addmsg Purk_thickd/CaT Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/CaT Gbar {{GCaTt}*surf}
+ copy Purk_CaP Purk_thickd/CaP
+ addmsg Purk_thickd Purk_thickd/CaP VOLTAGE Vm
+ addmsg Purk_thickd/CaP Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/CaP Gbar {{GCaPt}*surf}
+ copy Purk_KM Purk_thickd/KM
+ addmsg Purk_thickd Purk_thickd/KM VOLTAGE Vm
+ addmsg Purk_thickd/KM Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/KM Gbar {{GKMt}*surf}
+ copy Purk_KC Purk_thickd/KC
+ addmsg Purk_thickd Purk_thickd/KC VOLTAGE Vm
+ addmsg Purk_thickd/KC Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/KC Gbar {{GKCt}*surf}
+ copy Purk_K2 Purk_thickd/K2
+ addmsg Purk_thickd Purk_thickd/K2 VOLTAGE Vm
+ addmsg Purk_thickd/K2 Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/K2 Gbar {{GK2t}*surf}
+ create Ca_concen Purk_thickd/Ca_pool
+ setfield Purk_thickd/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_thickd/CaT Purk_thickd/Ca_pool I_Ca Ik
+ addmsg Purk_thickd/CaP Purk_thickd/Ca_pool I_Ca Ik
+ addmsg Purk_thickd/Ca_pool Purk_thickd/KC CONCEN Ca
+ addmsg Purk_thickd/Ca_pool Purk_thickd/K2 CONCEN Ca
+ create nernst Purk_thickd/Ca_nernst
+ setfield Purk_thickd/Ca_nernst Cin {CCaI} Cout {CCaO} \
+ valency {2} scale {1.0} T {37}
+ addmsg Purk_thickd/Ca_pool Purk_thickd/Ca_nernst CIN Ca
+ addmsg Purk_thickd/Ca_nernst Purk_thickd/CaP EK E
+ addmsg Purk_thickd/Ca_nernst Purk_thickd/CaT EK E
+ for (i=1; i<=2; i = i+1)
+ copy GABA Purk_thickd/stell{i}
+ setfield Purk_thickd/stell{i} gmax {{G_GABA}/5*surf}
+ addmsg Purk_thickd/stell{i} Purk_thickd CHANNEL Gk Ek
+ addmsg Purk_thickd Purk_thickd/stell{i} VOLTAGE Vm
+ end
+
+ /* make spiny dendrite prototype with high threshold Ca current \
+ */
+ /* passive prototype already copied from Purk_maind */
+ setfield Purk_spinyd Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMsd}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ copy Purk_CaT Purk_spinyd/CaT
+ addmsg Purk_spinyd Purk_spinyd/CaT VOLTAGE Vm
+ addmsg Purk_spinyd/CaT Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/CaT Gbar {{GCaTd}*surf}
+ copy Purk_CaP Purk_spinyd/CaP
+ addmsg Purk_spinyd Purk_spinyd/CaP VOLTAGE Vm
+ addmsg Purk_spinyd/CaP Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/CaP Gbar {{GCaPd}*surf}
+ copy Purk_KM Purk_spinyd/KM
+ addmsg Purk_spinyd Purk_spinyd/KM VOLTAGE Vm
+ addmsg Purk_spinyd/KM Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/KM Gbar {{GKMd}*surf}
+ copy Purk_KC Purk_spinyd/KC
+ addmsg Purk_spinyd Purk_spinyd/KC VOLTAGE Vm
+ addmsg Purk_spinyd/KC Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/KC Gbar {{GKCd}*surf}
+ copy Purk_K2 Purk_spinyd/K2
+ addmsg Purk_spinyd Purk_spinyd/K2 VOLTAGE Vm
+ addmsg Purk_spinyd/K2 Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/K2 Gbar {{GK2d}*surf}
+ create Ca_concen Purk_spinyd/Ca_pool
+ setfield Purk_spinyd/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_spinyd/CaP Purk_spinyd/Ca_pool I_Ca Ik
+ addmsg Purk_spinyd/CaT Purk_spinyd/Ca_pool I_Ca Ik
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/KC CONCEN Ca
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/K2 CONCEN Ca
+ create nernst Purk_spinyd/Ca_nernst
+ setfield Purk_spinyd/Ca_nernst Cin {CCaI} Cout {CCaO} \
+ valency {2} scale {1.0} T {37}
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/Ca_nernst CIN Ca
+ addmsg Purk_spinyd/Ca_nernst Purk_spinyd/CaP EK E
+ addmsg Purk_spinyd/Ca_nernst Purk_spinyd/CaT EK E
+ copy GABA Purk_spinyd/stell
+ setfield Purk_spinyd/stell gmax {{G_GABA}*surf}
+ addmsg Purk_spinyd/stell Purk_spinyd CHANNEL Gk Ek
+ addmsg Purk_spinyd Purk_spinyd/stell VOLTAGE Vm
+end
+
+/*********************************************************************/
+function make_Purkinje_spines
+/* separate function so we can have local variables */
+/* one standard format, may be rescaled in attach_spines */
+/* Reference: Harris KM, Stevens JK: Dendritic spines of rat
+** cerebellar Purkinje cells: serial electron microscopy with
+** reference to their biophysical characteristics. J Neurosci 8: p
+** 4455-4469, 1988. */
+
+ float len, dia, surf, vol
+
+ /* make spine with average length and diameter */
+ /* make spine neck */
+ len = 0.66e-6
+ dia = 0.20e-6
+ surf = len*dia*{PI}
+ vol = len*dia*dia*{PI}/4.0
+ if (!({exists Purk_spine}))
+ create compartment Purk_spine
+ end
+ setfield Purk_spine Cm {{CM}*surf} \
+ Ra {4.0*{RA}*len/(dia*dia*{PI})} Em {ELEAK} \
+ initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 x {len} dia {dia} \
+ len {len}
+
+ /* make spine head */
+ len = 0.00e-6
+ // derived from average surface
+ dia = 0.54e-6
+ surf = dia*dia*{PI}
+ create compartment Purk_spine/head
+ setfield Purk_spine/head Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 \
+ x {dia} dia {dia} len {len}
+
+ /* make a combined prototype: neck+head */
+ addmsg Purk_spine/head Purk_spine RAXIAL Ra Vm
+ addmsg Purk_spine Purk_spine/head AXIAL Vm
+
+ copy Purk_spine Purk_spine2
+
+ /* put non-NMDA channel on combined prototype */
+ copy non_NMDA Purk_spine/head/par
+ setfield Purk_spine/head/par gmax {{G_par_syn}*surf}
+ addmsg Purk_spine/head Purk_spine/head/par VOLTAGE Vm
+ addmsg Purk_spine/head/par Purk_spine/head CHANNEL Gk Ek
+
+ /* put non-NMDA channel on combined prototype */
+ copy non_NMDA2 Purk_spine2/head/par2
+ setfield Purk_spine2/head/par2 gmax {{G_par_syn}*surf}
+ addmsg Purk_spine2/head Purk_spine2/head/par2 VOLTAGE Vm
+ addmsg Purk_spine2/head/par2 Purk_spine2/head CHANNEL Gk Ek
+
+end
+/*********************************************************************/
Index: 0.58/Purk_icomp.g
--- 0.58/Purk_icomp.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_icomp.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/17_Purk_icomp 1.1 640)
@@ -0,0 +1,288 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/**********************************************************************
+** Sets up active membrane Purkinje cell compartment prototypes
+** and dendritic spine prototypes.
+** E. De Schutter, Caltech, 1991-1992
+** This version sets up active compartments with stellate cell synapses.
+**********************************************************************/
+
+/* References:
+** E. De Schutter and J.M. Bower: An active membrane model of the
+** cerebellar Purkinje cell. I. Simulation of current clamps in slice.
+** Journal of Neurophysiology 71: 375-400 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub8.html
+** E. De Schutter and J.M. Bower: An active membrane model of the
+** cerebellar Purkinje cell: II. Simulation of synaptic responses.
+** Journal of Neurophysiology 71: 401-419 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub7.html
+** Consult these references for sources of experimental data.
+** See http://www.bbf.uia.ac.be/models/PM9.shtml for general model info.
+*/
+
+function make_Purkinje_comps
+/* separate function so we can have local variables */
+
+ float len, dia, surf, shell_vol, shell_dia
+ int i
+
+ echo making Purkinje compartment library...
+
+ /* make spherical soma prototype with sodium currents*/
+ len = 0.00e-6
+ dia = 20.0e-6
+ surf = dia*dia*{PI}
+ shell_dia = 2*{Shell_thick}
+ shell_vol = (3*dia*dia*shell_dia - 3*dia*shell_dia*shell_dia + shell_dia*shell_dia*shell_dia)*{PI}/6.0
+ if (!({exists Purk_soma}))
+ create compartment Purk_soma
+ end
+ setfield Purk_soma Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMs}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ copy Purk_NaF Purk_soma/NaF
+ addmsg Purk_soma Purk_soma/NaF VOLTAGE Vm
+ addmsg Purk_soma/NaF Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/NaF Gbar {{GNaFs}*surf}
+ copy Purk_NaP Purk_soma/NaP
+ addmsg Purk_soma Purk_soma/NaP VOLTAGE Vm
+ addmsg Purk_soma/NaP Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/NaP Gbar {{GNaPs}*surf}
+ copy Purk_CaT Purk_soma/CaT
+ addmsg Purk_soma Purk_soma/CaT VOLTAGE Vm
+ addmsg Purk_soma/CaT Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/CaT Gbar {{GCaTs}*surf}
+ copy Purk_KA Purk_soma/KA
+ addmsg Purk_soma Purk_soma/KA VOLTAGE Vm
+ addmsg Purk_soma/KA Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/KA Gbar {{GKAs}*surf}
+ copy Purk_Kdr Purk_soma/Kdr
+ addmsg Purk_soma Purk_soma/Kdr VOLTAGE Vm
+ addmsg Purk_soma/Kdr Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/Kdr Gbar {{GKdrs}*surf}
+ copy Purk_KM Purk_soma/KM
+ addmsg Purk_soma Purk_soma/KM VOLTAGE Vm
+ addmsg Purk_soma/KM Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/KM Gbar {{GKMs}*surf}
+ copy Purk_h1 Purk_soma/h1
+ addmsg Purk_soma Purk_soma/h1 VOLTAGE Vm
+ addmsg Purk_soma/h1 Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/h1 Gbar {{Ghs}*surf}
+ copy Purk_h2 Purk_soma/h2
+ addmsg Purk_soma Purk_soma/h2 VOLTAGE Vm
+ addmsg Purk_soma/h2 Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/h2 Gbar {{Ghs}*surf}
+ create Ca_concen Purk_soma/Ca_pool
+ setfield Purk_soma/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_soma/CaT Purk_soma/Ca_pool I_Ca Ik
+
+ /* make main dendrite prototype with fast Ca currents */
+ len = 200.00e-6
+ dia = 2.00e-6
+ surf = len*dia*{PI}
+ shell_vol = (2*dia*shell_dia - shell_dia*shell_dia)*len*{PI}/4.0
+ if (!({exists Purk_maind}))
+ create compartment Purk_maind
+ end
+ setfield Purk_maind Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ if (!({exists Purk_thickd})) // Lets copy before we add currents
+
+ copy Purk_maind Purk_thickd
+ end
+ if (!({exists Purk_spinyd})) // Lets copy before we add currents
+
+ copy Purk_maind Purk_spinyd
+ end
+
+ copy Purk_CaT Purk_maind/CaT
+ addmsg Purk_maind Purk_maind/CaT VOLTAGE Vm
+ addmsg Purk_maind/CaT Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/CaT Gbar {{GCaTm}*surf}
+ copy Purk_KA Purk_maind/KA
+ addmsg Purk_maind Purk_maind/KA VOLTAGE Vm
+ addmsg Purk_maind/KA Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KA Gbar {{GKAm}*surf}
+ copy Purk_Kdr Purk_maind/Kdr
+ addmsg Purk_maind Purk_maind/Kdr VOLTAGE Vm
+ addmsg Purk_maind/Kdr Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/Kdr Gbar {{GKdrm}*surf}
+ copy Purk_KM Purk_maind/KM
+ addmsg Purk_maind Purk_maind/KM VOLTAGE Vm
+ addmsg Purk_maind/KM Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KM Gbar {{GKMm}*surf}
+ copy Purk_CaP Purk_maind/CaP
+ addmsg Purk_maind Purk_maind/CaP VOLTAGE Vm
+ addmsg Purk_maind/CaP Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/CaP Gbar {{GCaPm}*surf}
+ copy Purk_KC Purk_maind/KC
+ addmsg Purk_maind Purk_maind/KC VOLTAGE Vm
+ addmsg Purk_maind/KC Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KC Gbar {{GKCm}*surf}
+ copy Purk_K2 Purk_maind/K2
+ addmsg Purk_maind Purk_maind/K2 VOLTAGE Vm
+ addmsg Purk_maind/K2 Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/K2 Gbar {{GK2m}*surf}
+ create Ca_concen Purk_maind/Ca_pool
+ setfield Purk_maind/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_maind/CaT Purk_maind/Ca_pool I_Ca Ik
+ addmsg Purk_maind/CaP Purk_maind/Ca_pool I_Ca Ik
+ addmsg Purk_maind/Ca_pool Purk_maind/KC CONCEN Ca
+ addmsg Purk_maind/Ca_pool Purk_maind/K2 CONCEN Ca
+ create nernst Purk_maind/Ca_nernst
+ setfield Purk_maind/Ca_nernst Cin {CCaI} Cout {CCaO} valency {2} \
+ scale {1.0} T {37}
+ addmsg Purk_maind/Ca_pool Purk_maind/Ca_nernst CIN Ca
+ addmsg Purk_maind/Ca_nernst Purk_maind/CaP EK E
+ addmsg Purk_maind/Ca_nernst Purk_maind/CaT EK E
+
+ /* make thick dendrite prototype with fast Ca current */
+ /* similar to main dendrite but has CaP and no Kdr */
+ /* passive prototype already copied from Purk_maind */
+ copy Purk_CaT Purk_thickd/CaT
+ addmsg Purk_thickd Purk_thickd/CaT VOLTAGE Vm
+ addmsg Purk_thickd/CaT Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/CaT Gbar {{GCaTt}*surf}
+ copy Purk_CaP Purk_thickd/CaP
+ addmsg Purk_thickd Purk_thickd/CaP VOLTAGE Vm
+ addmsg Purk_thickd/CaP Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/CaP Gbar {{GCaPt}*surf}
+ copy Purk_KM Purk_thickd/KM
+ addmsg Purk_thickd Purk_thickd/KM VOLTAGE Vm
+ addmsg Purk_thickd/KM Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/KM Gbar {{GKMt}*surf}
+ copy Purk_KC Purk_thickd/KC
+ addmsg Purk_thickd Purk_thickd/KC VOLTAGE Vm
+ addmsg Purk_thickd/KC Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/KC Gbar {{GKCt}*surf}
+ copy Purk_K2 Purk_thickd/K2
+ addmsg Purk_thickd Purk_thickd/K2 VOLTAGE Vm
+ addmsg Purk_thickd/K2 Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/K2 Gbar {{GK2t}*surf}
+ create Ca_concen Purk_thickd/Ca_pool
+ setfield Purk_thickd/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_thickd/CaT Purk_thickd/Ca_pool I_Ca Ik
+ addmsg Purk_thickd/CaP Purk_thickd/Ca_pool I_Ca Ik
+ addmsg Purk_thickd/Ca_pool Purk_thickd/KC CONCEN Ca
+ addmsg Purk_thickd/Ca_pool Purk_thickd/K2 CONCEN Ca
+ create nernst Purk_thickd/Ca_nernst
+ setfield Purk_thickd/Ca_nernst Cin {CCaI} Cout {CCaO} \
+ valency {2} scale {1.0} T {37}
+ addmsg Purk_thickd/Ca_pool Purk_thickd/Ca_nernst CIN Ca
+ addmsg Purk_thickd/Ca_nernst Purk_thickd/CaP EK E
+ addmsg Purk_thickd/Ca_nernst Purk_thickd/CaT EK E
+ for (i=1; i<=2; i = i+1)
+ copy GABA Purk_thickd/stell{i}
+ setfield Purk_thickd/stell{i} gmax {{G_GABA}/5*surf}
+ addmsg Purk_thickd/stell{i} Purk_thickd CHANNEL Gk Ek
+ addmsg Purk_thickd Purk_thickd/stell{i} VOLTAGE Vm
+ end
+
+ /* make spiny dendrite prototype with high threshold Ca current \
+ */
+ /* passive prototype already copied from Purk_maind */
+ copy Purk_CaT Purk_spinyd/CaT
+ addmsg Purk_spinyd Purk_spinyd/CaT VOLTAGE Vm
+ addmsg Purk_spinyd/CaT Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/CaT Gbar {{GCaTd}*surf}
+ copy Purk_CaP Purk_spinyd/CaP
+ addmsg Purk_spinyd Purk_spinyd/CaP VOLTAGE Vm
+ addmsg Purk_spinyd/CaP Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/CaP Gbar {{GCaPd}*surf}
+ copy Purk_KM Purk_spinyd/KM
+ addmsg Purk_spinyd Purk_spinyd/KM VOLTAGE Vm
+ addmsg Purk_spinyd/KM Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/KM Gbar {{GKMd}*surf}
+ copy Purk_KC Purk_spinyd/KC
+ addmsg Purk_spinyd Purk_spinyd/KC VOLTAGE Vm
+ addmsg Purk_spinyd/KC Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/KC Gbar {{GKCd}*surf}
+ copy Purk_K2 Purk_spinyd/K2
+ addmsg Purk_spinyd Purk_spinyd/K2 VOLTAGE Vm
+ addmsg Purk_spinyd/K2 Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/K2 Gbar {{GK2d}*surf}
+ create Ca_concen Purk_spinyd/Ca_pool
+ setfield Purk_spinyd/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_spinyd/CaP Purk_spinyd/Ca_pool I_Ca Ik
+ addmsg Purk_spinyd/CaT Purk_spinyd/Ca_pool I_Ca Ik
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/KC CONCEN Ca
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/K2 CONCEN Ca
+ create nernst Purk_spinyd/Ca_nernst
+ setfield Purk_spinyd/Ca_nernst Cin {CCaI} Cout {CCaO} \
+ valency {2} scale {1.0} T {37}
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/Ca_nernst CIN Ca
+ addmsg Purk_spinyd/Ca_nernst Purk_spinyd/CaP EK E
+ addmsg Purk_spinyd/Ca_nernst Purk_spinyd/CaT EK E
+ copy GABA Purk_spinyd/stell
+ setfield Purk_spinyd/stell gmax {{G_GABA}*surf}
+ addmsg Purk_spinyd/stell Purk_spinyd CHANNEL Gk Ek
+ addmsg Purk_spinyd Purk_spinyd/stell VOLTAGE Vm
+end
+
+/*********************************************************************/
+function make_Purkinje_spines
+/* separate function so we can have local variables */
+/* one standard format, may be rescaled in attach_spines */
+/* Reference: Harris KM, Stevens JK: Dendritic spines of rat
+** cerebellar Purkinje cells: serial electron microscopy with
+** reference to their biophysical characteristics. J Neurosci 8: p
+** 4455-4469, 1988. */
+
+ float len, dia, surf, vol
+
+ /* make spine with average length and diameter */
+ /* make spine neck */
+ len = 0.66e-6
+ dia = 0.20e-6
+ surf = len*dia*{PI}
+ vol = len*dia*dia*{PI}/4.0
+ if (!({exists Purk_spine}))
+ create compartment Purk_spine
+ end
+ setfield Purk_spine Cm {{CM}*surf} \
+ Ra {4.0*{RA}*len/(dia*dia*{PI})} Em {ELEAK} \
+ initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 x {len} dia {dia} \
+ len {len}
+
+ /* make spine head */
+ len = 0.00e-6
+ // derived from average surface
+ dia = 0.54e-6
+ surf = dia*dia*{PI}
+ create compartment Purk_spine/head
+ setfield Purk_spine/head Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 \
+ x {dia} dia {dia} len {len}
+
+ /* make a combined prototype: neck+head */
+ addmsg Purk_spine/head Purk_spine RAXIAL Ra Vm
+ addmsg Purk_spine Purk_spine/head AXIAL Vm
+
+ copy Purk_spine Purk_spine2
+
+ /* put non-NMDA channel on combined prototype */
+ copy non_NMDA Purk_spine/head/par
+ setfield Purk_spine/head/par gmax {{G_par_syn}*surf}
+ addmsg Purk_spine/head Purk_spine/head/par VOLTAGE Vm
+ addmsg Purk_spine/head/par Purk_spine/head CHANNEL Gk Ek
+
+ /* put non-NMDA channel on combined prototype */
+ copy non_NMDA2 Purk_spine2/head/par2
+ setfield Purk_spine2/head/par2 gmax {{G_par_syn}*surf}
+ addmsg Purk_spine2/head Purk_spine2/head/par2 VOLTAGE Vm
+ addmsg Purk_spine2/head/par2 Purk_spine2/head CHANNEL Gk Ek
+
+end
+/*********************************************************************/
Index: 0.58/Purk_hfipassconst.g
--- 0.58/Purk_hfipassconst.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_hfipassconst.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/18_Purk_hfipa 1.1 640)
@@ -0,0 +1,70 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/* This file defines important simulation parameters, including gmax
+** and Ek for all channels. Everything uses SI units. */
+
+echo Using Purkinje 2M9 preferences. Crank Nicholson method.
+/* variables controlling hsolve integration */
+float dt = 2.0e-5
+int tab_xdivs = 149
+int tab_xfills = 2999
+
+/* The model is quite sensitive to these values in NO_INTERP (caclmode=0) */
+float tab_xmin = -0.10
+float tab_xmax = 0.05
+float Ca_tab_max = 0.300
+
+// only used for proto channels
+float GNa = 1, GCa = 1, GK = 1, Gh = 1
+/* cable parameters */
+float CM = 0.0164 // *9 relative to passive
+float RMs = 1.000 // /3.7 relative to passive comp
+float RMd = 3.0
+float RA = 2.50
+/* preset constants */
+float ELEAK = -0.0800 // Ek value used for the leak conductance
+float EREST_ACT = -0.0680 // Vm value used for the RESET
+/* concentrations */
+float CCaO = 2.4000 //external Ca as in normal slice Ringer
+float CCaI = 0.000040 //internal Ca in mM
+//diameter of Ca_shells
+float Shell_thick = 0.20e-6
+float CaTau = 0.00010 // Ca_concen tau
+/* Currents: Reversal potentials in V and max conductances S/m^2 */
+/* Codes: s=soma, m=main dendrite, t=thick dendrite, d=spiny dendrite */
+float ENa = 0.045
+float GNaFs = 75000.0
+float GNaPs = 10.0
+float ECa = 0.0125*{log {CCaO/CCaI}} // 0.135 V
+float GCaTs = 5.00
+float GCaTm = 0//5.00
+float GCaTt = 0//5.00
+float GCaTd = 0//5.00
+float GCaPm = 0//45.0
+float GCaPt = 0//45.0
+float GCaPd = 0//45.0
+float EK = -0.085
+float GKAs = 150.0
+float GKAm = 0//20.0
+float GKdrs = 6000.0
+float GKdrm = 0//600.0
+float GKMs = 0.400
+float GKMm = 0//0.100
+float GKMt = 0//0.130
+float GKMd = 0//0.130
+float GKCm = 0//800.0
+float GKCt = 0//800.0
+float GKCd = 0//800.0
+float GK2m = 0//3.90
+float GK2t = 0//3.90
+float GK2d = 0//3.90
+float Eh = -0.030
+float Ghs = 3.00
+/* synapses: */
+float E_GABA = -0.080
+float G_GABA = 70.0/(dt*1000)
+float GB_GABA = 20.0/dt
+float E_non_NMDA = 0.000
+float G_par_syn = 750.0/dt
+float G_cli_syn = 150.0/dt
Index: 0.58/Purk_hfihfeconst.g
--- 0.58/Purk_hfihfeconst.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_hfihfeconst.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/19_Purk_hfihf 1.1 640)
@@ -0,0 +1,70 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/* This file defines important simulation parameters, including gmax
+** and Ek for all channels. Everything uses SI units. */
+
+echo Using Purkinje 2M9 preferences. Crank Nicholson method.
+/* variables controlling hsolve integration */
+float dt = 2.0e-5
+int tab_xdivs = 149
+int tab_xfills = 2999
+
+/* The model is quite sensitive to these values in NO_INTERP (caclmode=0) */
+float tab_xmin = -0.10
+float tab_xmax = 0.05
+float Ca_tab_max = 0.300
+
+// only used for proto channels
+float GNa = 1, GCa = 1, GK = 1, Gh = 1
+/* cable parameters */
+float CM = 0.0164 // *9 relative to passive
+float RMs = 1.000 // /3.7 relative to passive comp
+float RMd = 3.0
+float RA = 2.50
+/* preset constants */
+float ELEAK = -0.0800 // Ek value used for the leak conductance
+float EREST_ACT = -0.0680 // Vm value used for the RESET
+/* concentrations */
+float CCaO = 2.4000 //external Ca as in normal slice Ringer
+float CCaI = 0.000040 //internal Ca in mM
+//diameter of Ca_shells
+float Shell_thick = 0.20e-6
+float CaTau = 0.00010 // Ca_concen tau
+/* Currents: Reversal potentials in V and max conductances S/m^2 */
+/* Codes: s=soma, m=main dendrite, t=thick dendrite, d=spiny dendrite */
+float ENa = 0.045
+float GNaFs = 75000.0
+float GNaPs = 10.0
+float ECa = 0.0125*{log {CCaO/CCaI}} // 0.135 V
+float GCaTs = 5.00
+float GCaTm = 5.00
+float GCaTt = 5.00
+float GCaTd = 5.00
+float GCaPm = 45.0
+float GCaPt = 45.0
+float GCaPd = 45.0
+float EK = -0.085
+float GKAs = 150.0
+float GKAm = 20.0
+float GKdrs = 6000.0
+float GKdrm = 600.0
+float GKMs = 0.400
+float GKMm = 0.100
+float GKMt = 0.130
+float GKMd = 0.130
+float GKCm = 800.0
+float GKCt = 800.0
+float GKCd = 800.0
+float GK2m = 3.90
+float GK2t = 3.90
+float GK2d = 3.90
+float Eh = -0.030
+float Ghs = 3.00
+/* synapses: */
+float E_GABA = -0.080
+float G_GABA = 70.0/(dt*1000)
+float GB_GABA = 20.0/dt
+float E_non_NMDA = 0.000
+float G_par_syn = 750.0/(dt*1000)
+float G_cli_syn = 150.0/dt
Index: 0.58/Purk_hficonst.g
--- 0.58/Purk_hficonst.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_hficonst.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/20_Purk_hfico 1.1 640)
@@ -0,0 +1,70 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/* This file defines important simulation parameters, including gmax
+** and Ek for all channels. Everything uses SI units. */
+
+echo Using Purkinje 2M9 preferences. Crank Nicholson method.
+/* variables controlling hsolve integration */
+float dt = 2.0e-5
+int tab_xdivs = 149
+int tab_xfills = 2999
+
+/* The model is quite sensitive to these values in NO_INTERP (caclmode=0) */
+float tab_xmin = -0.10
+float tab_xmax = 0.05
+float Ca_tab_max = 0.300
+
+// only used for proto channels
+float GNa = 1, GCa = 1, GK = 1, Gh = 1
+/* cable parameters */
+float CM = 0.0164 // *9 relative to passive
+float RMs = 1.000 // /3.7 relative to passive comp
+float RMd = 3.0
+float RA = 2.50
+/* preset constants */
+float ELEAK = -0.0800 // Ek value used for the leak conductance
+float EREST_ACT = -0.0680 // Vm value used for the RESET
+/* concentrations */
+float CCaO = 2.4000 //external Ca as in normal slice Ringer
+float CCaI = 0.000040 //internal Ca in mM
+//diameter of Ca_shells
+float Shell_thick = 0.20e-6
+float CaTau = 0.00010 // Ca_concen tau
+/* Currents: Reversal potentials in V and max conductances S/m^2 */
+/* Codes: s=soma, m=main dendrite, t=thick dendrite, d=spiny dendrite */
+float ENa = 0.045
+float GNaFs = 75000.0
+float GNaPs = 10.0
+float ECa = 0.0125*{log {CCaO/CCaI}} // 0.135 V
+float GCaTs = 5.00
+float GCaTm = 5.00
+float GCaTt = 5.00
+float GCaTd = 5.00
+float GCaPm = 45.0
+float GCaPt = 45.0
+float GCaPd = 45.0
+float EK = -0.085
+float GKAs = 150.0
+float GKAm = 20.0
+float GKdrs = 6000.0
+float GKdrm = 600.0
+float GKMs = 0.400
+float GKMm = 0.100
+float GKMt = 0.130
+float GKMd = 0.130
+float GKCm = 800.0
+float GKCt = 800.0
+float GKCd = 800.0
+float GK2m = 3.90
+float GK2t = 3.90
+float GK2d = 3.90
+float Eh = -0.030
+float Ghs = 3.00
+/* synapses: */
+float E_GABA = -0.080
+float G_GABA = 70.0/(dt*1000)
+float GB_GABA = 20.0/dt
+float E_non_NMDA = 0.000
+float G_par_syn = 750.0/dt
+float G_cli_syn = 150.0/dt
Index: 0.58/Purk_hfi2const.g
--- 0.58/Purk_hfi2const.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_hfi2const.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/21_Purk_hfi2c 1.1 640)
@@ -0,0 +1,70 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/* This file defines important simulation parameters, including gmax
+** and Ek for all channels. Everything uses SI units. */
+
+echo Using Purkinje 2M9 preferences. Crank Nicholson method.
+/* variables controlling hsolve integration */
+float dt = 2.0e-5
+int tab_xdivs = 149
+int tab_xfills = 2999
+
+/* The model is quite sensitive to these values in NO_INTERP (caclmode=0) */
+float tab_xmin = -0.10
+float tab_xmax = 0.05
+float Ca_tab_max = 0.300
+
+// only used for proto channels
+float GNa = 1, GCa = 1, GK = 1, Gh = 1
+/* cable parameters */
+float CM = 0.0164 // *9 relative to passive
+float RMs = 1.000 // /3.7 relative to passive comp
+float RMd = 3.0
+float RA = 2.50
+/* preset constants */
+float ELEAK = -0.0800 // Ek value used for the leak conductance
+float EREST_ACT = -0.0680 // Vm value used for the RESET
+/* concentrations */
+float CCaO = 2.4000 //external Ca as in normal slice Ringer
+float CCaI = 0.000040 //internal Ca in mM
+//diameter of Ca_shells
+float Shell_thick = 0.20e-6
+float CaTau = 0.00010 // Ca_concen tau
+/* Currents: Reversal potentials in V and max conductances S/m^2 */
+/* Codes: s=soma, m=main dendrite, t=thick dendrite, d=spiny dendrite */
+float ENa = 0.045
+float GNaFs = 75000.0
+float GNaPs = 10.0
+float ECa = 0.0125*{log {CCaO/CCaI}} // 0.135 V
+float GCaTs = 5.00
+float GCaTm = 5.00
+float GCaTt = 5.00
+float GCaTd = 5.00
+float GCaPm = 45.0
+float GCaPt = 45.0
+float GCaPd = 45.0
+float EK = -0.085
+float GKAs = 150.0
+float GKAm = 20.0
+float GKdrs = 6000.0
+float GKdrm = 600.0
+float GKMs = 0.400
+float GKMm = 0.100
+float GKMt = 0.130
+float GKMd = 0.130
+float GKCm = 800.0
+float GKCt = 800.0
+float GKCd = 800.0
+float GK2m = 3.90
+float GK2t = 3.90
+float GK2d = 3.90
+float Eh = -0.030
+float Ghs = 3.00
+/* synapses: */
+float E_GABA = -0.080
+float G_GABA = 70.0/(dt*4000)
+float GB_GABA = 20.0/dt
+float E_non_NMDA = 0.000
+float G_par_syn = 750.0/dt
+float G_cli_syn = 150.0/dt
Index: 0.58/Purk_bicomp.g
--- 0.58/Purk_bicomp.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/Purk_bicomp.g Wed, 27 Sep 2000 11:06:49 +0200 hugo (purkinje/b/22_Purk_bicom 1.1 640)
@@ -0,0 +1,296 @@
+//genesis - Purkinje cell M9 genesis2.1 script
+/* Copyright E. De Schutter (Caltech and BBF-UIA) */
+
+/**********************************************************************
+** Sets up active membrane Purkinje cell compartment prototypes
+** and dendritic spine prototypes.
+** E. De Schutter, Caltech, 1991-1992
+** This version sets up active compartments with stellate cell synapses.
+**********************************************************************/
+
+/* References:
+** E. De Schutter and J.M. Bower: An active membrane model of the
+** cerebellar Purkinje cell. I. Simulation of current clamps in slice.
+** Journal of Neurophysiology 71: 375-400 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub8.html
+** E. De Schutter and J.M. Bower: An active membrane model of the
+** cerebellar Purkinje cell: II. Simulation of synaptic responses.
+** Journal of Neurophysiology 71: 401-419 (1994).
+** http://www.bbf.uia.ac.be/TNB/TNB_pub7.html
+** Consult these references for sources of experimental data.
+** See http://www.bbf.uia.ac.be/models/PM9.shtml for general model info.
+*/
+
+function make_Purkinje_comps
+/* separate function so we can have local variables */
+
+ float len, dia, surf, shell_vol, shell_dia
+ int i
+
+ echo making Purkinje compartment library...
+
+ /* make spherical soma prototype with sodium currents*/
+ len = 0.00e-6
+ dia = 20.0e-6
+ surf = dia*dia*{PI}
+ shell_dia = 2*{Shell_thick}
+ shell_vol = (3*dia*dia*shell_dia - 3*dia*shell_dia*shell_dia + shell_dia*shell_dia*shell_dia)*{PI}/6.0
+ if (!({exists Purk_soma}))
+ create compartment Purk_soma
+ end
+ setfield Purk_soma Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMs}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ copy Purk_NaF Purk_soma/NaF
+ addmsg Purk_soma Purk_soma/NaF VOLTAGE Vm
+ addmsg Purk_soma/NaF Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/NaF Gbar {{GNaFs}*surf}
+ copy Purk_NaP Purk_soma/NaP
+ addmsg Purk_soma Purk_soma/NaP VOLTAGE Vm
+ addmsg Purk_soma/NaP Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/NaP Gbar {{GNaPs}*surf}
+ copy Purk_CaT Purk_soma/CaT
+ addmsg Purk_soma Purk_soma/CaT VOLTAGE Vm
+ addmsg Purk_soma/CaT Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/CaT Gbar {{GCaTs}*surf}
+ copy Purk_KA Purk_soma/KA
+ addmsg Purk_soma Purk_soma/KA VOLTAGE Vm
+ addmsg Purk_soma/KA Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/KA Gbar {{GKAs}*surf}
+ copy Purk_Kdr Purk_soma/Kdr
+ addmsg Purk_soma Purk_soma/Kdr VOLTAGE Vm
+ addmsg Purk_soma/Kdr Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/Kdr Gbar {{GKdrs}*surf}
+ copy Purk_KM Purk_soma/KM
+ addmsg Purk_soma Purk_soma/KM VOLTAGE Vm
+ addmsg Purk_soma/KM Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/KM Gbar {{GKMs}*surf}
+ copy Purk_h1 Purk_soma/h1
+ addmsg Purk_soma Purk_soma/h1 VOLTAGE Vm
+ addmsg Purk_soma/h1 Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/h1 Gbar {{Ghs}*surf}
+ copy Purk_h2 Purk_soma/h2
+ addmsg Purk_soma Purk_soma/h2 VOLTAGE Vm
+ addmsg Purk_soma/h2 Purk_soma CHANNEL Gk Ek
+ setfield Purk_soma/h2 Gbar {{Ghs}*surf}
+ create Ca_concen Purk_soma/Ca_pool
+ setfield Purk_soma/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_soma/CaT Purk_soma/Ca_pool I_Ca Ik
+ copy GABA2 Purk_soma/basket
+ setfield Purk_soma/basket gmax {{GB_GABA}*surf}
+ addmsg Purk_soma/basket Purk_soma CHANNEL Gk Ek
+ addmsg Purk_soma Purk_soma/basket VOLTAGE Vm
+
+ /* make main dendrite prototype with fast Ca currents */
+ len = 200.00e-6
+ dia = 2.00e-6
+ surf = len*dia*{PI}
+ shell_vol = (2*dia*shell_dia - shell_dia*shell_dia)*len*{PI}/4.0
+ if (!({exists Purk_maind}))
+ create compartment Purk_maind
+ end
+ setfield Purk_maind Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 \
+ dia {dia} len {len}
+
+ if (!({exists Purk_thickd})) // Lets copy before we add currents
+
+ copy Purk_maind Purk_thickd
+ end
+ if (!({exists Purk_spinyd})) // Lets copy before we add currents
+
+ copy Purk_maind Purk_spinyd
+ end
+
+ copy Purk_CaT Purk_maind/CaT
+ addmsg Purk_maind Purk_maind/CaT VOLTAGE Vm
+ addmsg Purk_maind/CaT Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/CaT Gbar {{GCaTm}*surf}
+ copy Purk_KA Purk_maind/KA
+ addmsg Purk_maind Purk_maind/KA VOLTAGE Vm
+ addmsg Purk_maind/KA Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KA Gbar {{GKAm}*surf}
+ copy Purk_Kdr Purk_maind/Kdr
+ addmsg Purk_maind Purk_maind/Kdr VOLTAGE Vm
+ addmsg Purk_maind/Kdr Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/Kdr Gbar {{GKdrm}*surf}
+ copy Purk_KM Purk_maind/KM
+ addmsg Purk_maind Purk_maind/KM VOLTAGE Vm
+ addmsg Purk_maind/KM Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KM Gbar {{GKMm}*surf}
+ copy Purk_CaP Purk_maind/CaP
+ addmsg Purk_maind Purk_maind/CaP VOLTAGE Vm
+ addmsg Purk_maind/CaP Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/CaP Gbar {{GCaPm}*surf}
+ copy Purk_KC Purk_maind/KC
+ addmsg Purk_maind Purk_maind/KC VOLTAGE Vm
+ addmsg Purk_maind/KC Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/KC Gbar {{GKCm}*surf}
+ copy Purk_K2 Purk_maind/K2
+ addmsg Purk_maind Purk_maind/K2 VOLTAGE Vm
+ addmsg Purk_maind/K2 Purk_maind CHANNEL Gk Ek
+ setfield Purk_maind/K2 Gbar {{GK2m}*surf}
+ create Ca_concen Purk_maind/Ca_pool
+ setfield Purk_maind/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_maind/CaT Purk_maind/Ca_pool I_Ca Ik
+ addmsg Purk_maind/CaP Purk_maind/Ca_pool I_Ca Ik
+ addmsg Purk_maind/Ca_pool Purk_maind/KC CONCEN Ca
+ addmsg Purk_maind/Ca_pool Purk_maind/K2 CONCEN Ca
+ create nernst Purk_maind/Ca_nernst
+ setfield Purk_maind/Ca_nernst Cin {CCaI} Cout {CCaO} valency {2} \
+ scale {1.0} T {37}
+ addmsg Purk_maind/Ca_pool Purk_maind/Ca_nernst CIN Ca
+ addmsg Purk_maind/Ca_nernst Purk_maind/CaP EK E
+ addmsg Purk_maind/Ca_nernst Purk_maind/CaT EK E
+ copy GABA2 Purk_maind/basket
+ setfield Purk_maind/basket gmax {{GB_GABA}*surf/2}
+ addmsg Purk_maind/basket Purk_maind CHANNEL Gk Ek
+ addmsg Purk_maind Purk_maind/basket VOLTAGE Vm
+
+ /* make thick dendrite prototype with fast Ca current */
+ /* similar to main dendrite but has CaP and no Kdr */
+ /* passive prototype already copied from Purk_maind */
+ copy Purk_CaT Purk_thickd/CaT
+ addmsg Purk_thickd Purk_thickd/CaT VOLTAGE Vm
+ addmsg Purk_thickd/CaT Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/CaT Gbar {{GCaTt}*surf}
+ copy Purk_CaP Purk_thickd/CaP
+ addmsg Purk_thickd Purk_thickd/CaP VOLTAGE Vm
+ addmsg Purk_thickd/CaP Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/CaP Gbar {{GCaPt}*surf}
+ copy Purk_KM Purk_thickd/KM
+ addmsg Purk_thickd Purk_thickd/KM VOLTAGE Vm
+ addmsg Purk_thickd/KM Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/KM Gbar {{GKMt}*surf}
+ copy Purk_KC Purk_thickd/KC
+ addmsg Purk_thickd Purk_thickd/KC VOLTAGE Vm
+ addmsg Purk_thickd/KC Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/KC Gbar {{GKCt}*surf}
+ copy Purk_K2 Purk_thickd/K2
+ addmsg Purk_thickd Purk_thickd/K2 VOLTAGE Vm
+ addmsg Purk_thickd/K2 Purk_thickd CHANNEL Gk Ek
+ setfield Purk_thickd/K2 Gbar {{GK2t}*surf}
+ create Ca_concen Purk_thickd/Ca_pool
+ setfield Purk_thickd/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_thickd/CaT Purk_thickd/Ca_pool I_Ca Ik
+ addmsg Purk_thickd/CaP Purk_thickd/Ca_pool I_Ca Ik
+ addmsg Purk_thickd/Ca_pool Purk_thickd/KC CONCEN Ca
+ addmsg Purk_thickd/Ca_pool Purk_thickd/K2 CONCEN Ca
+ create nernst Purk_thickd/Ca_nernst
+ setfield Purk_thickd/Ca_nernst Cin {CCaI} Cout {CCaO} \
+ valency {2} scale {1.0} T {37}
+ addmsg Purk_thickd/Ca_pool Purk_thickd/Ca_nernst CIN Ca
+ addmsg Purk_thickd/Ca_nernst Purk_thickd/CaP EK E
+ addmsg Purk_thickd/Ca_nernst Purk_thickd/CaT EK E
+ for (i=1; i<=2; i = i+1)
+ copy GABA Purk_thickd/stell{i}
+ setfield Purk_thickd/stell{i} gmax {{G_GABA}/5*surf}
+ addmsg Purk_thickd/stell{i} Purk_thickd CHANNEL Gk Ek
+ addmsg Purk_thickd Purk_thickd/stell{i} VOLTAGE Vm
+ end
+
+ /* make spiny dendrite prototype with high threshold Ca current \
+ */
+ /* passive prototype already copied from Purk_maind */
+ copy Purk_CaT Purk_spinyd/CaT
+ addmsg Purk_spinyd Purk_spinyd/CaT VOLTAGE Vm
+ addmsg Purk_spinyd/CaT Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/CaT Gbar {{GCaTd}*surf}
+ copy Purk_CaP Purk_spinyd/CaP
+ addmsg Purk_spinyd Purk_spinyd/CaP VOLTAGE Vm
+ addmsg Purk_spinyd/CaP Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/CaP Gbar {{GCaPd}*surf}
+ copy Purk_KM Purk_spinyd/KM
+ addmsg Purk_spinyd Purk_spinyd/KM VOLTAGE Vm
+ addmsg Purk_spinyd/KM Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/KM Gbar {{GKMd}*surf}
+ copy Purk_KC Purk_spinyd/KC
+ addmsg Purk_spinyd Purk_spinyd/KC VOLTAGE Vm
+ addmsg Purk_spinyd/KC Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/KC Gbar {{GKCd}*surf}
+ copy Purk_K2 Purk_spinyd/K2
+ addmsg Purk_spinyd Purk_spinyd/K2 VOLTAGE Vm
+ addmsg Purk_spinyd/K2 Purk_spinyd CHANNEL Gk Ek
+ setfield Purk_spinyd/K2 Gbar {{GK2d}*surf}
+ create Ca_concen Purk_spinyd/Ca_pool
+ setfield Purk_spinyd/Ca_pool tau {CaTau} \
+ B {1.0/(2.0*96494*shell_vol)} Ca_base {CCaI} \
+ thick {Shell_thick}
+ addmsg Purk_spinyd/CaP Purk_spinyd/Ca_pool I_Ca Ik
+ addmsg Purk_spinyd/CaT Purk_spinyd/Ca_pool I_Ca Ik
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/KC CONCEN Ca
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/K2 CONCEN Ca
+ create nernst Purk_spinyd/Ca_nernst
+ setfield Purk_spinyd/Ca_nernst Cin {CCaI} Cout {CCaO} \
+ valency {2} scale {1.0} T {37}
+ addmsg Purk_spinyd/Ca_pool Purk_spinyd/Ca_nernst CIN Ca
+ addmsg Purk_spinyd/Ca_nernst Purk_spinyd/CaP EK E
+ addmsg Purk_spinyd/Ca_nernst Purk_spinyd/CaT EK E
+ copy GABA Purk_spinyd/stell
+ setfield Purk_spinyd/stell gmax {{G_GABA}*surf}
+ addmsg Purk_spinyd/stell Purk_spinyd CHANNEL Gk Ek
+ addmsg Purk_spinyd Purk_spinyd/stell VOLTAGE Vm
+end
+
+/*********************************************************************/
+function make_Purkinje_spines
+/* separate function so we can have local variables */
+/* one standard format, may be rescaled in attach_spines */
+/* Reference: Harris KM, Stevens JK: Dendritic spines of rat
+** cerebellar Purkinje cells: serial electron microscopy with
+** reference to their biophysical characteristics. J Neurosci 8: p
+** 4455-4469, 1988. */
+
+ float len, dia, surf, vol
+
+ /* make spine with average length and diameter */
+ /* make spine neck */
+ len = 0.66e-6
+ dia = 0.20e-6
+ surf = len*dia*{PI}
+ vol = len*dia*dia*{PI}/4.0
+ if (!({exists Purk_spine}))
+ create compartment Purk_spine
+ end
+ setfield Purk_spine Cm {{CM}*surf} \
+ Ra {4.0*{RA}*len/(dia*dia*{PI})} Em {ELEAK} \
+ initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 x {len} dia {dia} \
+ len {len}
+
+ /* make spine head */
+ len = 0.00e-6
+ // derived from average surface
+ dia = 0.54e-6
+ surf = dia*dia*{PI}
+ create compartment Purk_spine/head
+ setfield Purk_spine/head Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})} \
+ Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/surf} inject 0.0 \
+ x {dia} dia {dia} len {len}
+
+ /* make a combined prototype: neck+head */
+ addmsg Purk_spine/head Purk_spine RAXIAL Ra Vm
+ addmsg Purk_spine Purk_spine/head AXIAL Vm
+
+ copy Purk_spine Purk_spine2
+
+ /* put non-NMDA channel on combined prototype */
+ copy non_NMDA Purk_spine/head/par
+ setfield Purk_spine/head/par gmax {{G_par_syn}*surf}
+ addmsg Purk_spine/head Purk_spine/head/par VOLTAGE Vm
+ addmsg Purk_spine/head/par Purk_spine/head CHANNEL Gk Ek
+
+ /* put non-NMDA channel on combined prototype */
+ copy non_NMDA2 Purk_spine2/head/par2
+ setfield Purk_spine2/head/par2 gmax {{G_par_syn}*surf}
+ addmsg Purk_spine2/head Purk_spine2/head/par2 VOLTAGE Vm
+ addmsg Purk_spine2/head/par2 Purk_spine2/head CHANNEL Gk Ek
+
+end
+/*********************************************************************/
Index: 0.58/movie.g
--- 0.58/movie.g Thu, 04 Apr 2002 11:22:47 +0200 hugo ()
+++ parpat-storage-film.3/movie.g Fri, 29 Sep 2000 20:06:06 +0200 hugo (purkinje/b/8_movie.g 1.2 644)
@@ -0,0 +1,219 @@
+// genesis
+
+int include_movie
+
+if ( {include_movie} == 0 )
+
+ include_movie = 1
+
+
+int movie_static = 0
+
+
+///
+/// SH: GIFMake
+///
+/// PA: xwID....: window ID to create gif file for
+/// label...: label to prepend to the file name
+/// iBegin..: first step
+/// iEnd....: last step
+///
+/// DE: Dump gif for window xwID, unique for ({label},{time})
+///
+///
+
+function GIFMake(xwID,label,iBegin,iEnd)
+
+str xwID
+str label
+int iBegin
+int iEnd
+
+ //- get actual step
+
+// echo {xwID} {label} {iBegin} {iEnd}
+
+ str actual = {getstat -step}
+
+ if (actual >= iBegin && actual < iEnd)
+
+/*
+ // dump gif file
+
+ xwd -silent -id {xwID} \
+ | xwdtopnm \
+ | ppmtogif >{label}.{actual}.gif
+*/
+
+ xdump /xcell {label}.{actual}.ppm
+ end
+end
+
+
+///
+/// SH: MovieCreateElements
+///
+/// PA: path...: parent xform for created elements (ending in '/')
+/// label..: prefix label for filenames
+/// iBegin.: first step
+/// iEnd...: last step
+///
+/// RE: Movie handle
+///
+/// DE: Create elements for creating a movie of the given xform
+/// Created elements use clock 11
+///
+
+function MovieCreateElements(path,label,iBegin,iEnd)
+
+str path
+str label
+int iBegin
+int iEnd
+
+ //- give diagnostics
+
+ echo "Creating movie elements for "{path}" with label "{label}
+
+ //- create a movie handle
+
+ str movieHandle = { {path} @ "_movie" @ {movie_static} }
+
+ //- create script out
+
+ create script_out {movieHandle}
+
+ //- add and set path field
+
+ addfield {movieHandle} path -description "Path to take snapshots from"
+
+ setfield {movieHandle} \
+ path {path}
+
+ //- increment movie element count
+
+ movie_static = {movie_static} + 1
+
+ //- set clock
+
+ useclock {movieHandle} 11
+
+ //- set command to create an image at every time step
+
+/*
+** failure of lexical analyzer with this one
+**
+ setfield ^ \
+ command {"xwd -silent -id " \
+ @ {getfield {path} xwID} \
+ @ " | xwdtopnm | ppmtogif >" \
+ @ {label} \
+ @ ".{getstat -time}" \
+ @ ".gif"}
+*/
+
+ setfield {movieHandle} \
+ command {"GIFMake " \
+ @ {getfield {path} xwID} \
+ @ " " \
+ @ {label} \
+ @ " " \
+ @ {iBegin} \
+ @ " " \
+ @ {iEnd}}
+
+// create script_out {path}sched
+
+// useclock ^ 10
+
+// setfield ^ command "echo Scheduled at {getstat -time}"
+
+ //- schedule elements
+
+ //call {path}_movie RESET
+
+ reset
+
+ //- return created movie handle
+
+ return {movieHandle}
+end
+
+
+///
+/// SH: MovieSchedule
+///
+/// PA: handle.: movie handle to schedule
+/// label..: prefix label for filenames
+/// iBegin.: first step
+/// iEnd...: last step
+///
+/// DE: Schedule a movie handle
+///
+/// first call MovieCreateElements on the given xform to init.
+///
+
+function MovieSchedule(handle,label,iBegin,iEnd)
+
+str handle
+str label
+int iBegin
+int iEnd
+
+ //- give diagnostics
+
+ echo "Scheduling movie elements for "{handle}" with label "{label}
+
+ //- set command to create an image at every time step
+
+/*
+** failure of lexical analyzer with this one
+**
+ setfield ^ \
+ command {"xwd -silent -id " \
+ @ {getfield {path} xwID} \
+ @ " | xwdtopnm | ppmtogif >" \
+ @ {label} \
+ @ ".{getstat -time}" \
+ @ ".gif"}
+*/
+
+ //echo "Film for widget : "{getfield {handle} path}
+
+/*
+** script_out cannot handle added fields, {path} not available
+*/
+/* setfield {handle} \ */
+/* command {"GIFMake " \ */
+/* @ {getfield {getfield {handle} path} xwID} \ */
+/* @ " " \ */
+/* @ {label} \ */
+/* @ " " \ */
+/* @ {iBegin} \ */
+/* @ " " \ */
+/* @ {iEnd}} */
+
+/*
+** hardcoded path
+*/
+
+ setfield {handle} \
+ command {"GIFMake " \
+ @ {getfield "/xcell" xwID} \
+ @ " " \
+ @ {label} \
+ @ " " \
+ @ {iBegin} \
+ @ " " \
+ @ {iEnd}}
+
+ //- schedule elements
+
+ call {handle} RESET
+
+end
+
+
+end
+
+