-
Notifications
You must be signed in to change notification settings - Fork 0
/
betterCode.m
105 lines (93 loc) · 3.92 KB
/
betterCode.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
%% Read in data
clear
foldername = 'ptx 200 7d/';
dataList = dir('ptx 200 7d/*.txt');
%dataList = dataList(103:118);
totallatency = [];
excelwrite = {'Group', 'Amplitude','Scaled NCV'};
stdevs = [];
for k=1:length(dataList)
latencylist=[];
amplitudelist=[];
startIndexList=[];
%figure(k)
data = load(strcat(foldername, dataList(k).name));
titleOfGraph = string(dataList(k).name);
temp = titleOfGraph.split();
%if temp(1) == 'ctrl'
group = titleOfGraph;
Time = data(:,1);
Voltage = data(:,2);
%% Figure out length & number of traces
tracelength = 2000;
numtraces = length(data)/tracelength; %number of traces
%% Bring baseline of data plot to zero
traceMatrix = [];
times = Time(1:2000);
for i = 1:length(Time)/tracelength
traceMatrix(:,i) = Voltage(2000*(i-1)+1:2000*i);
end
try
[artifactTimes, baselinedTraces, ~, ~, ~, ~, ~] = betterBaseline(times, traceMatrix);
catch
warning('error in calculating %s', titleOfGraph)
excelwrite = [excelwrite; group, NaN, NaN];
continue
end
meanTrace = mean(baselinedTraces, 2);
for i=1:numtraces
try
[indices, amplitude, latency, startIndex] = findROI(traceMatrix(:,i),times,k);
latencylist = [latencylist latency];
startIndexList = [startIndexList startIndex];
amplitudelist = [amplitudelist amplitude];
% plot(times, traceMatrix(:,i), 'r-')
% hold on
% plot(times(latency+startIndex), traceMatrix(latency+startIndex,i), 'b*')
catch
latencylist = [latencylist];
continue;
end
end
% plot(times(round(median(latencylist) + startIndex)), meanTrace(round(median(latencylist) + startIndex)), 'g*')
% plot(times(round(mean(latencylist) + startIndex)), meanTrace(round(mean(latencylist) + startIndex)), 'k*') excelwrite = [excelwrite; group, median(amplitudelist), median(latencylist)];
%plot(times(indices), meanTrace(indices), 'b-', 'LineWidth', 2)
[N, edges] = histcounts(latencylist, 20);
centers=[];
for l=1:length(edges)-1
centers = [centers (edges(l)+edges(l+1))/2];
end
% weighted average
% totallatency = [totallatency sum(centers.*(N./sum(N)))];
% mode
%histogram(latencylist, 19)
totallatency = centers(find(N==max(N),1));
%plot(times(round((totallatency) + startIndex)), meanTrace(round((totallatency) + startIndex)), 'g*')
% title(titleOfGraph + ' ' + (centers(find(N==max(N),1))))
% median
% totallatency = [totallatency median(latencylist)];
%title(titleOfGraph + ' ' + mode(latencylist))
% stdevs = [stdevs std(latencylist)];
% columntoadd = {group};
% for h = 1:length(latencylist)
% columntoadd = [columntoadd; latencylist(h)];
% end
% for j = 1:(300-length(latencylist))
% columntoadd = [columntoadd; NaN];
% end
% excelwrite = [excelwrite columntoadd];
%end
% plot(times,meanTrace,'r-')
% hold on
% plot(times(latencylist+startIndexList), meanTrace(latencylist+startIndexList), 'b*')
% plot(times(round(median(latencylist + startIndexList))), meanTrace(round(median(latencylist + startIndexList))), 'g*')
fprintf("finished trial: %d/%d\n", k,length(dataList));
excelwrite = [excelwrite; group, median(amplitudelist), median(latencylist)];
end
%csvwrite('ctrlamplitudes', transpose(ctrlamplitudes));
%csvwrite('ctrllatencies', transpose(1./ctrllatencies));
%csvwrite('ptxamplitudes', transpose(ptxamplitudes));
%csvwrite('ptxlatencies', transpose(1./ptxlatencies));
filename = 'justptx200nM.xlsx';
xlswrite(filename,excelwrite)
%histogram(latencylist, 20)