frt {STAR} | R Documentation |
Computes the (transformed) time differences between spikes of a
refTrain
and the (next) ones of a testTrain
. Both
refTrain
and testTrain
should be transformedTrain
objects.
frt(refTrain, testTrain) refTrain %frt% testTrain
refTrain |
a transformedTrain object. |
testTrain |
a transformedTrain object. |
When two spike trains have been time transformed using the same
procedure, which does make one of the trains (the testTrain
) the realization a
homogeneous Poisson process with rate 1, the elapsed time between the
spikes of the other train (refTrain
) and the ones of
testTrain
should be exponentially distributed with rate
1. These elapsed times are returned by frt
.
An object of class frt
containing the elapsed times.
Christophe Pouzat christophe.pouzat@gmail.com
transformedTrain
,
plot.frt
,
summary.frt
,
mkGLMdf
## Not run: ## Let us consider neuron 1 of the CAL2S data set data(CAL2S) CAL2S <- lapply(CAL2S,as.spikeTrain) CAL2S[["neuron 1"]] renewalTestPlot(CAL2S[["neuron 1"]]) summary(CAL2S[["neuron 1"]]) ## Make a data frame with a 4 ms time resolution cal2Sdf <- mkGLMdf(CAL2S,0.004,0,60) ## keep the part relative to neuron 1, 2 and 3 separately n1.cal2sDF <- cal2Sdf[cal2Sdf$neuron=="1",] n2.cal2sDF <- cal2Sdf[cal2Sdf$neuron=="2",] n3.cal2sDF <- cal2Sdf[cal2Sdf$neuron=="3",] ## remove unnecessary data rm(cal2Sdf) ## Extract the elapsed time since the second to last and ## third to last for neuron 1. Normalise the result. n1.cal2sDF[c("rlN.1","rsN.1","rtN.1")] <- brt4df(n1.cal2sDF,"lN.1",2,c("rlN.1","rsN.1","rtN.1")) ## load mgcv library library(mgcv) ## fit a model with a tensorial product involving the last ## three spikes and using a cubic spline basis for the last two ## To gain time use a fixed df regression spline n1S.fitA <- gam(event ~ te(rlN.1,rsN.1,bs="cr",fx=TRUE) + rtN.1,data=n1.cal2sDF,family=binomial(link="logit")) ## transform time N1.Lambda <- transformedTrain(n1S.fitA) ## check out the resulting spike train using the fact ## that transformedTrain objects inherit from spikeTrain ## objects N1.Lambda ## Use more formal checks summary(N1.Lambda) plot(N1.Lambda,which=c(1,2,4,5),ask=FALSE) ## Transform spike trains of neuron 2 and 3 N2.Lambda <- transformedTrain(n1S.fitA,n2.cal2sDF$event) N3.Lambda <- transformedTrain(n1S.fitA,n3.cal2sDF$event) ## Check interactions summary(N2.Lambda %frt% N1.Lambda) summary(N3.Lambda %frt% N1.Lambda) plot(N2.Lambda %frt% N1.Lambda,ask=FALSE) plot(N3.Lambda %frt% N1.Lambda,ask=FALSE) ## End(Not run)