function a_pm = plot_abstract(a_db, title_str, props)
% plot_abstract - Visualizes the spikes_db by marking spike shapes measurements on the trace plot.
%
% Usage:
% a_pm = plot_abstract(a_db, title_str, props)
%
% Description:
%
% Parameters:
% a_db: A spikes_db object.
% title_str: (Optional) A string to be concatanated to the title.
% props: A structure with any optional properties passed to trace/plotData.
%
% Returns:
% a_pm: A trace plot.
%
% Example: (see tests_db/plot_abstract)
%
% See also: plot_abstract/plot_abstract, tests_db/plot_abstract, plotFigure
%
% $Id$
%
% Author: Cengiz Gunay <cgunay@emory.edu>, 2005/08/17
% Copyright (c) 2007 Cengiz Gunay <cengique@users.sf.net>.
% This work is licensed under the Academic Free License ("AFL")
% v. 3.0. To view a copy of this license, please look at the COPYING
% file distributed with this software or visit
% http://opensource.org/licenses/afl-3.0.php.
if ~ exist('title_str', 'var')
title_str = '';
end
if ~ exist('props', 'var')
props = struct;
end
% first plot the trace
trace_plot = plotData(a_db.trace, title_str, props);
num_spikes = dbsize(a_db, 1);
% Then superpose all spike measures
[plots(1:num_spikes)] = deal(plot_abstract);
for spike_num=1:num_spikes
ssp = spike_shape_profile(rows2Struct(a_db, spike_num), spike_shape);
results = getResults(ssp);
plots(spike_num) = plot_abstract(ssp, struct('absolute_peak_time', results.Time, ...
'no_plot_spike', 1));
end
a_pm = superposePlots([trace_plot, plots]);