Skip to content

Commit 498ae3c

Browse files
committed
Enhance ROI visualization in ROIVisualization.jl by adding analysis window indicators, including shaded bands and vertical lines for better clarity in data interpretation.
1 parent b064dcb commit 498ae3c

File tree

1 file changed

+47
-12
lines changed

1 file changed

+47
-12
lines changed

src/PlottingFunctions/ROIVisualization.jl

Lines changed: 47 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,20 @@ function plot_roi_analysis(data::Experiment{TWO_PHOTON, T};
150150
color=:red)
151151
end
152152

153-
# Add stimulus time indicator if available
154-
if haskey(analysis.analysis_parameters, :delay_time)
155-
delay_time = analysis.analysis_parameters[:analysis_window_start]
156-
vlines!(ax2, [delay_time], color=:red, linestyle=:dash, label="Stimulus")
157-
vlines!(ax3, [delay_time], color=:red, linestyle=:dash, label="Stimulus")
153+
# Add analysis window visualization
154+
if haskey(analysis.analysis_parameters, :analysis_window_start)
155+
window_start = analysis.analysis_parameters[:analysis_window_start]
156+
window_end = analysis.analysis_parameters[:analysis_window_end]
157+
158+
# Add analysis window
159+
band!(ax2, [window_start, window_end], [minimum(mean_trace), minimum(mean_trace)],
160+
[maximum(mean_trace), maximum(mean_trace)], color=(:gray, 0.2), label="Analysis Window")
161+
band!(ax3, [window_start, window_end], [minimum(trace.dfof), minimum(trace.dfof)],
162+
[maximum(trace.dfof), maximum(trace.dfof)], color=(:gray, 0.2), label="Analysis Window")
163+
164+
# Add vertical lines at window boundaries
165+
vlines!(ax2, [window_start, window_end], color=:black, linestyle=:dash, alpha=0.5)
166+
vlines!(ax3, [window_start, window_end], color=:black, linestyle=:dash, alpha=0.5)
158167
end
159168

160169
# Add legend only for mean response
@@ -279,13 +288,21 @@ function plot_roi_analysis_stitched(data::Experiment{TWO_PHOTON, T};
279288
lines!(ax_stimulus, mean_time_axis, all_mean_trace, color=:blue, linewidth=2, label="Mean (n=$(length(all_traces)))")
280289
end
281290

282-
# Add stimulus time indicator if available
283-
if haskey(analysis.analysis_parameters, :delay_time)
284-
delay_time = analysis.analysis_parameters[:delay_time]
285-
vlines!(ax_stitched, [delay_time], color=:red, linestyle=:dash)
286-
vlines!(ax_stimulus, [delay_time], color=:red, linestyle=:dash)
291+
# Add analysis window visualization
292+
if haskey(analysis.analysis_parameters, :analysis_window_start)
293+
window_start = analysis.analysis_parameters[:analysis_window_start]
294+
window_end = analysis.analysis_parameters[:analysis_window_end]
295+
296+
# Add analysis window
297+
band!(ax_stitched, [window_start, window_end], [minimum(mean_trace), minimum(mean_trace)],
298+
[maximum(mean_trace), maximum(mean_trace)], color=(:gray, 0.2), label="Analysis Window")
299+
band!(ax_stimulus, [window_start, window_end], [minimum(all_mean_trace), minimum(all_mean_trace)],
300+
[maximum(all_mean_trace), maximum(all_mean_trace)], color=(:gray, 0.2), label="Analysis Window")
301+
302+
# Add vertical lines at window boundaries
303+
vlines!(ax_stitched, [window_start, window_end], color=:black, linestyle=:dash, alpha=0.5)
304+
vlines!(ax_stimulus, [window_start, window_end], color=:black, linestyle=:dash, alpha=0.5)
287305
end
288-
# axislegend(ax_stitched, position=:rt)
289306
end
290307
return fig
291308
end
@@ -365,7 +382,25 @@ function plot_analysis(data::Experiment{TWO_PHOTON, T};
365382
lines!(ax_average, time_axis_segment, mean_sig_trace, color=:red, linewidth=2.5)
366383
end
367384
delay_time = haskey(analysis.analysis_parameters, :delay_time) ? analysis.analysis_parameters[:delay_time] : nothing
368-
vlines!(ax_average, [delay_time], color=:black, linestyle=:dash)
385+
window_start = haskey(analysis.analysis_parameters, :analysis_window_start) ? analysis.analysis_parameters[:analysis_window_start] : nothing
386+
window_end = haskey(analysis.analysis_parameters, :analysis_window_end) ? analysis.analysis_parameters[:analysis_window_end] : nothing
387+
388+
if !isnothing(delay_time)
389+
vlines!(ax_average, [delay_time], color=:black, linestyle=:dash)
390+
end
391+
392+
# Add analysis window visualization
393+
if haskey(analysis.analysis_parameters, :analysis_window_start)
394+
window_start = analysis.analysis_parameters[:analysis_window_start]
395+
window_end = analysis.analysis_parameters[:analysis_window_end]
396+
397+
# Add analysis window
398+
band!(ax_average, [window_start, window_end], [minimum(mean_sig_trace), minimum(mean_sig_trace)],
399+
[maximum(mean_sig_trace), maximum(mean_sig_trace)], color=(:gray, 0.2), label="Analysis Window")
400+
401+
# Add vertical lines at window boundaries
402+
vlines!(ax_average, [window_start, window_end], color=:black, linestyle=:dash, alpha=0.5)
403+
end
369404

370405
# Add x and y scale bars to lower left of raw trace axis
371406
if channel == 1

0 commit comments

Comments
 (0)