psth {STAR} | R Documentation |
psth
computes and plot.psth
plots a peri-stimulus time histogram (called PST,
post-stimulus time histogram by Gerstein and Kiang (1960)) from
repeated presentations of a stimulation. Confidence bands can be
obtained using the Poisson approximation.
psth(repeatedTrain, breaks = 20, include.lowest = TRUE, right = TRUE, plot = TRUE, CI = 0.95, ...) ## S3 method for class 'psth': plot(x, stimTimeCourse = NULL, colStim = "grey80", colCI = NULL, xlab, ylab, main, xlim, ylim, lwd = 2, col = 1, ...)
repeatedTrain |
a repeatedTrain object or a list which can be
coerced to such an object. |
x |
a psth object. |
stimTimeCourse |
NULL (default) or a two elements vector
specifying the time boundaries (in s) of a stimulus presentation. |
colStim |
the background color used for the stimulus. |
breaks |
a numeric. A single number is interpreted has the number of bins; a vector of length 2 is interpreted as the bin width and the step to use (see details); otherwise interpreted as the position of the "breaks" between bins. |
include.lowest |
corresponding argument of hist . |
right |
corresponding argument of hist . |
plot |
corresponding argument of hist . |
CI |
The coverage probability of the confidence intervals. |
colCI |
if not NULL (default) a confidence band is
plotted with the specified color; two dashed lines are plotted otherwise. |
xlim |
a numeric (default value supplied). See
plot . |
ylim |
a numeric (default value supplied). See plot . |
xlab |
a character (default value supplied). See plot . |
ylab |
a character (default value supplied). See plot . |
main |
a character (default value supplied). See plot . |
lwd |
line width used to plot the estimated density. See plot . |
col |
color used to plot the estimated density. See plot . |
... |
see plot . |
When confidence bands are requested they are obtained from the
qunatiles of the Poisson
distribution.
When a 2 elements vector is used as breaks
argument it is
interpreted as specifying a bin width (first element if elements are
unnamed, "bw"
element otherwise) and a step (second element if
elements are unnamed, "step"
element otherwise). The idea is
then to obtain a smoother looking PSTH by counting spikes within
overlapping bins. That is if the center of the ith bin is xi the one
of the (i+1)th bin will be xi + step.
When plot
is set to FALSE
in psth
, a list of
class psth
is returned and no plot
is generated. This list has the following components:
freq |
a vector containing the instantaneous firing rate. |
ciUp |
a vector with the upper limit of the confidence band. |
ciLow |
a vector with the lower limit of the confidence band. |
breaks |
a numeric vector with the breaks in between which spikes
were counted. Similar to the component of the same name returned by
hist . |
mids |
a numeric vector with the mid points of
breaks . Similar to the component of the same name returned
by hist . |
counts |
a matrix with as many rows as components in
repeatedTrain and as many columns as bins. Each element of
the matrix contains the number of spikes falling in a given trial in
a given bin. |
nbTrials |
the number of stimulations. |
call |
the matched call. |
When plot
is set to TRUE
nothing is returned and a plot
is generated as a side effect. Of course the same occurs upon calling
plot.psth
with a psth
object argument.
Christophe Pouzat christophe.pouzat@gmail.com
Gerstein, George L. and Kiang, Nelson Y.-S. (1960) An Approach to the Quantitative Analysis of Electrophysiological Data from Single Neurons. Biophysical Journal 1: 15–28. http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pubmed&pubmedid=13704760
Kalbfleisch, J. G. (1985) Probability and Statistical Inference. Volume 2: Statistical Inference. Springer-Verlag.
as.repeatedTrain
,
is.repeatedTrain
,
print.repeatedTrain
,
summary.repeatedTrain
,
raster
## Load Vanillin responses data (first cockroach data set) data(CAL1V) ## convert them into repeatedTrain objects ## The stimulus command is on between 4.49 s and 4.99s CAL1V <- lapply(CAL1V,as.repeatedTrain) ## look at the individual raster plots plot(CAL1V[["neuron 1"]],stimTimeCourse=c(4.49,4.99),main="N1") ## Create a simple black and white PSTH for neuron 1 psth(CAL1V[["neuron 1"]],stimTimeCourse=c(4.49,4.99),breaks=20) ## Rebuilt the same PSTH but with red confidence bands psth(CAL1V[["neuron 1"]],stimTimeCourse=c(4.49,4.99),breaks=20,colCI=2) ## Make the PSTH smoother psth(CAL1V[["neuron 1"]],stimTimeCourse=c(4.49,4.99),breaks=c(bw=0.5,step=0.05),colCI=2) ## Make a plot with PSTHs from 4 neurons superposed ## First get lists containing PSTHs from each neuron psth1 <- psth(CAL1V[["neuron 1"]],breaks=c(bw=0.5,step=0.05),plot=FALSE) psth2 <- psth(CAL1V[["neuron 2"]],breaks=c(bw=1,step=0.1),plot=FALSE) psth3 <- psth(CAL1V[["neuron 3"]],breaks=c(bw=0.5,step=0.05),plot=FALSE) psth4 <- psth(CAL1V[["neuron 4"]],breaks=c(bw=2,step=0.2),plot=FALSE) ## Get the maximal frequency to display maxFreq <- max(max(psth1$ciUp),max(psth2$ciUp),max(psth3$ciUp),max(psth4$ciUp)) ## Build plot plot(c(0,10),c(0,75),type="n", xaxs="i",yaxs="i",xlab="Time (s)", ylab="Freq. (Hz)", main="PSTHs from 4 simultaneously recorded neurons", sub="20 stimulations with vanillin were used.") ## Add rectangle corresponding to stimulation command rect(4.49,0,4.99,75,col="grey80",lty=0) ## Add the neurons PSTHs as confidence bands polygon(c(psth1$mids,rev(psth1$mids)),c(psth1$ciLow,rev(psth1$ciUp)),col=1,border=NA) polygon(c(psth2$mids,rev(psth2$mids)),c(psth2$ciLow,rev(psth2$ciUp)),col=2,border=NA) polygon(c(psth3$mids,rev(psth3$mids)),c(psth3$ciLow,rev(psth3$ciUp)),col=3,border=NA) polygon(c(psth4$mids,rev(psth4$mids)),c(psth4$ciLow,rev(psth4$ciUp)),col=4,border=NA) legend(0.1,maxFreq,legend=paste("neuron",1:4),lty=1,col=1:4,bty="n")