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

Contact: Brian