function DeltaF = photometry_reward_multi_session_1911_submit(animal_n) %An example code to get signals and session information from multiple %sessions in single animals, using deposit data "_biasTask". % Output DeltaF is matrices, aligned with a chosen event (trigger), grouped by trial types [animal_info,text,raw] = xlsread('Operant_coordinate_submit.xlsx'); animal = text(2:end,1); striatum = text(2:end,6); ind = (find(animal_info(:,6)>0)); %6 for all animal_info = animal_info(ind,:); %skip blank animal_info = sortrows(animal_info,2,'descend'); %animal is ordered by Bregma animal = animal(animal_info(:,1)); striatum = striatum(animal_info(:,1)); Bregma = animal_info(:,2); Lateral = animal_info(:,3); Depth = animal_info(:,4); animal_VS = find(strcmp(striatum,'VS')); animal_DMS = find(strcmp(striatum,'DMS')); animal_DLS = find(strcmp(striatum,'DLS')); op = 1000; %odor sampling time requirement odorL = 7; odorR = 6; odorN = 5; odorLm = 4; odorRm = 3; odorLmm = 2; odorRmm = 1; %odor types % combine data from multiple sessions BData = []; GCaMP_combined = []; tdTom_combined =[]; Trialtype = []; Leftwater = []; Rightwater = []; Odor1 = [];Trial_number = [];Session = []; filename_name = strcat(animal{animal_n},'_*_biasTask'); filename = dir(filename_name); for i = 1:length(filename) load(filename(i).name); BData = [BData;data]; GCaMP_combined = [GCaMP_combined;GCaMP/odor_response_max]; if ~exist('GCaMP_end'); Photometry_t = photometry_t; Event_TS = event_TS; t = data(:,1); else Photometry_t = [Photometry_t,photometry_t+GCaMP_end]; Event_TS = [Event_TS,event_TS+GCaMP_end]; t = [t;data(:,1)+GCaMP_end]; end GCaMP_end = size(GCaMP_combined,1); BData_end = size(BData,1); ind = find(data(:,4)==1); trial_number = length(ind); block3_first = find(session(:,4)==3,1, 'first'); if block3_first >1 session(1:(block3_first-1),4)=2; end Trialtype = [Trialtype, trialtype(1:trial_number)]; Leftwater = [Leftwater,leftwater(1:trial_number)]; Rightwater = [Rightwater, rightwater(1:trial_number)]; Odor1 = [Odor1, odor1(1:trial_number)]; Trial_number = [Trial_number,trial_number]; Session = [Session;session]; clear photometry_t data GCaMP tdTom end photometry_t = Photometry_t; event_TS = Event_TS; GCaMP = GCaMP_combined; tdTom = tdTom_combined; data = BData; trialtype = Trialtype; leftwater = Leftwater; rightwater = Rightwater; odor1 = Odor1; session =Session; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% fix filter effects event_TS = event_TS - 49; %% extract behavior events eventOnset = data(:,2:7); eventOffset = data(:,8:13); % 1: left water % 2: right water % 3: odor, LRN % 4: left pokes % 5: center pokes % 6: right pokes ind = find(eventOffset(:,3)==1 & eventOffset(:,5)==1); % odorpokeout and odoroff are the same time for i = 1:length(ind) eventOffset = [eventOffset((1:(ind(i)+i-2)),:);0 0 0 0 1 0;0 0 1 0 0 0;eventOffset((ind(i)+i):end,:)]; eventOnset = [eventOnset((1:(ind(i)+i-2)),:);0 0 0 0 0 0;0 0 0 0 0 0;eventOnset((ind(i)+i):end,:)]; t = [t(1:(ind(i)+i-2));t(ind(i)+i-1);t(ind(i)+i-1);t((ind(i)+i):end)]; event_TS = [event_TS(1:(ind(i)+i-2)),event_TS(ind(i)+i-1),event_TS(ind(i)+i-1),event_TS((ind(i)+i):end)]; end allTrials = find(eventOnset(:,3)==1); %session; valid1,0, choice1(L),2(R),0,water1(L),2(R),0,block3,big side validTrials = find(session(:,1)==1); validTrials = allTrials(validTrials); % odor poke with no odor noodor = find(eventOnset(1:(end-1),5)==1 & eventOffset(2:end,5)==1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% make photometry TS at specific events event_TS = event_TS'; successTrials = find(session(:,3)>0); successTrials = allTrials(successTrials); Lwater = find(eventOnset(:,1)==1); Lwaterodor = []; for waterN = 1:length(Lwater) if eventOnset(Lwater(waterN)-4,3)==1 Lwaterodor = [Lwaterodor;Lwater(waterN)-4]; else if eventOnset(Lwater(waterN)-3,3)==1 Lwaterodor = [Lwaterodor;Lwater(waterN)-3]; else range = (Lwater(waterN)-10):(Lwater(waterN)-4); ind = find(eventOnset(range,3)==1,1,'last'); Lwaterodor = [Lwaterodor;Lwater(waterN)-9+ind]; end end end Rwater = find(eventOnset(:,2)==1); Rwaterodor = []; for waterN = 1:length(Rwater) if eventOnset(Rwater(waterN)-4,3)==1 Rwaterodor = [Rwaterodor;Rwater(waterN)-4]; else if eventOnset(Rwater(waterN)-3,3)==1 Rwaterodor = [Rwaterodor;Rwater(waterN)-3]; else range = (Rwater(waterN)-10):(Rwater(waterN)-4); ind = find(eventOnset(range,3)==1,1,'last'); Rwaterodor = [Rwaterodor;Rwater(waterN)-9+ind]; end end end ind = find(odor1==odorR|odor1==odorRm|odor1==odorLm|odor1==odorL); odorRL_ts = allTrials(ind); successTrials_waterout = zeros(size(event_TS)); for successN = 1:length(successTrials) range = (successTrials(successN)+4):(successTrials(successN)+10); ind = find(eventOnset(range,1)==1|eventOnset(range,2)==1,1,'first'); %water onset successTrials_water = successTrials(successN) + 3 + ind; range2 = (successTrials_water+3):(length(event_TS)); ind2 = find(eventOnset(range2,5)==1,1,'first'); %first odor poke successTrials_waterout(successTrials(successN)) = successTrials_water + 2 + ind2-1; end %for water trial ind = find(session(:,3)==1 & leftwater'>=198); bigTrialsL = allTrials(ind); ind = find(session(:,3)==2 & rightwater'<=30); smallTrialsR = allTrials(ind); ind = find(session(:,3)==2 & rightwater'>=198); bigTrialsR = allTrials(ind); ind = find(session(:,3)==1 & leftwater'<=30); smallTrialsL = allTrials(ind); ind = find(session(:,3)==1 & (leftwater'==72|leftwater'==80|leftwater'==120) & session(:,5)==1 & session(:,4)==3); middleTrials_bigL = allTrials(ind); ind = find(session(:,3)==2 & (rightwater'==72|rightwater'==80|rightwater'==120) & session(:,5)==1 & session(:,4)==3); middleTrials_smallR = allTrials(ind); ind = find(session(:,3)==1 & (leftwater'==72|leftwater'==80|leftwater'==120) & session(:,5)==2 & session(:,4)==3); %big side right middleTrials_smallL = allTrials(ind); ind = find(session(:,3)==2 & (rightwater'==72|rightwater'==80|rightwater'==120) & session(:,5)==2 & session(:,4)==3); %big side right middleTrials_bigR = allTrials(ind); ind = find(session(:,3)==1 & leftwater'>=198 & odor1' == odorL); bigTrialsLpure = allTrials(ind); ind = find(session(:,3)==2 & rightwater'<=30 & odor1' == odorR); smallTrialsRpure = allTrials(ind); ind = find(session(:,3)==2 & rightwater'>=198 & odor1' == odorR); bigTrialsRpure = allTrials(ind); ind = find(session(:,3)==1 & leftwater'<=30 & odor1' == odorL); smallTrialsLpure = allTrials(ind); ind = find(session(:,3)==1 & (leftwater'==72|leftwater'==80|leftwater'==120) & session(:,5)==1 & odor1' == odorL & session(:,4)==3); middleTrials_bigLpure = allTrials(ind); ind = find(session(:,3)==2 & (rightwater'==72|rightwater'==80|rightwater'==120) & session(:,5)==1 & odor1' == odorR & session(:,4)==3); middleTrials_smallRpure = allTrials(ind); ind = find(session(:,3)==1 & (leftwater'==72|leftwater'==80|leftwater'==120) & session(:,5)==2 & odor1' == odorL & session(:,4)==3); middleTrials_smallLpure = allTrials(ind); ind = find(session(:,3)==2 & (rightwater'==72|rightwater'==80|rightwater'==120) & session(:,5)==2 & odor1' == odorR & session(:,4)==3); middleTrials_bigRpure = allTrials(ind); ind = find(session(:,3)==1 & leftwater'>=198 & odor1' == odorLm); bigTrialsLm = allTrials(ind); ind = find(session(:,3)==2 & rightwater'<=30 & odor1' == odorRm); smallTrialsRm = allTrials(ind); ind = find(session(:,3)==2 & rightwater'>=198 & odor1' == odorRm); bigTrialsRm = allTrials(ind); ind = find(session(:,3)==1 & leftwater'<=30 & odor1' == odorLm); smallTrialsLm = allTrials(ind); ind = find(session(:,3)==1 & (leftwater'==72|leftwater'==80|leftwater'==120) & session(:,5)==1 & odor1' == odorLm & session(:,4)==3); middleTrials_bigLm = allTrials(ind); ind = find(session(:,3)==2 & (rightwater'==72|rightwater'==80|rightwater'==120) & session(:,5)==1 & odor1' == odorRm & session(:,4)==3); middleTrials_smallRm = allTrials(ind); ind = find(session(:,3)==1 & (leftwater'==72|leftwater'==80|leftwater'==120) & session(:,5)==2 & odor1' == odorLm & session(:,4)==3); middleTrials_smallLm = allTrials(ind); ind = find(session(:,3)==2 & (rightwater'==72|rightwater'==80|rightwater'==120) & session(:,5)==2 & odor1' == odorRm & session(:,4)==3); middleTrials_bigRm = allTrials(ind); %for odor response ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==1 & odor1' == odorL & session(:,4)==3); LL_Lbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==1 & odor1' == odorLm & session(:,4)==3); LmL_Lbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==1 & odor1' == odorR & session(:,4)==3); RL_Lbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==1 & odor1' == odorRm & session(:,4)==3); RmL_Lbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==1 & odor1' == odorL & session(:,4)==3); LR_Lbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==1 & odor1' == odorLm & session(:,4)==3); LmR_Lbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==1 & odor1' == odorR & session(:,4)==3); RR_Lbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==1 & odor1' == odorRm & session(:,4)==3); RmR_Lbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==2 & odor1' == odorL & session(:,4)==3); LL_Rbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==2 & odor1' == odorLm & session(:,4)==3); LmL_Rbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==2 & odor1' == odorR & session(:,4)==3); RL_Rbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==2 & odor1' == odorRm & session(:,4)==3); RmL_Rbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==2 & odor1' == odorL & session(:,4)==3); LR_Rbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==2 & odor1' == odorLm & session(:,4)==3); LmR_Rbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==2 & odor1' == odorR & session(:,4)==3); RR_Rbig = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==2 & odor1' == odorRm & session(:,4)==3); RmR_Rbig = allTrials(ind); %block2 ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==1 & odor1' == odorL & session(:,4)==2); LL_Lbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==1 & odor1' == odorLm & session(:,4)==2); LmL_Lbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==1 & odor1' == odorR & session(:,4)==2); RL_Lbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==1 & odor1' == odorRm & session(:,4)==2); RmL_Lbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==1 & odor1' == odorL & session(:,4)==2); LR_Lbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==1 & odor1' == odorLm & session(:,4)==2); LmR_Lbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==1 & odor1' == odorR & session(:,4)==2); RR_Lbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==1 & odor1' == odorRm & session(:,4)==2); RmR_Lbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==2 & odor1' == odorL & session(:,4)==2); LL_Rbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==2 & odor1' == odorLm & session(:,4)==2); LmL_Rbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==2 & odor1' == odorR & session(:,4)==2); RL_Rbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==1 & session(:,5)==2 & odor1' == odorRm & session(:,4)==2); RmL_Rbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==2 & odor1' == odorL & session(:,4)==2); LR_Rbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==2 & odor1' == odorLm & session(:,4)==2); LmR_Rbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==2 & odor1' == odorR & session(:,4)==2); RR_Rbig_b2 = allTrials(ind); ind = find(session(:,1)==1 & session(:,2)==2 & session(:,5)==2 & odor1' == odorRm & session(:,4)==2); RmR_Rbig_b2 = allTrials(ind); %for choice error trials with >1s wait water ind = find(session(:,3)==-1 & session(:,2)==1 & session(:,5)==1 & odor1' == odorR & session(:,4)==3); RL_LbigW = allTrials(ind); ind = find(session(:,3)==-1 & session(:,2)==1 & session(:,5)==1 & odor1' == odorRm & session(:,4)==3); RmL_LbigW = allTrials(ind); ind = find(session(:,3)==-1 & session(:,2)==2 & session(:,5)==1 & odor1' == odorL & session(:,4)==3); LR_LbigW = allTrials(ind); ind = find(session(:,3)==-1 & session(:,2)==2 & session(:,5)==1 & odor1' == odorLm & session(:,4)==3); LmR_LbigW = allTrials(ind); ind = find(session(:,3)==-1 & session(:,2)==1 & session(:,5)==2 & odor1' == odorR & session(:,4)==3); RL_RbigW = allTrials(ind); ind = find(session(:,3)==-1 & session(:,2)==1 & session(:,5)==2 & odor1' == odorRm & session(:,4)==3); RmL_RbigW = allTrials(ind); ind = find(session(:,3)==-1 & session(:,2)==2 & session(:,5)==2 & odor1' == odorL & session(:,4)==3); LR_RbigW = allTrials(ind); ind = find(session(:,3)==-1 & session(:,2)==2 & session(:,5)==2 & odor1' == odorLm & session(:,4)==3); LmR_RbigW = allTrials(ind); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% analyze photometry signals at specific events % choose trigger event to align signals. % most trigger is at the trial start (odor onset). % To align different event from odor onset, add event number as below % 1: odor poke out, 2: odor off, 3: water poke in, 4: water on, 5: water % off, 6: water poke out % For example, event_TS(allTrials) is at trial start (odor onset) of all % trials, event_TS(allTrials+1) is at odor poke out (movement start), and % so on. % triggerB is for baseline. If trigger is trial start, no need to specify % baseline if baseline is before trial start. If trigger is during trial, % usually triggerB is trial start. % LL means left pure odor left choice, LR means left pure odor right % choice, LmL means left mixture odor left choice etc. L big means left is % BIG side. % allTrials = allTrials(1:end-1); % triggerB = {event_TS(allTrials)}; % all trial start % trigger = {event_TS(allTrials+1)}; % all trial odor poke out % trigger = {event_TS(successTrials)}; % all rewarded trial start % triggerB = {event_TS([LL_Lbig;RR_Rbig]),event_TS([LmL_Lbig;RmR_Rbig]),event_TS([RmL_Lbig; LmR_Rbig]),... %odor easydifficult, bigsmall % event_TS([LL_Rbig;RR_Lbig]),event_TS([LmL_Rbig;RmR_Lbig]),event_TS([RmL_Rbig; LmR_Lbig])}; % trigger = {event_TS([LL_Lbig;RR_Rbig]+1),event_TS([LmL_Lbig;RmR_Rbig]+1),event_TS([RmL_Lbig; LmR_Rbig]+1),... % event_TS([LL_Rbig;RR_Lbig]+1),event_TS([LmL_Rbig;RmR_Lbig]+1),event_TS([RmL_Rbig; LmR_Lbig]+1)}; % trigger = {event_TS([LL_Lbig;RR_Rbig]+3),event_TS([LmL_Lbig;RmR_Rbig]+3),event_TS([RmL_Lbig; LmR_Rbig]+3),... % event_TS([LL_Rbig;RR_Lbig]+3),event_TS([LmL_Rbig;RmR_Lbig]+3),event_TS([RmL_Rbig; LmR_Lbig]+3)}; % trigger = {event_TS([LL_Lbig;RR_Rbig]+3)+1000,event_TS([LmL_Lbig;RmR_Rbig]+3)+1000,event_TS([RmL_Lbig; LmR_Rbig]+3)+1000,... % event_TS([LL_Rbig;RR_Lbig]+3)+1000,event_TS([LmL_Rbig;RmR_Lbig]+3)+1000,event_TS([RmL_Rbig; LmR_Lbig]+3)+1000}; % triggerB = {event_TS([LL_Lbig;RR_Rbig]),event_TS([LmL_Lbig;RmR_Rbig]),event_TS([RmL_Lbig; LmR_Rbig]),... % event_TS([LL_Lbig_b2;RR_Rbig_b2]),event_TS([LmL_Lbig_b2;RmR_Rbig_b2]),event_TS([RmL_Lbig_b2; LmR_Rbig_b2])}; % trigger = {event_TS([LL_Lbig;RR_Rbig]+1),event_TS([LmL_Lbig;RmR_Rbig]+1),event_TS([RmL_Lbig; LmR_Rbig]+1),... % event_TS([LL_Lbig_b2;RR_Rbig_b2]+1),event_TS([LmL_Lbig_b2;RmR_Rbig_b2]+1),event_TS([RmL_Lbig_b2; LmR_Rbig_b2]+1)}; % triggerB = {event_TS([LL_Rbig;RR_Lbig]),event_TS([LmL_Rbig;RmR_Lbig]),event_TS([RmL_Rbig; LmR_Lbig]),... % event_TS([LL_Rbig_b2;RR_Lbig_b2]),event_TS([LmL_Rbig_b2;RmR_Lbig_b2]),event_TS([RmL_Rbig_b2; LmR_Lbig_b2])}; % trigger = {event_TS([LL_Rbig;RR_Lbig]+1),event_TS([LmL_Rbig;RmR_Lbig]+1),event_TS([RmL_Rbig; LmR_Lbig]+1),... % event_TS([LL_Rbig_b2;RR_Lbig_b2]+1),event_TS([LmL_Rbig_b2;RmR_Lbig_b2]+1),event_TS([RmL_Rbig_b2; LmR_Lbig_b2]+1)}; % triggerB ={event_TS([LL_Lbig_b2;RR_Rbig_b2]),event_TS([LmL_Lbig_b2;RmR_Rbig_b2]),event_TS([RmL_Lbig_b2;LmR_Rbig_b2]),... %block2 noisy % event_TS([LL_Rbig_b2;RR_Lbig_b2]),event_TS([LmL_Rbig_b2;RmR_Lbig_b2]),event_TS([RmL_Rbig_b2; LmR_Lbig_b2])}; % trigger = {event_TS([LL_Lbig_b2;RR_Rbig_b2]+1),event_TS([LmL_Lbig_b2;RmR_Rbig_b2]+1),event_TS([RmL_Lbig_b2; LmR_Rbig_b2]+1),... %block2 % event_TS([LL_Rbig_b2;RR_Lbig_b2]+1),event_TS([LmL_Rbig_b2;RmR_Lbig_b2]+1),event_TS([RmL_Rbig_b2; LmR_Lbig_b2]+1)}; % triggerB = {event_TS([LL_Lbig_b2;RR_Rbig_b2;LL_Rbig_b2;RR_Lbig_b2]),... % event_TS([LmL_Lbig_b2;RmR_Rbig_b2;LmL_Rbig_b2;RmR_Lbig_b2]),event_TS([RmL_Lbig_b2; LmR_Rbig_b2;RmL_Rbig_b2; LmR_Lbig_b2]),... %block2 % event_TS([LL_Rbig;RR_Lbig]),event_TS([LmL_Rbig;RmR_Lbig]),event_TS([RmL_Rbig; LmR_Lbig])}; % % trigger = {event_TS([LL_Lbig_b2;RR_Rbig_b2;LL_Rbig_b2;RR_Lbig_b2]+1),... % % event_TS([LmL_Lbig_b2;RmR_Rbig_b2;LmL_Rbig_b2;RmR_Lbig_b2]+1),event_TS([RmL_Lbig_b2; LmR_Rbig_b2;RmL_Rbig_b2; LmR_Lbig_b2]+1),... %block2 % % event_TS([LL_Rbig;RR_Lbig]+1),event_TS([LmL_Rbig;RmR_Lbig]+1),event_TS([RmL_Rbig; LmR_Lbig]+1)}; % trigger = {event_TS([LL_Lbig_b2;RR_Rbig_b2;LL_Rbig_b2;RR_Lbig_b2]+3),... % event_TS([LmL_Lbig_b2;RmR_Rbig_b2;LmL_Rbig_b2;RmR_Lbig_b2]+3),event_TS([RmL_Lbig_b2; LmR_Rbig_b2;RmL_Rbig_b2; LmR_Lbig_b2]+3),... %block2 % event_TS([LL_Rbig;RR_Lbig]+3),event_TS([LmL_Rbig;RmR_Lbig]+3),event_TS([RmL_Rbig; LmR_Lbig]+3)}; % triggerB = {event_TS([LL_Rbig_b2;RR_Lbig_b2;LL_Lbig_b2;RR_Rbig_b2]),... % event_TS([LmL_Rbig_b2;RmR_Lbig_b2;LmL_Lbig_b2;RmR_Rbig_b2]),event_TS([RmL_Rbig_b2; LmR_Lbig_b2;RmL_Lbig_b2; LmR_Rbig_b2]),... %block2 % event_TS([LL_Lbig;RR_Rbig]),event_TS([LmL_Lbig;RmR_Rbig]),event_TS([RmL_Lbig; LmR_Rbig]),... % event_TS([LL_Rbig;RR_Lbig]),event_TS([LmL_Rbig;RmR_Lbig]),event_TS([RmL_Rbig; LmR_Lbig])}; % % trigger = {event_TS([LL_Lbig_b2;RR_Rbig_b2;LL_Rbig_b2;RR_Lbig_b2]+1),... % % event_TS([LmL_Lbig_b2;RmR_Rbig_b2;LmL_Rbig_b2;RmR_Lbig_b2]+1),event_TS([RmL_Lbig_b2; LmR_Rbig_b2;RmL_Rbig_b2; LmR_Lbig_b2]+1),... %block2 % % event_TS([LL_Lbig;RR_Rbig]+1),event_TS([LmL_Lbig;RmR_Rbig]+1),event_TS([RmL_Lbig; LmR_Rbig]+1),... % % event_TS([LL_Rbig;RR_Lbig]+1),event_TS([LmL_Rbig;RmR_Lbig]+1),event_TS([RmL_Rbig; LmR_Lbig]+1)}; % trigger = {event_TS([LL_Rbig_b2;RR_Lbig_b2;LL_Lbig_b2;RR_Rbig_b2]+3),... % event_TS([LmL_Rbig_b2;RmR_Lbig_b2;LmL_Lbig_b2;RmR_Rbig_b2]+3),event_TS([RmL_Rbig_b2; LmR_Lbig_b2;RmL_Lbig_b2; LmR_Rbig_b2]+3),... %block2 % event_TS([LL_Lbig;RR_Rbig]+3),event_TS([LmL_Lbig;RmR_Rbig]+3),event_TS([RmL_Lbig; LmR_Rbig]+3),... % event_TS([LL_Rbig;RR_Lbig]+3),event_TS([LmL_Rbig;RmR_Lbig]+3),event_TS([RmL_Rbig; LmR_Lbig]+3)}; % triggerB = {event_TS([RL_Lbig;LR_Rbig]),event_TS([RmL_Lbig; LmR_Rbig])}; %error easy difficult big too noisy % trigger = {event_TS([RL_Lbig;LR_Rbig]+3),event_TS([RmL_Lbig; LmR_Rbig]+3)}; % triggerB = {event_TS([RL_Lbig;LR_Rbig;RmL_Lbig; LmR_Rbig])}; %error % trigger = {event_TS([RL_Lbig;LR_Rbig;RmL_Lbig; LmR_Rbig]+3)+1000}; %% Correct big, correct small, Error triggerB = {event_TS([LL_Lbig;RR_Rbig;LmL_Lbig;RmR_Rbig]),event_TS([LL_Rbig;RR_Lbig;LmL_Rbig;RmR_Lbig]),... event_TS([RmL_Lbig; LmR_Rbig;RL_Lbig;LR_Rbig;RmL_Rbig; LmR_Lbig;RL_Rbig;LR_Lbig])}; % odor onset % trigger = {event_TS([LL_Lbig;RR_Rbig;LmL_Lbig;RmR_Rbig]+1),event_TS([LL_Rbig;RR_Lbig;LmL_Rbig;RmR_Lbig]+1),... % event_TS([RmL_Lbig; LmR_Rbig;RL_Lbig;LR_Rbig;RmL_Rbig;LmR_Lbig;RL_Rbig;LR_Lbig]+1)}; % odor poke out trigger = {event_TS([LL_Lbig;RR_Rbig;LmL_Lbig;RmR_Rbig]+3),event_TS([LL_Rbig;RR_Lbig;LmL_Rbig;RmR_Lbig]+3),... event_TS([RmL_Lbig; LmR_Rbig;RL_Lbig;LR_Rbig;RmL_Rbig; LmR_Lbig;RL_Rbig;LR_Lbig]+3)}; % water poke in % trigger = {event_TS([LL_Lbig;RR_Rbig;LmL_Lbig;RmR_Rbig]+3)+1000,event_TS([LL_Rbig;RR_Lbig;LmL_Rbig;RmR_Lbig]+3)+1000,... % event_TS([RmL_Lbig; LmR_Rbig;RL_Lbig;LR_Rbig;RmL_Rbig;LmR_Lbig;RL_Rbig;LR_Lbig]+3)+1000}; % water % triggerB = {event_TS(LL_Lbig),event_TS(LmL_Lbig),event_TS(RmL_Lbig),... % event_TS(LL_Rbig),event_TS(LmL_Rbig),event_TS(RmL_Rbig)}; %only left turn % trigger = {event_TS(LL_Lbig+1),event_TS(LmL_Lbig+1),event_TS(RmL_Lbig+1),... % event_TS(LL_Rbig+1),event_TS(LmL_Rbig+1),event_TS(RmL_Rbig+1)}; % trigger = {event_TS(LL_Lbig+3),event_TS(LmL_Lbig+3),event_TS(RmL_Lbig+3),... % event_TS(LL_Rbig+3),event_TS(LmL_Rbig+3),event_TS(RmL_Rbig+3)}; % triggerB = {event_TS(LL_Lbig),event_TS(LmL_Lbig),... % event_TS(LL_Rbig),event_TS(LmL_Rbig)}; %only left turn % trigger = {event_TS(LL_Lbig+1),event_TS(LmL_Lbig+1),... % event_TS(LL_Rbig+1),event_TS(LmL_Rbig+1)}; % triggerB = {event_TS(RR_Rbig),event_TS(RmR_Rbig),event_TS(LmR_Rbig),... % event_TS(LL_Lbig),event_TS(LmL_Lbig),event_TS(RmL_Lbig)}; % trigger = {event_TS(RR_Rbig+3),event_TS(RmR_Rbig+3),event_TS(LmR_Rbig+3),... % event_TS(LL_Lbig+3),event_TS(LmL_Lbig+3),event_TS(RmL_Lbig+3)}; % triggerB = {event_TS([RR_Rbig;RR_Lbig]),event_TS([RmR_Rbig;RmR_Lbig]),event_TS([LmR_Rbig;LmR_Lbig]),... % event_TS([LL_Lbig;LL_Rbig]),event_TS([LmL_Lbig;LmL_Rbig]),event_TS([RmL_Lbig;RmL_Rbig])}; % trigger = {event_TS([RR_Rbig;RR_Lbig]+2),event_TS([RmR_Rbig;RmR_Lbig]+2),event_TS([LmR_Rbig;LmR_Lbig]+2),... % event_TS([LL_Lbig;LL_Rbig]+2),event_TS([LmL_Lbig;LmL_Rbig]+2),event_TS([RmL_Lbig;RmL_Rbig]+2)}; % trigger = {event_TS([RR_Rbig;RR_Lbig]+3),event_TS([RmR_Rbig;RmR_Lbig]+3),event_TS([LmR_Rbig;LmR_Lbig]+3),... % event_TS([LL_Lbig;LL_Rbig]+3),event_TS([LmL_Lbig;LmL_Rbig]+3),event_TS([RmL_Lbig;RmL_Rbig]+3)}; % triggerB = {event_TS([bigTrialsLpure;bigTrialsRpure]);event_TS([middleTrials_bigLpure;middleTrials_bigRpure]);... % water BM, easy vs difficult % event_TS([bigTrialsLm;bigTrialsRm]);event_TS([middleTrials_bigLm;middleTrials_bigRm])}; % trigger = {event_TS([bigTrialsLpure;bigTrialsRpure]+3)+1000;event_TS([middleTrials_bigLpure;middleTrials_bigRpure]+3)+1000;... % water BM, easy vs difficult % event_TS([bigTrialsLm;bigTrialsRm]+3)+1000;event_TS([middleTrials_bigLm;middleTrials_bigRm]+3)+1000}; % triggerB = {event_TS([bigTrialsLpure;bigTrialsRpure]);event_TS([middleTrials_bigLpure;middleTrials_bigRpure]);... % water big vs small, easy vs difficult % event_TS([middleTrials_smallLpure;middleTrials_smallRpure]);event_TS([smallTrialsLpure;smallTrialsRpure]);... % event_TS([bigTrialsLm;bigTrialsRm]);event_TS([middleTrials_bigLm;middleTrials_bigRm]);... % event_TS([middleTrials_smallLm;middleTrials_smallRm]);event_TS([smallTrialsLm;smallTrialsRm])}; % trigger = {event_TS([bigTrialsLpure;bigTrialsRpure]+3)+1000;event_TS([middleTrials_bigLpure;middleTrials_bigRpure]+3)+1000;... % event_TS([middleTrials_smallLpure;middleTrials_smallRpure]+3)+1000;event_TS([smallTrialsLpure;smallTrialsRpure]+3)+1000;... % event_TS([bigTrialsLm;bigTrialsRm]+3)+1000;event_TS([middleTrials_bigLm;middleTrials_bigRm]+3)+1000;... % event_TS([middleTrials_smallLm;middleTrials_smallRm]+3)+1000;event_TS([smallTrialsLm;smallTrialsRm]+3)+1000}; % triggerB = {event_TS([bigTrialsLpure;bigTrialsRpure]+3);event_TS([middleTrials_bigLpure;middleTrials_bigRpure]+3);... % water big vs small, easy vs difficult % event_TS([middleTrials_smallLpure;middleTrials_smallRpure]+3);event_TS([smallTrialsLpure;smallTrialsRpure]+3);... % event_TS([bigTrialsLm;bigTrialsRm]+3);event_TS([middleTrials_bigLm;middleTrials_bigRm]+3);... % event_TS([middleTrials_smallLm;middleTrials_smallRm]+3);event_TS([smallTrialsLm;smallTrialsRm]+3)}; % trigger = {event_TS([bigTrialsLpure;bigTrialsRpure]+3)+1000;event_TS([middleTrials_bigLpure;middleTrials_bigRpure]+3)+1000;... % event_TS([middleTrials_smallLpure;middleTrials_smallRpure]+3)+1000;event_TS([smallTrialsLpure;smallTrialsRpure]+3)+1000;... % event_TS([bigTrialsLm;bigTrialsRm]+3)+1000;event_TS([middleTrials_bigLm;middleTrials_bigRm]+3)+1000;... % event_TS([middleTrials_smallLm;middleTrials_smallRm]+3)+1000;event_TS([smallTrialsLm;smallTrialsRm]+3)+1000}; % triggerB = {event_TS([smallTrialsLpure;smallTrialsRpure]);event_TS([smallTrialsLm;smallTrialsRm])}; %small water easy vs difficult % trigger = {event_TS([smallTrialsLpure;smallTrialsRpure]+3);event_TS([smallTrialsLm;smallTrialsRm]+3)}; % triggerB = {event_TS(bigTrialsLpure);event_TS(middleTrials_bigLpure);... % left water big vs small, easy % event_TS(middleTrials_smallLpure);event_TS(smallTrialsLpure)}; % trigger = {event_TS(bigTrialsLpure+3)+1000;event_TS(middleTrials_bigLpure+3)+1000;... % event_TS(middleTrials_smallLpure+3)+1000;event_TS(smallTrialsLpure+3)+1000}; % triggerB = {event_TS(bigTrialsLpure);event_TS(middleTrials_bigLpure);... % left water big vs small, easy vs difficult % event_TS(middleTrials_smallLpure);event_TS(smallTrialsLpure);... % event_TS(bigTrialsLm);event_TS(middleTrials_bigLm);... % event_TS(middleTrials_smallLm);event_TS(smallTrialsLm)}; % trigger = {event_TS(bigTrialsLpure+3)+1000;event_TS(middleTrials_bigLpure+3)+1000;... % event_TS(middleTrials_smallLpure+3)+1000;event_TS(smallTrialsLpure+3)+1000;... % event_TS(bigTrialsLm+3)+1000;event_TS(middleTrials_bigLm+3)+1000;... % event_TS(middleTrials_smallLm+3)+1000;event_TS(smallTrialsLm+3)+1000}; % triggerB = {event_TS(bigTrialsLpure);event_TS(middleTrials_bigLpure);... % water big small, easy difficult,LR % event_TS(middleTrials_smallLpure);event_TS(smallTrialsLpure);... % event_TS(bigTrialsLm);event_TS(middleTrials_bigLm);... % event_TS(middleTrials_smallLm);event_TS(smallTrialsLm);... % event_TS(bigTrialsRpure);event_TS(middleTrials_bigRpure);... % event_TS(middleTrials_smallRpure);event_TS(smallTrialsRpure);... % event_TS(bigTrialsRm);event_TS(middleTrials_bigRm);... % event_TS(middleTrials_smallRm);event_TS(smallTrialsRm)}; % trigger = {event_TS(bigTrialsLpure+3)+1000;event_TS(middleTrials_bigLpure+3)+1000;... % event_TS(middleTrials_smallLpure+3)+1000;event_TS(smallTrialsLpure+3)+1000;... % event_TS(bigTrialsLm+3)+1000;event_TS(middleTrials_bigLm+3)+1000;... % event_TS(middleTrials_smallLm+3)+1000;event_TS(smallTrialsLm+3)+1000;... % event_TS(bigTrialsRpure+3)+1000;event_TS(middleTrials_bigRpure+3)+1000;... % event_TS(middleTrials_smallRpure+3)+1000;event_TS(smallTrialsRpure+3)+1000;... % event_TS(bigTrialsRm+3)+1000;event_TS(middleTrials_bigRm+3)+1000;... % event_TS(middleTrials_smallRm+3)+1000;event_TS(smallTrialsRm+3)+1000}; % triggerB = {event_TS(bigTrialsR); event_TS(middleTrials_bigR);event_TS(middleTrials_smallR);event_TS(smallTrialsR);... % water big vs small, left vs right % event_TS(bigTrialsL); event_TS(middleTrials_bigL);event_TS(middleTrials_smallL);event_TS(smallTrialsL)}; % trigger = {event_TS(bigTrialsR+3)+1000; event_TS(middleTrials_bigR+3)+1000;... % event_TS(middleTrials_smallR+3)+1000; event_TS(smallTrialsR+3)+1000;... % event_TS(bigTrialsL+3)+1000; event_TS(middleTrials_bigL+3)+1000;... % event_TS(middleTrials_smallL+3)+1000; event_TS(smallTrialsL+3)+1000}; %% water big, medium BIG side, medium SMALL side, small % triggerB = {event_TS([bigTrialsL;bigTrialsR]);event_TS([middleTrials_bigL;middleTrials_bigR]);... % event_TS([middleTrials_smallL;middleTrials_smallR]);event_TS([smallTrialsL;smallTrialsR])}; %trial start % trigger = {event_TS([bigTrialsL;bigTrialsR]+3)+1000; event_TS([middleTrials_bigL;middleTrials_bigR]+3)+1000;... % event_TS([middleTrials_smallL;middleTrials_smallR]+3)+1000;event_TS([smallTrialsL;smallTrialsR]+3)+1000}; % water % trigger = {event_TS(successTrials_waterout([bigTrialsL;bigTrialsR])); event_TS(successTrials_waterout([middleTrials_bigL;middleTrials_bigR]));... % event_TS(successTrials_waterout([middleTrials_smallL;middleTrials_smallR]));event_TS(successTrials_waterout([smallTrialsL;smallTrialsR]))}; % triggerB = {event_TS(bigTrialsR);event_TS(middleTrials_bigR);... % water big vs small, right and left % event_TS(middleTrials_smallR);event_TS(smallTrialsR);... % event_TS(bigTrialsL);event_TS(middleTrials_bigL);... % event_TS(middleTrials_smallL);event_TS(smallTrialsL)}; % trigger = {event_TS(bigTrialsR+3)+1000;event_TS(middleTrials_bigR+3)+1000;... % event_TS(middleTrials_smallR+3)+1000;event_TS(smallTrialsR+3)+1000;... % event_TS(bigTrialsL+3)+1000; event_TS(middleTrials_bigL+3)+1000;... % event_TS(middleTrials_smallL+3)+1000;event_TS(smallTrialsL+3)+1000}; % triggerB = {event_TS(bigTrialsR+3);event_TS(middleTrials_bigR+3);... % water big vs small, right and left % event_TS(middleTrials_smallR+3);event_TS(smallTrialsR+3);... % event_TS(bigTrialsL+3);event_TS(middleTrials_bigL+3);... % event_TS(middleTrials_smallL+3);event_TS(smallTrialsL+3)}; % trigger = {event_TS(bigTrialsR+3)+1000;event_TS(middleTrials_bigR+3)+1000;... % event_TS(middleTrials_smallR+3)+1000;event_TS(smallTrialsR+3)+1000;... % event_TS(bigTrialsL+3)+1000; event_TS(middleTrials_bigL+3)+1000;... % event_TS(middleTrials_smallL+3)+1000;event_TS(smallTrialsL+3)+1000}; % triggerB = {event_TS(bigTrialsL);event_TS(middleTrials_bigL);... % water big vs small only left % event_TS(middleTrials_smallL);event_TS(smallTrialsL)}; % trigger = {event_TS(bigTrialsL+3)+1000; event_TS(middleTrials_bigL+3)+1000;... % event_TS(middleTrials_smallL+3)+1000;event_TS(smallTrialsL+3)+1000}; % triggerB = {event_TS(bigTrialsR);event_TS(middleTrials_bigR);... % water big vs small only right % event_TS(middleTrials_smallR);event_TS(smallTrialsR)}; % trigger = {event_TS(bigTrialsR+3)+1000; event_TS(middleTrials_bigR+3)+1000;... % event_TS(middleTrials_smallR+3)+1000;event_TS(smallTrialsR+3)+1000}; % triggerB = {event_TS([RmR_Lbig; LmL_Rbig]),event_TS([RmR_Rbig; LmL_Lbig]),... %error with wait water % event_TS([RmL_LbigW; LmR_RbigW]),event_TS([RmL_RbigW; LmR_LbigW])}; % trigger = {event_TS([RmR_Lbig; LmL_Rbig]+3)+1000,event_TS([RmR_Rbig; LmL_Lbig]+3)+1000,... % event_TS([RmL_LbigW; LmR_RbigW]+3)+1000,event_TS([RmL_RbigW; LmR_LbigW]+3)+1000}; % triggerB = {event_TS(Lwaterodor); event_TS(Rwaterodor)}; % trigger = {event_TS(Lwater); event_TS(Rwater)}; % trigger = {event_TS(noodor)}; % trigger_block2 = [length(RchoiceR{2}),length(RmchoiceR{2}),length(LmchoiceR{2}),length(LchoiceR{2}),... % length(RchoiceL{2}),length(RmchoiceL{2}),length(LmchoiceL{2}),length(LchoiceL{2})] % trigger_block3 = [length(RchoiceR{3}),length(RmchoiceR{3}),length(LmchoiceR{3}),length(LchoiceR{3}),... % length(RchoiceL{3}),length(RmchoiceL{3}),length(LmchoiceL{3}),length(LchoiceL{3})] plotdata = GCaMP; plotWin = -3000:7000; %matrix time window from trigger plotBaseline = 2001:2800; %usually 2001:2800 for baseline before trial start DeltaF = {}; for ii = 1:length(trigger) ts = round(trigger{ii}); if ~exist('triggerB') triggerB = trigger; end tsB = round(triggerB{ii}); ind = find( tsB+ plotWin(1)>0,1,'first'); ind2 = find( ts+ plotWin(end)< length(plotdata),1,'last'); ts = ts(ind:ind2); plotind = bsxfun(@plus, repmat(plotWin,length(ts),1),ts); rawTrace = plotdata(plotind); tsB = tsB(ind:ind2); plotind = bsxfun(@plus, repmat(plotWin,length(ts),1),tsB); rawTraceB = plotdata(plotind); if length(ts)>1 F = mean(rawTraceB(:,plotBaseline),2); deltaF = bsxfun(@minus,rawTrace,F); else F = mean(rawTraceB(plotBaseline)); deltaF = bsxfun(@minus,rawTrace,F); deltaF = deltaF'; end DeltaF{ii} = deltaF; end