clear all ;clc folder = uigetdir; cd(folder); files=dir('*m*'); mkdir('Results'); dose=1; %mg/ml volume=30; %uL bw=25; %grams bw=bw/1000; for q=1:size(files,1) savename=upper(files(q,1).name); totdata=[]; %filter out everything except the C array [b]=textread(savename,'%s','delimiter',['\t' ':' ' ']); Crow=0; for i=1:length(b)-1 if strfind(b{i,1},'C') == 1 Crow=i; end end filteredC=ones(size(b,1)-Crow-1,1); %filter the C array for i=Crow+1:size(b,1) filteredC(i-Crow-1+1)=str2double(b{i}); end ap=[];pn=[];pf=[];ip=[];rwp=[];licks=[];tn1=[];tn2=[]; a=[]; for i=1:length(filteredC) if (filteredC(i)-floor(filteredC(i))>0.299)&&(filteredC(i)-floor(filteredC(i))<0.301) ap(end+1,1)=floor(filteredC(i,1));% active poke 0.3 elseif (filteredC(i)-floor(filteredC(i))>0.399)&&(filteredC(i)-floor(filteredC(i))<0.401) pn(end+1,1)=floor(filteredC(i,1));% pump on 0.4 elseif (filteredC(i)-floor(filteredC(i))>0.499)&&(filteredC(i)-floor(filteredC(i))<0.501) pf(end+1,1)=floor(filteredC(i,1));% pump off 0.5 elseif (filteredC(i)-floor(filteredC(i))>0.799)&&(filteredC(i)-floor(filteredC(i))<0.801) ip(end+1,1)=floor(filteredC(i,1));% inactive poke 0.8 elseif (filteredC(i)-floor(filteredC(i))>0.899)&&(filteredC(i)-floor(filteredC(i))<0.901) rwp(end+1,1)=floor(filteredC(i,1));% magazine poke 0.9 elseif (filteredC(i)-floor(filteredC(i))>0.209)&&(filteredC(i)-floor(filteredC(i))<0.211) licks(end+1,1)=floor(filteredC(i,1));% lick 0.21 elseif (filteredC(i)-floor(filteredC(i))>0.599)&&(filteredC(i)-floor(filteredC(i))<0.601) tn1(end+1,1)=floor(filteredC(i,1));% tone1 0.6 elseif (filteredC(i)-floor(filteredC(i))>0.109)&&(filteredC(i)-floor(filteredC(i))<0.111) tn2(end+1,1)=floor(filteredC(i,1));% tone2 0.11 else a(end+1,1)=filteredC(i,1); end end rwp=licks; %lick latency % licklat=[]; % for i=1:size(pn,1) % licklat(end+1,1:2)=[pn(i,1) licks(find(licks(:,1) > pn(i,1),1),1)]; % end % % licklat(:,3)=licklat(:,2)-licklat(:,1); druglevel=0; infusiontime=ceil(pn/60000); infusioncheck=(1:360)*0; infusioncheck=infusioncheck'; timespan=(0:359)'; p=[];clear i; for i=1:length(infusiontime) if infusiontime(i)>=359 continue else p(end+1)=find((timespan(:,1)==infusiontime(i))); end end p=p'; infusioncheck(p)=1; i=1; for i =1: size(infusiontime,1) if size(find(infusiontime(i,1) == infusiontime(:,1)),1) > 1 infusioncheck(infusiontime((i),1)+1) =2; end end timespan=(0:359)'; %whenever there is an infusion,the infusioncheck will say number of infs %calculate the drug level for every minute during the experiment clear i; %animal weight is one parameter in drug level calculation for i=1:length (timespan)-1 druglevel(i+1)=(druglevel(i)+(dose)*(volume/1000)/bw*infusioncheck(i+1))*exp((.5)*-0.0238); end %make figure for events figure;hold on %behavioral event rasters if isempty(ap) == 0 for i=1:size(ap,1) plot([ap(i)/60000 ap(i)/60000],[0 75],'g'); hold on %Active poke end text(0,100,['Active total ' num2str(size(ap,1))],'FontSize',14); end if isempty(ip) == 0 for i=1:size(ip,1) plot([ip(i)/60000 ip(i)/60000],[200 275],'r') %Inactive poke end text(0,300,['Inactive total ' num2str(size(ip,1))],'FontSize',14); end if isempty(rwp) == 0 for i=1:size(rwp,1) plot([rwp(i)/60000 rwp(i)/60000],[400 475],'k') %Reward Poke end text(0,500,['Magazine total ' num2str(size(rwp,1))],'FontSize',14); end if isempty(licks) == 0 for i=1:size(licks,1) plot([licks(i)/60000 licks(i)/60000],[600 675],'k') %Licks end text(0,700,['Lick total ' num2str(size(licks,1))],'FontSize',14); end if isempty(pn) == 0 for i=1:size(pn,1) plot([pn(i)/60000 pn(i)/60000],[800 875],'g') %Rewards end text(0,900,['Reward total ' num2str(size(pn,1))],'FontSize',14); end title(strtok(savename,'.'),'Interpreter','none'); xlabel('Time (min)'); totdata=[size(ap,1) size(ip,1) size(rwp,1) size(licks,1) size(pn,1)]; %ActivePokes InactivePokes MagazineEntries Licks Rewards cd('Results'); dlmwrite([strtok(savename,'.') '.txt'],totdata,'delimiter','\t'); print('-djpeg','-r200',[strtok(savename,'.') '.jpg']); figure; druglevel=druglevel'; plot(timespan,druglevel,'lineWidth',2); set(gca,'TickDir','out'); ylabel('mg/kg','FontSize',16); xlabel('Time','FontSize',16) title(['Drug Consumed: ' num2str((dose)*(volume/1000)*size(pn,1)) ' mg for ' strtok(savename,'.')],'Interpreter','None') print('-djpeg','-r200',[strtok(savename,'.') '-DL.jpg']); close all; cd('..'); clear dipper ap ip rwp pn pf licks tn1 tn2 disp(['ran ' strtok(savename,'.')]) end