function mean_and_error_matrix=analyze_and_plot_mean_responses(beflive,aflive,critz,array_of_values,casecolor,x_offset,figaddon) %description: takes uploaded psc values from pscmat or charge values from careful charge calculator, finds the mean and confidence interval before and after induction, plots the mean and error bar in the style instructed %called by: analyze_across_sd_stdp_expts %calls: agresti_coull_binomial_confidence_interval, generalized_rung_plotter or double_errorbar_plotter, standard_err %notes: %code confirmed date: do_rungs_plot_not_double_errobar_plot=0; use_first_val_only=1; strip_zeros_from_group_psccharge_data=1; %only applies if ~use_first_value_only if use_first_val_only %only the first value, value_o, is considered from each trial preinduction_criteria=critz(1,beflive);postinduction_criteria=critz(1,aflive); values_antes=array_of_values(1,beflive);values_despues=array_of_values(1,aflive); values_succ_antes=values_antes(find(preinduction_criteria));values_succ_despues=values_despues(find(postinduction_criteria)); values_fail_antes=values_antes(find(~preinduction_criteria));;values_fail_despues=values_despues(find(~postinduction_criteria)); %proportion of successes of event_o with binomial confidence interval numsuccantes=length(values_succ_antes); numtrialsantes=length(beflive); numsuccdespues=length(values_succ_despues); numtrialsdespues=length(aflive); succpropantes=numsuccantes/numtrialsantes;succpropdespues=numsuccdespues/numtrialsdespues; [upperlimbefore,lowerlimbefore]=agresti_coull_binomial_confidence_interval(numsuccantes,numtrialsantes); [upperlimafter,lowerlimafter]=agresti_coull_binomial_confidence_interval(numsuccdespues,numtrialsdespues); else %modification oct 5 2007 to use pot of all trials and reliability rather than pr_o num_APs=size(critz,1) successes_per_trial=sum(critz); reliability=successes_per_trial/num_APs; mean_values=sum(array_of_values)/num_APs; array_for_potency=array_of_values; array_for_potency(find(~critz))=0; potency_numerator=sum(array_for_potency); mean_potency=potency_numerator./successes_per_trial; mean_potency(isnan(mean_potency))=0; %mean_potency=replace_zeros(mean_potency); array_for_failure=array_of_values; array_for_failure(find(critz))=0; failure_numerator=sum(array_for_failure); mean_failure=failure_numerator./(num_APs-successes_per_trial); mean_failure(isnan(mean_failure))=0; values_antes=mean_values(beflive);values_despues=mean_values(aflive); values_succ_antes=mean_potency(beflive);values_succ_despues=mean_potency(aflive); values_fail_antes=mean_failure(beflive);values_fail_despues=mean_failure(aflive); if strip_zeros_from_group_psccharge_data values_succ_antes(find(~values_succ_antes))=[];values_succ_despues(find(~values_succ_despues))=[]; values_fail_antes(find(~values_fail_antes))=[];values_fail_despues(find(~values_fail_despues))=[]; end succpropantes=mean(reliability(beflive)); upperlimbefore=succpropantes+standard_err(reliability(beflive)); lowerlimbefore=succpropantes-standard_err(reliability(beflive)); succpropdespues=mean(reliability(aflive)); upperlimafter=succpropdespues+standard_err(reliability(aflive)); lowerlimafter=succpropdespues-standard_err(reliability(aflive)); end %mean of all value_o (success and failure) with SEM meanbefore=mean(values_antes);stdbefore=std(values_antes);sembefore=stdbefore/sqrt(length(values_antes)); meanafter=mean(values_despues);stdafter=std(values_despues);semafter=stdafter/sqrt(length(values_despues)); %mean of value_o success only with SEM meansuccbefore=mean(values_succ_antes);stdsuccbefore=std(values_succ_antes);semsuccbefore=stdsuccbefore/sqrt(length(values_succ_antes)); meansuccafter=mean(values_succ_despues);stdsuccafter=std(values_succ_despues);semsuccafter=stdsuccafter/sqrt(length(values_succ_despues)); %mean of value_o failure only with SEM meanfailbefore=mean(values_fail_antes);stdfailbefore=std(values_fail_antes);semfailbefore=stdfailbefore/sqrt(length(values_fail_antes)); meanfailafter=mean(values_fail_despues);stdfailafter=std(values_fail_despues);semfailafter=stdfailafter/sqrt(length(values_fail_despues)); figure(1+figaddon),hold on, title('value_o') if do_rungs_plot_not_double_errobar_plot subplot(3,3,[2 5 8]),set(gcf,'position',[145 120 278 707]);generalized_rung_plotter([meanbefore meanafter],[meanbefore+sembefore meanafter+semafter],[meanbefore-sembefore meanafter-semafter],casecolor,x_offset) else double_errorbar_plotter_dwn([meanbefore,sembefore,meanafter,semafter],casecolor) end figure(2+figaddon),hold on, title('value_o, success trials') if do_rungs_plot_not_double_errobar_plot subplot(3,3,[2 5 8]),set(gcf,'position',[445 120 278 707]);generalized_rung_plotter([meansuccbefore meansuccafter],[meansuccbefore+semsuccbefore meansuccafter+semsuccafter],[meansuccbefore-semsuccbefore meansuccafter-semsuccafter],casecolor,x_offset) else double_errorbar_plotter_dwn([meansuccbefore,semsuccbefore,meansuccafter,semsuccafter],casecolor) end figure(3+figaddon),hold on, title('proportion successes') if do_rungs_plot_not_double_errobar_plot subplot(3,3,[2 5 8]),set(gcf,'position',[745 120 278 707]),generalized_rung_plotter([succpropantes succpropdespues],[upperlimbefore upperlimafter],[lowerlimbefore lowerlimafter],casecolor,x_offset); else double_errorbar_plotter_dwn([succpropantes,upperlimbefore,lowerlimbefore,succpropdespues,upperlimafter,lowerlimafter],casecolor) end figure(4+figaddon),hold on, title('value_o, failure trials') if do_rungs_plot_not_double_errobar_plot subplot(3,3,[2 5 8]),set(gcf,'position',[1045 120 278 707]),generalized_rung_plotter([meanfailbefore meanfailafter],[meanfailbefore+semfailbefore meanfailafter+semfailafter],[meanfailbefore-semfailbefore meanfailafter-semfailafter],casecolor,x_offset) else double_errorbar_plotter_dwn([meanfailbefore,semfailbefore,meanfailafter,semfailafter],casecolor) end mean_and_error_matrix=[meanbefore,sembefore,meanafter,semafter,meansuccbefore,semsuccbefore,meansuccafter,semsuccafter,succpropantes,upperlimbefore,lowerlimbefore,succpropdespues,upperlimafter,lowerlimafter,meanfailbefore,semfailbefore,meanfailafter,semfailafter]';