%function Processed = templev(signals)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This function averages lever data into time bins as requested by user
%
% Input: Matrix with subjects (or condition/subject) on rows
% Sampling rate (Hz) manually
% Desired bins of time (s) manually
% Output: .dat file with average values per bin per row
%
% Author: Nicole Prause 3.2.09
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cnt_folder = char([{'D:\Study_Verena\Raw_Data\'}]);
ImportToSPSS=char([{'D:\Study_Verena\Raw_Data\ImportToSPSS.dat'}]);
SubjectNumbers=char([{'D:\Study_Verena\Raw_Data\SubjectNumbers.dat'}]);
FileList = char('D:\Study_Verena\Raw_Data\');
%format short G
Bin = 5; %Time length of bins requested (in s)
SRate = 1000; %Sampling rate
dlmwrite(ImportToSPSS,'');
dlmwrite(SubjectNumbers,'');
filename_lst = dir(fullfile(FileList, '*.cnt'));
for q=1:length(filename_lst)
filename = char(filename_lst(q).name);
fprintf ('Running file %s', filename_lst(q).name);
filename=strcat(cnt_folder,filename);
signals=loadcnt(filename,'dataformat','int32');
data=signals.data;
data=data(1:2,:);
ProcessingFile=char([{'binning.dat'}]);
dlmwrite((strcat(cnt_folder,ProcessingFile)),'');
MovieList = [];
for i=1:length(signals.event)
MovieList=[MovieList,signals.event(i).stimtype];
end
MovieList %displays the codes for the movies detected for this subject
% for g=1:length(MovieList) %Delete fan events (coded 0)
% if MovieList(g)<1
% MovieList(g)='';
% MovieList(g)='';
% elseif length(MovieList)<8
% break
% end
% end
% for g=1:length(MovieList)
% if MovieList(g)==255 %Remove any 255 code
% MovieList(g)='';
% else
% end
% end
for row = 1:2
signal=data(row,:);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Average in bins
% 200: Neutral 1
% 201: Neutral 2
% 202: Neutral 3
% 203, 206, 209 Sex alone
% 204, 207, 210 Sex with worry statements
% 205, 208, 211 Sex with body statements
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CalcBin = Bin*SRate; %Length (in data points) per bin
InOrder=[200 201 202 203 206 209 204 207 210 205 208 211];
for Movie=1:length(InOrder)
OrderforSubject=find(MovieList==InOrder(Movie));
eval=isempty(OrderforSubject);
if eval==0 %seems opposite logic in help file, but skips correctly
% OrderforSubject
% InOrder(Movie)
if (InOrder(Movie)==200) || (InOrder(Movie)==201) || (InOrder(Movie)==202)
start=((signals.event(OrderforSubject).offset))+720000; %Take last 3 min of neutral film
BinMark = start:CalcBin:(start+(180*SRate)); %Data point for start of each bin
display('Neutral')
fprintf('Offset %d \n',signals.event(OrderforSubject).offset)
elseif (InOrder(Movie)==203) || (InOrder(Movie)==206) || (InOrder(Movie)==209)
start=((signals.event(OrderforSubject).offset));
BinMark = start:CalcBin:(start+(180*SRate));
display('SexAlone')
fprintf('Offset %d \n',signals.event(OrderforSubject).offset)
elseif (InOrder(Movie)==204) || (InOrder(Movie)==207) || (InOrder(Movie)==210)
start=((signals.event(OrderforSubject).offset));
BinMark = start:CalcBin:(start+(180*SRate));
display('Worry')
fprintf('Offset %d \n',signals.event(OrderforSubject).offset)
elseif (InOrder(Movie)==205) || (InOrder(Movie)==208) || (InOrder(Movie)==211)
start=((signals.event(OrderforSubject).offset));
BinMark = start:CalcBin:(start+(180*SRate));
display('Body')
fprintf('Offset %d \n',signals.event(OrderforSubject).offset)
else
end
for j=2:length(BinMark)
Avg = mean(signal(1,BinMark(j-1):BinMark(j)));
dlmwrite((strcat(cnt_folder,ProcessingFile)), Avg, '-append')
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Load the processed data to export for MatLab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
load D:\Study_Verena\Raw_Data\binning.dat; %Need to fix to update with header specs
binning=binning';
[pathstr, name, ext, versn] = fileparts(filename);
dlmwrite(ImportToSPSS, binning, '-append')
dlmwrite(SubjectNumbers, name,'-append','delimiter','')
end
%end