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: