#! /bin/bash
# 12-01-2020
# Author: Maral Budak (mbudak@umich.edu)
#
# Specify the inputs (dB, Lu_maxs, Lu_mins, Lh_maxs, Lh_mins, trials, colors) below.
#
# dB: Sound pressure level in decibels (=70 in Figs 5A & 6A)
# Lu_maxs: Maximum Lu value in an SGN population
# Lu_mins: Minimum Lu value in an SGN population
# Lh_maxs: Maximum Lh value in an SGN population
# Lh_mins: Minimum Lh value in an SGN population
# trials: number of populations to be averaged (=50 in Figs 5A & 6A)
# colors: the colors for each CAP plot (need to be matplotlib colors - see https://matplotlib.org/3.1.0/gallery/color/named_colors.html)
#
# The value of the k-th entry of each array below (Lu_maxs, Lu_mins, Lh_maxs, Lh_mins, colors) corresponds to the k-th population.
# Therefore, the length of each array should be equal.
#
# For the i-th population to be homogeneous (Lu=10, Lh=1):
# Lu_maxs[i]=Lu_mins[i]=10
# Lh_maxs[i]=Lh_mins[i]=1
#
# For the j-th population to be heterogeneous (10<Lu<20, Lh=1):
# Lu_maxs[j]=20
# Lu_mins[j]=10
# Lh_maxs=1
# Lh_mins=1
#
# To generate Fig.5A:
# dB=70
# Lu_maxs=(10.0 11.0 15.0 20.0 20.0)
# Lu_mins=(10.0 11.0 15.0 20.0 10.0)
# Lh_maxs=(1.0 1.0 1.0 1.0 1.0)
# Lh_mins=(1.0 1.0 1.0 1.0 1.0)
# trials=50
# colors=("red" "blue" "magenta" "green" "black")
#
#
# To generate Fig.6A:
# dB=70
# Lu_maxs=(10.0 10.0 10.0 10.0 10.0)
# Lu_mins=(10.0 10.0 10.0 10.0 10.0)
# Lh_maxs=(1.0 2.0 6.0 11.0 11.0)
# Lh_mins=(1.0 2.0 6.0 11.0 1.0)
# trials=50
# colors=("red" "blue" "magenta" "green" "black")
#
# The output of the simulation is:
# plot.png: Plot of simulated CAPs
# probs_*dB.mat: release probabilities from inner hair cells, size(63,15000) array (21 channels x 3 types of hair cells [HT, MT and LT] = 63 rows, 15000 time steps)
# spikes_*dB_Lumax*_Lumin*_Lhmax*_Lhmin*.np: spikes from each auditory nerve, size(trials, 6300) array (6300 auditory nerves per population)
#
#
### SPECIFY THE INPUTS
dB=70
Lu_maxs=(10.0 11.0 15.0 20.0 20.0)
Lu_mins=(10.0 11.0 15.0 20.0 10.0)
Lh_maxs=(1.0 1.0 1.0 1.0 1.0)
Lh_mins=(1.0 1.0 1.0 1.0 1.0)
trials=50
colors=("red" "blue" "magenta" "green" "black")
########################
matlab -r "calcReleaseProbs($dB); exit"
len=${#Lu_maxs[@]}
for (( i=0; i<$len; i++ ))
do
python generate_AN_spikes.py $dB $trials ${Lu_maxs[$i]} ${Lu_mins[$i]} ${Lh_maxs[$i]} ${Lh_mins[$i]}
python plotConvolution.py $dB $trials ${Lu_maxs[$i]} ${Lu_mins[$i]} ${Lh_maxs[$i]} ${Lh_mins[$i]} ${colors[$i]}
done
rm plot.pickle
rm timestep_10000Hz.mat
|