%Mat's code to analyze behavioural data from MDM Muse. clear all; clc; %Participant Number, Phase, ((Block)), Block, Trial, Total Trial, Reaction Time, Last Block Accuracy, Disease, Condition, Accuracy, etc % 1,4,5,11,18,19,20,22,23,24,25,27,34,37,48: Non learners filenames = dir(strcat('*.txt')); filenames([4,9,11,18:22,24,26,30,33,40],:) = []; %Participant loop Grand_Scatter = []; for counter = 1:length(filenames) beh_data = []; beh_data = load(filenames(counter).name); %Load participant data if counter > 1 beh_data(:,3) = []; end %Check if learner learner_check = find(beh_data(:,2)== 2); if isempty(learner_check) == 1 learner(counter,1) = 0; elseif beh_data(learner_check(1,1),7) < 90 learner(counter,1) = 0; else learner(counter,1) = 1; end %Find conflict and no conflict findc1 = find(beh_data(:,9)==4); %low conflict findc2 = find(beh_data(:,9)==3); %high conflict %Find RT for conflict conditions c1_Rt = beh_data(findc1,6); c2_Rt = beh_data(findc2,6); %Find accuracy for conflict conditions c1_ac = beh_data(findc1,10); c2_ac = beh_data(findc2,10); %Find confidence for conflict conditions c1_con = beh_data(findc1,11); c2_con = beh_data(findc2,11); %Mean Rt d_stats(counter,1) = mean(c1_Rt); d_stats(counter,2) = mean(c2_Rt); %Mean Accuracy d_stats(counter,3) = mean(c1_ac); d_stats(counter,4) = mean(c2_ac); %Mean Confidence d_stats(counter,5) = mean(c1_con); d_stats(counter,6) = mean(c2_con); %STD Rt d_stats(counter,7) = std(c1_Rt); d_stats(counter,8) = std(c2_Rt); %STD Accuracy d_stats(counter,9) = std(c1_ac); d_stats(counter,10) = std(c2_ac); %STD Confidence d_stats(counter,11) = std(c1_con); d_stats(counter,12) = std(c2_con); % Find Stats for first block d_stats(counter,13) = mean(beh_data(1:20,6)); %Early Rt d_stats(counter,14) = mean(beh_data(1:20,10)); %Early Accuracy d_stats(counter,15) = mean(beh_data(1:20,11)); % Early Confidence % Find Stats for last block lateSet = []; learningP = []; %Isolate Learning Phase lateSet = (find(beh_data(:,2)==1)); learningP = beh_data(lateSet,:); d_stats(counter,16) = mean(learningP(end-19:end,6)); %Late RT d_stats(counter,17) = mean(learningP(end-19:end,10)); %Late Accuracy d_stats(counter,18) = mean(learningP(end-19:end,11)); %Late Confidence end %Ensure data is learners only, switch to kept_stats keep = find(learner==1); kept_stats = d_stats(keep,:); %Calcuate differences between groups of interest mDiff2RT = (kept_stats(:,2))-(kept_stats(:,1)); %Conflict RT - Nonconflict RT mDiff2Acc = (kept_stats(:,4)*100)-(kept_stats(:,3)*100); %Conflict Acc - Nonconflict Acc mDiff2Con = (kept_stats(:,6))-(kept_stats(:,5)); %Conflict Confidence - Nonconflict Confidence mDiff1RT = (kept_stats(:,16)*1000)-(kept_stats(:,13)*1000); %Late RT - Early RT mDiff1Acc = (kept_stats(:,17)*100)-(kept_stats(:,14)*100); %Late Acc - Early Acc mDiff1Con = (kept_stats(:,18))-(kept_stats(:,15)); %Late Confidence - Early Confidence %Make Confidence Intervals CI(:,1) = tinv(.975,21) * (std(kept_stats(:,1)) / sqrt(length(keep))); %Non ConflictRT CI(:,2) = tinv(.975,21) * (std(kept_stats(:,2)) / sqrt(length(keep))); %Conflict RT CI(:,3) = tinv(.975,21) * (std(kept_stats(:,3)*100) / sqrt(length(keep))); %Non Conflict Acc CI(:,4) = tinv(.975,21) * (std(kept_stats(:,4)*100) / sqrt(length(keep))); %Conflcit Acc CI(:,5) = tinv(.975,21) * (std(kept_stats(:,5)) / sqrt(length(keep))); %Non Conflict Confidence CI(:,6) = tinv(.975,21) * (std(kept_stats(:,6)) / sqrt(length(keep))); %Conflict Confidence CI(:,7) = tinv(.975,21) * (std(kept_stats(:,13)) / sqrt(length(keep))); %Early RT CI(:,8) = tinv(.975,21) * (std(kept_stats(:,16)) / sqrt(length(keep))); %Late RT CI(:,9) = tinv(.975,21) * (std(kept_stats(:,14)*100) / sqrt(length(keep))); %Early Accuracy CI(:,10) = tinv(.975,21) * (std(kept_stats(:,17)*100) / sqrt(length(keep))); %Late Accuracy CI(:,11) = tinv(.975,21) * (std(kept_stats(:,15)) / sqrt(length(keep))); %Early Confidence CI(:,12) = tinv(.975,21) * (std(kept_stats(:,18)) / sqrt(length(keep))); %Late Confidence CI(:,13) = tinv(.975,21) * (std(mDiff2RT)) / sqrt(length(keep)); %ConflictRT difference CI(:,14) = tinv(.975,21) * (std(mDiff2Acc)) / sqrt(length(keep)); %ConflictAcc difference CI(:,15) = tinv(.975,21) * (std(mDiff2Con)) / sqrt(length(keep)); %ConflictConfidence difference CI(:,16) = tinv(.975,21) * (std(mDiff2RT)) / sqrt(length(keep)); %EarlyLateRT difference CI(:,17) = tinv(.975,21) * (std(mDiff2Acc)) / sqrt(length(keep)); %EarlyLateAcc difference CI(:,18) = tinv(.975,21) * (std(mDiff2Con)) / sqrt(length(keep)); %EarlyLateConfidence difference %manual p test, enter two variables of interest and specificy alpha value [h,p,ci,stats] = ttest(kept_stats(:,15),kept_stats(:,18), 'Alpha', 0.00000001) %Make Figures figure; subplot(1,3,1); d=bar(mean(kept_stats(:,3:4))*100); ylim([40 100]); ylabel('Accuracy (%)'); xticklabels({'No Conflict', 'Conflict'}); title('A'); hold on d.FaceColor= 'flat'; d.CData(2,:) = [.9 .3 .3]; ax = gca; set(ax,'box','off'); ax.FontName = 'Arial'; ax.FontSize = 12.00; ax.TickLength = [0 0]; hold on e = errorbar(1:2, mean(kept_stats(:,3:4))*100, CI(:,3:4), 'k', 'LineStyle', 'none'); e.LineWidth = 2; hold off subplot(1,3,2); c=bar(mean(kept_stats(:,1:2))); ylim([3 6.5]); ylabel('Seconds (s)'); xticklabels({'No Conflict', 'Conflict'}); title('B'); hold on c.FaceColor= 'flat'; c.CData(2,:) = [.9 .3 .3]; ax = gca; set(ax,'box','off'); ax.FontName = 'Arial'; ax.FontSize = 12.00; ax.TickLength = [0 0]; hold on e = errorbar(1:2, mean(kept_stats(:,1:2)), CI(:,1:2), 'k', 'LineStyle', 'none'); e.LineWidth = 2; hold off subplot(1,3,3) e=bar(mean(kept_stats(:,5:6))); ylim([7 10]); ylabel('Confidence Rating'); xticklabels({'No Conflict', 'Conflict'}); title('C'); hold on e.FaceColor= 'flat'; e.CData(2,:) = [.9 .3 .3]; ax = gca; set(ax,'box','off'); ax.FontName = 'Arial'; ax.FontSize = 12.00; ax.TickLength = [0 0]; hold on e = errorbar(1:2, mean(kept_stats(:,5:6)), CI(:,5:6), 'k', 'LineStyle', 'none'); e.LineWidth = 2; hold off figure; subplot(1,3,1) d=bar(mean(kept_stats(:,[14,17]))*100); ylim([30 100]);ylabel('Accuracy (%)'); xticklabels({'Early','Late'}); title('A'); hold on d.FaceColor= 'flat'; d.CData(2,:) = [.9 .3 .3]; ax = gca; set(ax,'box','off'); ax.FontName = 'Arial'; ax.FontSize = 12.00; ax.TickLength = [0 0]; hold on e = errorbar(1:2, mean(kept_stats(:,[14,17]))*100, CI(:,9:10), 'k', 'LineStyle', 'none'); e.LineWidth = 2; hold off subplot(1,3,2) c=bar(mean(kept_stats(:,[13,16]))); ylim([3 17]);ylabel('Seconds (s)'); xticklabels({'Early','Late'}); title('B'); hold on c.FaceColor= 'flat'; c.CData(2,:) = [.9 .3 .3]; ax = gca; set(ax,'box','off'); ax.FontName = 'Arial'; ax.FontSize = 12.00; ax.TickLength = [0 0]; hold on e = errorbar(1:2, mean(kept_stats(:,[13,16])), CI(:,7:8), 'k', 'LineStyle', 'none'); e.LineWidth = 2; hold off subplot(1,3,3) e=bar(mean(kept_stats(:,[15,18]))); ylim([0 10]); ylabel('Confidence Rating'); xticklabels({'Early','Late'}); title('C'); hold on e.FaceColor= 'flat'; e.CData(2,:) = [.9 .3 .3]; ax = gca; set(ax,'box','off'); ax.FontName = 'Arial'; ax.FontSize = 12.00; ax.TickLength = [0 0]; hold on e = errorbar(1:2, mean(kept_stats(:,[15,18])), CI(:,11:12), 'k', 'LineStyle', 'none'); e.LineWidth = 2; hold off