source: project/release/4/picnic/tags/1.0/examples/GLHP.picnic @ 30720

Last change on this file since 30720 was 30720, checked in by Ivan Raikov, 7 years ago

picnic release 1.0

File size: 9.7 KB
Line 
1;;
2;; A model of the projections between Golgi and granule cells in
3;; cerebellar granular layer.
4;;
5;; Copyright 2012-2014 Ivan Raikov and the Okinawa Institute of Science and Technology
6;;
7;; This program is free software: you can redistribute it and/or
8;; modify it under the terms of the GNU General Public License as
9;; published by the Free Software Foundation, either version 3 of the
10;; License, or (at your option) any later version.
11;;
12;; This program is distributed in the hope that it will be useful, but
13;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15;; General Public License for more details.
16;;
17;; A full copy of the GPL license can be found at
18;; <http://www.gnu.org/licenses/>.
19;;
20
21picnic-model
22  GL
23       config PFlength
24       
25       config PCLdepth
26       
27       config numAxonGolgi  ;; GoC axonal dimensions
28       config GoC_Axon_Xmin
29       config GoC_Axon_Xmax
30       config GoC_Axon_Ymin
31       config GoC_Axon_Ymax
32       config GoC_Axon_Zmin
33       config GoC_Axon_Zmax
34       
35       config GoC_nDendML ;; GoC # of apical dendrites
36       config GoC_nDendGL ;; GoC # of basolateral dendrites
37       
38       config GoC_Ad_nseg ;; GoC apical dendrites number of segments
39       config GoC_Ad_nsegpts ;; GoC apical dendrites number of points per segment
40       
41       config GoC_Bd_nseg
42       config GoC_Bd_nsegpts
43       
44       config GoC_PhysApicalDendH
45       config GoC_PhysApicalDendR
46       config GoC_Atheta_min
47       config GoC_Atheta_max
48       config GoC_Atheta_stdev
49
50       config GoC_PhysBasolateralDendH
51       config GoC_PhysBasolateralDendR
52       config GoC_Btheta_min
53       config GoC_Btheta_max
54       config GoC_Btheta_stdev
55       
56       config AAtoGoCzone
57       config PFtoGoCzone
58       config GoCtoGoCzone
59       config GoCtoGoCgapzone
60       
61       config GoCxrange
62       config GoCyrange
63       
64       const xExtent = GoCxrange
65       const yExtent = GoCyrange
66       
67       component (type local-cell-forest) (name GC)
68       
69       
70         component (type layout) (name GranuleTcoordinates)
71                   
72                    s = PointsFromFile ("GCTcoordinates.dat")
73                   
74                    output s
75
76         component (type section) (name AscendingAxons)
77                   
78                    fun f (gid origin)
79                      let ((dX 0) (dY 0) (dZ (neg (PCLdepth))))
80                        LineSegment (origin dX dY dZ)
81                   
82                    const n = 1
83                   
84                    p (u) = (generator f) (npts 4)
85                   
86                    output u n
87         
88         
89        component (type section) (name ParallelFibers)
90         
91                    component (type perturbation)
92                               
93                               fun pf (gid origin init)
94                                 let ((period (randomUniform (1.0 ~ (PFlength / 40.0) ~ init)))
95                                       (phase  0.0));;(randomUniform (0.0 ~ 10.0 ~ init))))
96                                   ;; Harmonic (amplitude period phase npts)
97                                   Harmonic (10.0 period phase 40)
98                               
99                               const n = 3
100                               
101                               p (s) = (generator pf) (initial (randomInit (39)))
102                               
103                               output s n
104                   
105                    fun f (gid origin)
106                      let ((dX (PFlength / 2)) (dY 0) (dZ 0))
107                        LineSegment (origin dX dY dZ)
108                   
109                    fun g (gid origin)
110                      let ((dX (PFlength / 2)) (dY 0) (dZ 0))
111                        LineSegment (origin ~ (neg (dX)) ~ dY ~ dZ)
112                   
113                    const n = 1
114                   
115                    ;; process u grows in the positive X direction
116                    ;; process v grows in the negative X direction
117                    p (u) = (generator f) (npts 200)
118                    p (v) = (generator g) (npts 200)
119                   
120                    output u n v n
121
122       
123       component (type cell-forest) (name GoC)
124         
125          component (type layout) (name GolgiCoordinates)
126                   
127                    s = (PointsFromFile ("GoCcoordinates.dat"))
128                   
129                    output s
130                   
131                   
132         component (type section) (name BasolateralDendrites)
133                     
134                   
135                    fun f (gid origin init)
136                      let (
137                           (thetaDeg (randomNormal (GoC_Btheta_min GoC_Btheta_stdev init)))
138                           (theta    ((PI / 180) * thetaDeg))
139                           (dX (GoC_PhysBasolateralDendR * cos (theta)))
140                           (dY (GoC_PhysBasolateralDendR * sin (theta)))
141                           (dZ GoC_PhysBasolateralDendH)
142                          )
143                        LineSegment (origin dX dY dZ)
144                     
145                     
146                    fun g (gid origin init)
147                      let (
148                           (thetaDeg (randomNormal (GoC_Btheta_max GoC_Btheta_stdev init)))
149                           (theta    ((PI / 180) * thetaDeg))
150                           (dX (GoC_PhysBasolateralDendR * cos (theta)))
151                           (dY (GoC_PhysBasolateralDendR * sin (theta)))
152                           (dZ GoC_PhysBasolateralDendH)
153                          )
154                        LineSegment (origin dX dY dZ)
155                       
156                       
157                    const n = 1
158                   
159                    segp (u) = (generator f) (initial (randomInit (13))) (nsegs GoC_Bd_nseg) (nsegpts GoC_Bd_nsegpts)
160
161                    segp (v) = (generator g) (initial (randomInit (13))) (nsegs GoC_Bd_nseg) (nsegpts GoC_Bd_nsegpts)
162                   
163                    output u n v n
164                     
165         component (type section) (name ApicalDendrites)
166
167                    fun f (gid origin init)
168                      let (
169                            (thetaDeg (randomNormal (GoC_Atheta_min GoC_Atheta_stdev init)))
170                            (theta    ((PI / 180) * thetaDeg))
171                            (dX (GoC_PhysApicalDendR * cos (theta)))
172                            (dY (GoC_PhysApicalDendR * sin (theta)))
173                            (dZ GoC_PhysApicalDendH)
174                           )
175                        LineSegment (origin dX dY dZ)
176
177                   
178                    fun g (gid origin init)
179                      let (
180                            (thetaDeg (randomNormal (GoC_Atheta_max GoC_Atheta_stdev init)))
181                            (theta    ((PI / 180) * thetaDeg))
182                            (dX (GoC_PhysApicalDendR * cos (theta)))
183                            (dY (GoC_PhysApicalDendR * sin (theta)))
184                            (dZ GoC_PhysApicalDendH)
185                           )
186                        LineSegment (origin dX dY dZ)
187                   
188                    const n = 1
189
190                    segp (u) = (generator f) (initial (randomInit (17)))
191                               (nsegs GoC_Ad_nseg) (nsegpts GoC_Ad_nsegpts)
192                   
193                    segp (v) = (generator g) (initial (randomInit (17)))
194                               (nsegs GoC_Ad_nseg) (nsegpts GoC_Ad_nsegpts)
195                   
196                    output u n v n
197         
198         component (type section) (name Axons)
199                   
200                    const n = numAxonGolgi
201
202                    fun f (gid origin init)
203                      let (
204                           (dX (randomUniform (GoC_Axon_Xmin GoC_Axon_Xmax init)))
205                           (dY (randomUniform (GoC_Axon_Ymin GoC_Axon_Ymax init)))
206                           (dZ (randomUniform (GoC_Axon_Zmin GoC_Axon_Zmax init)))
207                          )
208                        LineSegment (origin dX dY dZ)
209                   
210                    p (u) = (generator f) (initial (randomInit (23)))
211                   
212                    output u n
213       
214       component (type projection)
215           
216            input (GC from cell-forests) (GoC from cell-forests)
217           
218            r = PFtoGoCzone
219           
220            set source = (section GC ParallelFibers)
221            set target = (section GoC ApicalDendrites)
222             
223            PFtoGoC = SegmentProjection (r source target)
224           
225            output PFtoGoC
226           
227       component (type projection)
228           
229            input (GC from cell-forests) (GoC from cell-forests)
230           
231            r = AAtoGoCzone
232             
233            set source = (section GC AscendingAxons)
234            set target = union
235                           (section GoC ApicalDendrites)
236                           (section GoC BasolateralDendrites)
237           
238            AAtoGoC = SegmentProjection (r source target)
239           
240            output AAtoGoC
241           
242       component (type projection)
243           
244            input (GoC from cell-forests)
245           
246            r = GoCtoGoCzone
247           
248            set source = (section GoC Axons)
249            set target = (population GoC)
250           
251            GoCtoGoC = Projection (r source target)
252             
253            output GoCtoGoC
254
255       component (type projection)
256           
257            input (GoC from cell-forests)
258           
259            r = GoCtoGoCgapzone
260             
261            set source = (population GoC)
262            set target = (population GoC)
263           
264            GoCtoGoCgap = Projection (r source target)
265           
266            output GoCtoGoCgap
Note: See TracBrowser for help on using the repository browser.