SpHr_NeuronsILD [ flags] ILDNeuronLabels [, ILDNeurons ]
Generates a 'look-up table' wave of hypothetical activities generated by a population of neurons selective for interaural level differences (ILD). Neuron ILD 'labels' (dB) are also generated, corresponding to activity half-maxima.
Parameters
ILDNeuronLabels ILD 'labels' (dB) corresponding to activity half-maxima
ILDNeurons 'Look up table' of hypothetical activities generated by interaural level differences (ILD) across ILD-selective neurons in the left hemisphere.
Flags
/N = { numNeurons [, ILDbins ] }
numNeurons - number of neurons. Higher values provide finer resolution but consume more memory. Even numbers are increased by 1. numNeurons must be between 11 and 9999. If the /N flag is omitted, a default value of 501 is used.
ILDbins - number of ILD bins. Higher values provide finer resolution but consume more memory. If ILDbins is omitted, a default value of 501 is used. Even numbers are increased by 1. The number of bins passed must be between 11 and 9999.
If the value of ILDbins is less than 1.0, the number of bins is calculated by dividing the desired phase range (see /R flag) by ILDbins. The calculated number of bins calculated must be between 11 and 9999.
Note: The SpHr_NeuronsIPD operation must pass the same values for numNeurons and IPDbins if IPDs and ILDs are both used to model neural activities.
/L = { minIpsiLabel [, maxContraLabel ] }
Labels span a range of values between minIpsiLabel and maxContraLabel and reflect half-maximal activity levels across modeled neurons. Values are swapped if maxContraPhaseLabel < minIpsiPhaseLabel. If only minIpsiPhaseLabel is passed, values range between -minIpsiPhaseLabel and +minIpsiPhaseLabel.
/W = width Sigmoid response curve width in the equation: activity = 1/(1+exp((-ILD+label)/width)). By default, width is set to 4.0.
/S = limitActivities
Scale curves so that activities evoked by the first modeled neuron begin at 0 and reach a maximum of 1 (or activityMax if not 1, see below). This is useful in avoiding issues arising when width values passed be /W flag are small relative to minIpsiLabel and/or maxContraLabel values passed using the /L flag. By default, limitActivities is set to 1.
/SL = labelShift
Proportional shift applied to ILD labels and modeled activities. This flag may be used if IPD neurons were previously generated using the SpHr_NeuronsIPD operation. Specifically, the SpHr_NeuronsIPD operation sets the variable V_IPDLabelShift which may be passed to this operation using the /SL flag. This assures that ILD and IPD labels are proportional in how they are shifted to the left and right of zero (dB or cycles).
/R = maxLevelDifference
Determines the size and limits of the ILDNeurons wave. maxLevelDifference should be set so that ILDs normally fall between -maxLevelDifference and maxLevelDifference (dB). If the /R flag is omitted, maxLevelDifference is set to the larger of abs(minIpsiLabel)*2 or abs(maxContraLabel)*2.
/Max = activityMaximum
Maximum activity level. Values of activityMaximum that are slightly lower or higher than 1.0 can be used 'weight' ILD-evoked activities relative to IPD-evoked activities. Because such 'weighting' is probably frequency-dependent, this flag should normally be omitted.
/DF = dfRef
dfRef is an optional datafolder reference. Destination waves and variables are written to this already existing datafolder, overriding any datafolder specified by the destination waves. Waves are written to the current datafolder if not specified here or by destination waves.
/Q [ = quiet ]
quiet = 1 is the same as the /Q flag alone. Variable generation is suppressed unless SpHr_NeuronsILD is called from within a function.
quiet = 0 is the same as no /Q flag (Default).
Variables
The following variables are generated upon return, unless the /Q flag is present:
V_ILDLabelShift = proportional ILD label shift. This value may be applied to IPD labels using the SpHr_NeuronsIPD operation and this operation's /SL flag.
V_ILDdelta = difference between one neuron's decibel "label" and the next.
V_HalfMaxima_Min = smallest label (may be overwritten by the SpHr_NeuronsIPD operation).
V_HalfMaxima_Max = largest label (may be overwritten by the SpHr_NeuronsIPD operation).
Notes
Response curves are always sigmoidal: activity = 1/(1+exp((-ILD+label)/width))
Example
Function SpHr_NeuronsILD_Example()
SpHr_NeuronsILD/R=48/N={501,501}/L=24/S=1/W=4 ILDLabels, ILDNeurons
// display first, central, and last neurons
Display/K=1 ILDNeurons[][0],ILDNeurons[][250],ILDNeurons[][500]
ModifyGraph lsize=0.75,rgb=(0,0,0),grid(left)=1
ModifyGraph zero(bottom)=3,nticks(left)=2,margin(top)=36
ModifyGraph ZisZ=1,zapTZ=1,zapLZ=1,standoff=0,fSize=10,axThick=0.5
ModifyGraph tick=2,btLen=4,btThick=0.4,stLen=2,stThick=0.5,lblMargin=3
Label bottom "ILD (\\U)"
String str // label activity 'labels'
SetDrawEnv xcoord=bottom,ycoord=left,textxjust=2,textyjust=1,fsize=10,save
DrawText -25,0.8,"\\JChalf-maximal\r'labels' (dB)"
SetDrawEnv xcoord=bottom,ycoord=left,textxjust=2,textyjust=1,fsize=10,textrot=35,save
SPrintf str,"%.2f ➜ ",ILDLabels[0][0]; DrawText ILDLabels[0][0],0.5,str
SPrintf str,"%.2f ➜ ",ILDLabels[250][0]; DrawText ILDLabels[250][0],0.5,str
SPrintf str,"%.2f ➜ ",ILDLabels[500][0]; DrawText ILDLabels[500][0],0.5,str
End