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.