I am trying to partially reproduce the results from: Reduction of dopamine in basal ganglia and its effects on syllable sequencing in speech: A computer simulation study
The “motor” neurons activity (from the thalamus) is supposed to represent an action for executing a syllable (ex : “BA”). Since dopamine depletion is simulated in experiments, not all syllables execute.
So far the best way I came up of measuring if a syllable is executed or not is to determine the “correct” syllable for a time period, then for each time step in that time period, check the similarity of the “correct” pointer with the observed activity in the motor ensemble.
The problem I currently face is how to calculate the time period to check if a syllable is present or not (I cannot check for example in the interval 0-200ms ,200-400ms ,400-600ms), since there are inherent delays in action selection which add up over time. I wrote the below code to count, but it under-counts. I am very possibly overthinking this.
def countCorrectSyllables(sim,model,initial_delay,delay,end_time):
li = ['BA_EXEC','DA_EXEC','GA_EXEC','PA_EXEC','TA_EXEC','KA_EXEC']
correct_syllables = 0
number_syllables = 0
sylCycle = cycle(li)
for time in range(initial_delay,end_time,delay):
elem = next(sylCycle)
vocab = model.get_input_vocab('motor')
correct_similarity = vocab.parse(elem).dot(sim.data[motor][time:time+delay].T)
#print(correct_similarity)
print(elem)
print("start time " + str(time) )
print("end time " + str(time+delay))
max_sim = np.amax(correct_similarity)
if(max_sim>0.10):
correct_syllables+= 1
print('correct time ' + str(time))
number_syllables+=1
print("Number of correct syllables:"+str(correct_syllables))
print("Number of syllables:"+str(number_syllables))
I know some of the authors of the paper had accounts on the forum, so thought I would ask here.
Thanks!