// genesis 2.2
// Kerstin Menne
// Luebeck, 24.10.2001
/*====================================
functions to create recording sites
====================================*/
// create single efield object
function place_recsite(recording_site_name, x, y, z, scale)
str recording_site_name
float x, y, z // positions of recording_site
float scale // scale factor for efield object
create efield {recording_site_name}
setfield ^ scale {scale} x {x} y {y} z {z}
// call {recording_site_name} RECALC // calculate distances
// input_for_electrodes does it now
end
// create one multisite-electrode
function electrode(electrode_name,recording_site,x,y,zmin,zmax,dz,scale)
str electrode_name, recording_site
float scale, x, y
float zmin, zmax, dz // recording sites from zmin to zmax with distance
// dz (parallel to neurons)
float i // help variables
int count = 0
if (!({exists {electrode_name}}))
create neutral {electrode_name}
end
// different recordings sites of electrode "electrode_name"
// are installed and
// named {electrode_name}{recording_site}[{count}]
for (i=zmin; i<=zmax; i=i+dz)
place_recsite {electrode_name}{recording_site}[{count}] \
{x} {y} {i} {scale}
count = count +1
end
end
function dave_electrode(electrode_name,recsite_name)
str electrode_name
str recsite_name
pushe {electrode_name}
str loop_chan
foreach loop_chan ({el /pyr_arr/pyr[]/#[TYPE=symcompartment]})
addmsg {loop_chan} {electrode_name}{recsite_name}[] CURRENT Im 0.0
end
call {electrode_name}{recsite_name}[] RECALC // calculate
//distances to
//compartments that deliver input
pope
end
electrode /e90 {e_recsite1} 43e-6 57e-6 \
{e_z1_min} {e_z1_max} {e_dz1} {e_scale1}
dave_electrode /e90 {e_recsite1} // electrodes.g