Documentation is in genesis-2.3/genesis/Doc
uses current sources and their distance from the electrode site to calculate the field
Examples in genesis/Scripts/piriform/field.g and UGTD2/Tutorials/networks/hippo2
typically with a time step that is larger than that used by the main simulation clock 0.
Examples (with and without hsolve) in UGTD2/Tutorials/networks VAnet2 and ACnet2-GENESIS
script_out.txt - executes a script command at each clock step
Example:
// spikebeep.g - illustrate the use of the script_out element to beep // whenever a spike is produced (assuming your terminal window // beeps when a ctrl-G is echoed). // Include this file at the end of Scripts/tutorials/tutorial4.g // The script_out element checks for a spike at every simulation step create script_out /catchspike setfield /catchspike command "checkspike" useclock /catchspike 0 function checkspike if ({getfield /cell/soma/spike state} != 0) echo {chr 7} -nonewline end end
hsolve.txt - the main documentation
BoG Chapter 20 Sec 20.5 and following sections
Single cell example:
int hflag = 1 // use hsolve if hflag = 1 str cellpath = "/cell" readcell RScell.p {cellpath} if (hflag) create hsolve {cellpath}/solver setfield {cellpath}/solver path "/cell/##[][TYPE=compartment]" setmethod 11 setfield {cellpath}/solver chanmode {hsolve_chanmode} call {cellpath}/solver SETUP reset echo "Using hsolve" end
UGTD2/Tutorials/advanced-tutorials/hsolve-cornelis/index.html Simulations with GENESIS using hsolve
Section 3 - Networks of cells
Detailed network example: UGTD2/Tutorials/networks/VAnet2/VAnet2-batch.g:
createmap /library/Ex_cell /Ex_layer {Ex_NX} {Ex_NY} \ -delta {Ex_SEP_X} {Ex_SEP_Y} /* Step 4: Setting up hsolve for a network requires setting up a solver for one cell of each type in the network and then duplicating the solvers for the remaining cells. The procedure is described in the advanced tutorial 'Simulations with GENESIS using hsolve by Hugo Cornelis' at genesis-sim.org/GENESIS/UGTD/Tutorials/advanced-tutorials */ if(hflag) pushe /Ex_layer/Ex_cell[0] create hsolve solver setmethod solver 11 // Use Crank-Nicholson setfield solver chanmode {hsolve_chanmode} path "../soma" call solver SETUP int i for (i = 1 ; i < {Ex_NX*Ex_NY} ; i = i + 1) call solver DUPLICATE \ /Ex_layer/Ex_cell[{i}]/solver ../soma setfield /Ex_layer/Ex_cell[{i}]/solver \ x {getfield /Ex_layer/Ex_cell[{i}]/soma x} \ y {getfield /Ex_layer/Ex_cell[{i}]/soma y} \ z {getfield /Ex_layer/Ex_cell[{i}]/soma z} end pope pushe /Inh_layer/Inh_cell[0] create hsolve solver setmethod solver 11 setfield solver chanmode {hsolve_chanmode} path "../[][TYPE=compartment]" call solver SETUP int i for (i = 1 ; i < {Inh_NX*Inh_NY} ; i = i + 1) call solver DUPLICATE \ /Inh_layer/Inh_cell[{i}]/solver ../##[][TYPE=compartment] setfield /Inh_layer/Inh_cell[{i}]/solver \ x {getfield /Inh_layer/Inh_cell[{i}]/soma x} \ y {getfield /Inh_layer/Inh_cell[{i}]/soma y} \ z {getfield /Inh_layer/Inh_cell[{i}]/soma z} end pope end // Do an overall reset, just to be sure hsolve is properly set up reset /* Step 5: Now connect them up with planarconnect */
Built-in GENESIS objects
Scripts/examples/hebb/hebb.g and Scripts/examples/hebb/pavlov/pavlov.g
facilitation and/or synaptic depression.
Example: Scripts/examples/facsynchan/facdemo.g
The plastic synchan variants listed obove are cannot be used in cells that that are taken over by hsolve, and this limits their use in large network models. However Spike Timing Dependent Plasticity (STDP) can be implemented under hsolve in GENESIS 2.4 by using the stdp_rules object. For doucumentation, see the demonstration scripts for the stdp_rules object in genesis/Scripts/stdp_rules, and the documentation on New Plasticity Objects.
A simple exercise: Use the simplecell model with 5 cells
cell[0] the "target cell" dend/Ex_channel receives SPIKE messages from cell[1] - cell[4]
Each of these fires at different random rates (see UGTD2/Tutorials/cells/simplecell2 for an example)
alternatively, use the RSnet model.
A project:
Apply it to the VAnet2 model
Advanced projects: