def muscimol_plot_sound_type(animal, muscimolSessions, salineSessions, soundType, fontsize=12): muscimolData = behavioranalysis.load_many_sessions(animal, muscimolSessions) trialsSoundTypeMus = muscimolData['soundType'] == muscimolData.labels[ 'soundType'][soundType] rightTrialsMus = (muscimolData['choice'] == muscimolData.labels['choice'] ['right'])[trialsSoundTypeMus] freqEachTrialMus = muscimolData['targetFrequency'][trialsSoundTypeMus] validMus = muscimolData['valid'][trialsSoundTypeMus] (possibleValues,fractionHitsEachValue,ciHitsEachValue,nTrialsEachValue,nHitsEachValue)=\ calculate_psychometric(rightTrialsMus,freqEachTrialMus,validMus) (plineM, pcapsM, pbarsM, pdotsM) = extraplots.plot_psychometric(1e-3 * possibleValues, fractionHitsEachValue, ciHitsEachValue, xTickPeriod=1) plt.xlabel('Frequency (kHz)', fontsize=fontsize) plt.ylabel('Rightward trials (%)', fontsize=fontsize) extraplots.set_ticks_fontsize(plt.gca(), fontsize) setp(plineM, color='r') setp(pcapsM, color='r') setp(pbarsM, color='r') setp(pdotsM, markerfacecolor='r') salineData = behavioranalysis.load_many_sessions(animal, salineSessions) trialsSoundTypeSal = salineData['soundType'] == salineData.labels[ 'soundType'][soundType] rightTrialsSal = (salineData['choice'] == salineData.labels['choice'] ['right'])[trialsSoundTypeSal] freqEachTrialSal = salineData['targetFrequency'][trialsSoundTypeSal] validSal = salineData['valid'][trialsSoundTypeSal] (possibleValues,fractionHitsEachValue,ciHitsEachValue,nTrialsEachValue,nHitsEachValue)=\ calculate_psychometric(rightTrialsSal,freqEachTrialSal,validSal) (plineS, pcapsS, pbarsS, pdotsS) = extraplots.plot_psychometric(1e-3 * possibleValues, fractionHitsEachValue, ciHitsEachValue, xTickPeriod=1) title("{}, {}".format(animal, soundType))
def muscimol_plot(animal, muscimolSessions, salineSessions): muscimolData = behavioranalysis.load_many_sessions(animal, muscimolSessions) plineM, pcapsM, pbarsM, pdotsM = behavioranalysis.plot_frequency_psycurve( muscimolData) setp(plineM, color='r') setp(pcapsM, color='r') setp(pbarsM, color='r') setp(pdotsM, markerfacecolor='r') salineData = behavioranalysis.load_many_sessions(animal, salineSessions) plineS, pcapsS, pbarsS, pdotsS = behavioranalysis.plot_frequency_psycurve( salineData) # setp(plineS, color='r') # setp(pcapsS, color='r') # setp(pbarsS, color='r') # setp(pdotsS, markerfacecolor='r') title(animal)
animal = 'adap027' nAnimals = len(animals) muscimolSessions = ['20160601a', '20160603a', '20160607a'] salineSessions = ['20160531a', '20160602a', '20160606a'] salChordEsts = np.zeros([len(salineSessions), 4]) musChordEsts = np.zeros([len(muscimolSessions), 4]) plt.figure() for indSession, session in enumerate(salineSessions): ax = subplot2grid((2, len(muscimolSessions)), (0, indSession)) sdata = behavioranalysis.load_many_sessions(animal, [session]) salChordEsts[indSession,:] = plot_psycurve_fit_and_data(sdata, 'k') behavioranalysis.nice_psycurve_settings(ax, fontsize=9, lineweight=2) plt.ylim(-0.03, 1.03) for indSession, session in enumerate(muscimolSessions): ax = subplot2grid((2, len(muscimolSessions)), (1, indSession)) mdata = behavioranalysis.load_many_sessions(animal, [session]) musChordEsts[indSession,:] = plot_psycurve_fit_and_data(mdata, 'r') # title('{},{}'.format(animal, 'chords')) plt.ylim(-0.03, 1.03) behavioranalysis.nice_psycurve_settings(ax, fontsize=9, lineweight=2)
'adap022': ['20160601a', '20160603a', '20160607a', '20160609a', '20160611a'], 'adap026': ['20160601a', '20160603a', '20160607a', '20160609a', '20160611a'], 'adap027': ['20160601a', '20160603a', '20160607a', '20160609a', '20160611a'], 'adap030': ['20160601a', '20160603a', '20160607a', '20160609a', '20160611a'] } salChordEsts = np.zeros([nAnimals, 4]) musChordEsts = np.zeros([nAnimals, 4]) for indAnimal, animal in enumerate(animals): # ax = subplot2grid((1, nAnimals), (0, indAnimal)) ax = subplot(2, 3, indAnimal) mdata = behavioranalysis.load_many_sessions(animal, muscimolSessions[animal]) sdata = behavioranalysis.load_many_sessions(animal, salineSessions[animal]) musChordEsts[indAnimal,:] = behavioranalysis.plot_psycurve_fit_and_data(mdata, 'r') salChordEsts[indAnimal,:] = behavioranalysis.plot_psycurve_fit_and_data(sdata, 'k') plt.ylim(-0.03, 1.03) behavioranalysis.nice_psycurve_settings(ax, fontsize=9, lineweight=2, fitlineinds=[3, 7]) title(animal) mc = musChordEsts[:,1] sc = salChordEsts[:,1] figure()
return percentCorrectSoundType * 100 clf() animal = 'amod003' muscimolSessions = ['20160413a', '20160415a', '20160417a', '20160419a'] salineSessions = ['20160412a', '20160414a', '20160416a', '20160418a'] subplot(221) muscimol_plot_sound_type(animal, muscimolSessions, salineSessions, 'chords') subplot(223) muscimol_plot_sound_type(animal, muscimolSessions, salineSessions, 'amp_mod') #Overall muscimol and saline performance muscimolData = behavioranalysis.load_many_sessions(animal, muscimolSessions) muscimolChords = percent_correct_sound_type(muscimolData, 'chords') muscimolMod = percent_correct_sound_type(muscimolData, 'amp_mod') salineData = behavioranalysis.load_many_sessions(animal, salineSessions) salineChords = percent_correct_sound_type(salineData, 'chords') salineMod = percent_correct_sound_type(salineData, 'amp_mod') #Individual session muscimol and saline performance for indp, pair in enumerate(zip(salineSessions, muscimolSessions)): salineFile = loadbehavior.path_to_behavior_data( animal, settings.DEFAULT_EXPERIMENTER, '2afc', pair[0]) salineData = loadbehavior.BehaviorData(salineFile, readmode='full')
from jaratest.nick import behavioranalysis_vnick as behavioranalysis ''' Test data analysis for adap023 - this needs work because all of my muscimol overview reports are currently written for data with different sound types As part of this work, I need to work on my behavioranalysis fxns ''' # behavior_summary('adap023', ['20160426a', '20160427a','20160428a','20160429a', '20160430a', '20160501a', '20160502a', '20160503a', '20160504b','20160505a','20160506a','20160507a','20160508a','20160509a', '20160510a']) #left ## -- Plotting the average saline and muscimol psycurves #NOTE THE b in 0504 below salineSessions = [ '20160428a', '20160430a', '20160502a', '20160504b', '20160506a', '20160508a' ] muscimolSessions = [ '20160429a', '20160501a', '20160503a', '20160505a', '20160507a', '20160509a' ] salineData = behavioranalysis.load_many_sessions('adap023', salineSessions) muscimolData = behavioranalysis.load_many_sessions('adap023', muscimolSessions) behavioranalysis.plot_multiple_psycurves([salineData, muscimolData], ['k', 'r'])