Changeset 31090 in project


Ignore:
Timestamp:
07/06/14 05:46:05 (6 years ago)
Author:
Ivan Raikov
Message:

picnic: added examples to documentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wiki/eggref/4/picnic

    r31001 r31090  
    7070points in two layers that are close enough to be considered connected.
    7171
    72 === Data structures
    73 
    74 
    75 
    7672=== Model description language
    7773
     74The following constructs comprise the model description language:
     75
     76 INPUT {ID} | {ID} [AS {LOCAL-ID}] [FROM {NAMESPACE}] ...
     77
     78Declares one or several imported quantities. If the optional AS parameter is given, then the quantity is imported as {LOCAL-ID}. If the optional FROM parameter is given, then the quantity is imported from namespace {NAMESPACE}.
     79
     80  OUTPUT {ID}
     81
     82Declares that an existing quantity be exported.
     83
     84  CONST {ID} = {EXPR}
     85
     86Declares a constant quantity (its value will be computed at declaration time).
     87
     88  FUN {ID} ( {ARG-ID} ... ) {EXPR}
     89Declares a function (a parameterized expression with no free variables).
     90
     91  {ID} = {EXPR}
     92
     93Declares an assigned quantity (an expression that can refer to other quantities in the system).
     94
     95 PROCESS ( {ID} ) = (GENERATOR {F}) (npts {N})
     96
     97Declares a process quantity. {F} is the generating function that returns the parametric curves for this process.
     98
     99  COMPONENT ( TYPE {ID} ) ( NAME {ID} ) {ELEMENTS} )
     100
     101Declares a system component (a quantity that can contain other quantities).
     102
     103=== Examples
     104
     105 picnic-model
     106  GL
     107       config PFlength
     108       config PFlengthSlope ;; how much the PF length decreases with depth
     109                            ;; PFs deeper in the molecular layer tend to be shorter
     110                            ;; (Pichitpornchai et al, 1994)
     111       
     112       config MLdepth
     113       config PCLdepth
     114       
     115       config numAxonGolgi  ;; GoC axonal dimensions
     116       config GoC_Axon_Xmin
     117       config GoC_Axon_Xmax
     118       config GoC_Axon_Ymin
     119       config GoC_Axon_Ymax
     120       config GoC_Axon_Zmin
     121       config GoC_Axon_Zmax
     122       
     123       config GoC_nDendML ;; GoC # of apical dendrites
     124       config GoC_nDendGL ;; GoC # of basolateral dendrites
     125       
     126       config GoC_Ad_nseg ;; GoC apical dendrites number of segments
     127       config GoC_Ad_nsegpts ;; GoC apical dendrites number of points per segment
     128       
     129       config GoC_Bd_nseg
     130       config GoC_Bd_nsegpts
     131       
     132       config GoC_PhysApicalDendH
     133       config GoC_PhysApicalDendR
     134       config GoC_Atheta_min
     135       config GoC_Atheta_max
     136       config GoC_Atheta_stdev
     137
     138       config GoC_PhysBasolateralDendH
     139       config GoC_PhysBasolateralDendR
     140       config GoC_Btheta_min
     141       config GoC_Btheta_max
     142       config GoC_Btheta_stdev
     143       
     144       config AAtoGoCzone
     145       config PFtoGoCzone
     146       config GoCtoGoCzone
     147       config GoCtoGoCgapzone
     148       
     149       config GoCxrange
     150       config GoCyrange
     151       
     152       const xExtent = GoCxrange
     153       const yExtent = GoCyrange
     154       
     155       component (type local-cell-forest) (name GC)
     156       
     157       
     158         component (type layout) (name GCTcoordinates)
     159                   
     160                    s = (PointsFromFile ("GCTcoordinates1.dat"))
     161                   
     162                    output s
     163
     164         component (type pointset) (name GC)
     165                   
     166                    s = (PointsFromFile ("GCcoordinates.dat"))
     167                   
     168                    output s
     169
     170         component (type pointset) (name GCT)
     171                   
     172                    s = (PointsFromFile ("GCTcoordinates.dat"))
     173                   
     174                    output s
     175
     176         component (type section) (name AscendingAxons)
     177                   
     178                    fun f (gid origin)
     179                      let ((dX 0) (dY 0) (dZ (neg (PCLdepth))))
     180                        LineSegment (origin dX dY dZ)
     181                   
     182                    const n = 1
     183                   
     184                    p (u) = (generator f) (npts 4)
     185                   
     186                    output u n
     187         
     188         
     189        component (type section) (name ParallelFibers)
     190         
     191                    component (type perturbation)
     192                               
     193                               fun pf (gid origin init)
     194                                 let ((period (randomUniform ((PFlength / 50.0) ~ (PFlength / 30.0) ~ init)))
     195                                      (phase  (randomUniform (0.0 ~ 10.0 ~ init))))
     196                                   ;; Harmonic (amplitude period phase npts)
     197                                   Harmonic (0 5.0 period phase 50)
     198                               
     199                               const n = 2
     200                               
     201                               p (s) = (generator pf) (initial (randomInit (randomSeed ())))
     202                               
     203                               output s n
     204                                                   
     205                    component (type perturbation)
     206                               
     207                               fun pf (gid origin init)
     208                                 let ((period (randomUniform ((PFlength / 4.0) ~ (PFlength / 10.0) ~ init)))
     209                                      (phase  (randomUniform (0.0 ~ 10.0 ~ init))))
     210                                   ;; Harmonic (amplitude period phase npts)
     211                                   Harmonic (1 0.5 period phase 50)
     212                               
     213                               const n = 2
     214                               
     215                               p (s) = (generator pf) (initial (randomInit (randomSeed ())))
     216                               
     217                               output s n
     218                   
     219                   
     220                    fun f (gid origin)
     221                      let ((z (pointCoord (2 origin))) ;; depth of this PF
     222                           (dX (PFlengthSlope * (z - MLdepth) + (PFlength / 2))) (dY 0) (dZ 0))
     223                        LineSegment (origin dX dY dZ)
     224                   
     225                    fun g (gid origin)
     226                      let ((z (pointCoord (2 origin))) ;; depth of this PF
     227                           (dX (PFlengthSlope * (z - MLdepth) + (PFlength / 2))) (dY 0) (dZ 0))
     228                        LineSegment (origin ~ (neg (dX)) ~ dY ~ dZ)
     229                   
     230                    const n = 1
     231                   
     232                    ;; process u grows in the positive X direction
     233                    ;; process v grows in the negative X direction
     234                    p (u) = (generator f) (sampler (polynomial 0.003 0.0085 0.0085 )) (npts 200)
     235                    p (v) = (generator g) (sampler (polynomial 0.003 0.0085 0.0085 )) (npts 200)
     236                   
     237                    output u n v n
     238
     239       
     240       component (type cell-forest) (name GoC)
     241         component (type layout) (name GolgiCoordinates)
     242                    s = (PointsFromFile ("GoCcoordinates.dat"))
     243                    output s
     244         component (type section) (name BasolateralDendrites)
     245                    fun f (gid origin init)
     246                      let (
     247                           (thetaDeg (randomNormal (GoC_Btheta_min GoC_Btheta_stdev init)))
     248                           (theta    ((PI / 180) * thetaDeg))
     249                           (dX (GoC_PhysBasolateralDendR * cos (theta)))
     250                           (dY (GoC_PhysBasolateralDendR * sin (theta)))
     251                           (dZ GoC_PhysBasolateralDendH)
     252                          )
     253                        LineSegment (origin dX dY dZ)
     254                    fun g (gid origin init)
     255                      let (
     256                           (thetaDeg (randomNormal (GoC_Btheta_max GoC_Btheta_stdev init)))
     257                           (theta    ((PI / 180) * thetaDeg))
     258                           (dX (GoC_PhysBasolateralDendR * cos (theta)))
     259                           (dY (GoC_PhysBasolateralDendR * sin (theta)))
     260                           (dZ GoC_PhysBasolateralDendH)
     261                          )
     262                        LineSegment (origin dX dY dZ)
     263                    const n = 1
     264                    segp (u) = (generator f) (initial (randomInit (randomSeed ()))) (nsegs GoC_Bd_nseg) (nsegpts GoC_Bd_nsegpts)
     265                    segp (v) = (generator g) (initial (randomInit (randomSeed ()))) (nsegs GoC_Bd_nseg) (nsegpts GoC_Bd_nsegpts)
     266                    output u n v n
     267
     268         component (type section) (name ApicalDendrites)
     269                    fun f (gid origin init)
     270                      let (
     271                            (thetaDeg (randomNormal (GoC_Atheta_min GoC_Atheta_stdev init)))
     272                            (theta    ((PI / 180) * thetaDeg))
     273                            (dX (GoC_PhysApicalDendR * cos (theta)))
     274                            (dY (GoC_PhysApicalDendR * sin (theta)))
     275                            (dZ GoC_PhysApicalDendH)
     276                           )
     277                        LineSegment (origin dX dY dZ)
     278                    fun g (gid origin init)
     279                      let (
     280                            (thetaDeg (randomNormal (GoC_Atheta_max GoC_Atheta_stdev init)))
     281                            (theta    ((PI / 180) * thetaDeg))
     282                            (dX (GoC_PhysApicalDendR * cos (theta)))
     283                            (dY (GoC_PhysApicalDendR * sin (theta)))
     284                            (dZ GoC_PhysApicalDendH)
     285                           )
     286                        LineSegment (origin dX dY dZ)
     287                    const n = 1
     288                    segp (u) = (generator f) (initial (randomInit (randomSeed ()))) (nsegs GoC_Ad_nseg) (nsegpts GoC_Ad_nsegpts)
     289                    segp (v) = (generator g) (initial (randomInit (randomSeed ()))) (nsegs GoC_Ad_nseg) (nsegpts GoC_Ad_nsegpts)
     290                    output u n v n
     291
     292         component (type section) (name Axons)
     293                    const n = numAxonGolgi
     294                    fun f (gid origin init)
     295                      let (
     296                           (dX (randomUniform (GoC_Axon_Xmin GoC_Axon_Xmax init)))
     297                           (dY (randomUniform (GoC_Axon_Ymin GoC_Axon_Ymax init)))
     298                           (dZ (randomUniform (GoC_Axon_Zmin GoC_Axon_Zmax init)))
     299                          )
     300                        LineSegment (origin dX dY dZ)
     301                    p (u) = (generator f) (initial (randomInit (randomSeed ())))
     302                    output u n
     303       
     304       component (type projection)
     305           
     306            input (GC from cell-forests) (GoC from cell-forests)
     307           
     308            r = PFtoGoCzone
     309           
     310            set source = (section GC ParallelFibers)
     311            set target = (section GoC ApicalDendrites)
     312             
     313            PFtoGoC = (SegmentProjection (r source target))
     314           
     315            output PFtoGoC
     316           
     317       component (type projection)
     318           
     319            input (GC from cell-forests) (GoC from cell-forests)
     320           
     321            r = AAtoGoCzone
     322             
     323            set source = (section GC AscendingAxons)
     324            set target =
     325                         union
     326                           section GoC ApicalDendrites
     327                           section GoC BasolateralDendrites
     328           
     329            AAtoGoC = (SegmentProjection (r source target))
     330           
     331            output AAtoGoC
     332           
     333       component (type projection)
     334           
     335            input (GoC from cell-forests)
     336           
     337            r = GoCtoGoCzone
     338           
     339            set source = (section GoC Axons)
     340            set target = (population GoC)
     341           
     342            GoCtoGoC = (Projection (r source target))
     343             
     344            output GoCtoGoC
     345
     346       component (type projection)
     347           
     348            input (GoC from cell-forests)
     349           
     350            r = GoCtoGoCgapzone
     351             
     352            set source = (population GoC)
     353            set target = (population GoC)
     354           
     355            GoCtoGoCgap = (Projection (r source target))
     356           
     357            output GoCtoGoCgap
    78358
    79359
Note: See TracChangeset for help on using the changeset viewer.