To install UnitEvents, you need to download the archive package and to install the package as a usual package. For example, using the command line, for version 0.0.1
install.packages('UnitEvents_0.0.1.tar.gz', repos=NULL, type="source")
The \(\textrm{neuro-stat}\) code is downloaded and compiled during the installation process. \(\textit{Subversion}\), \(\textit{git}\), \(\textit{CMake}\) and a C++ compiler are required. The compilation of \(\textrm{neuro-stat}\) on Mac OS should complete despite several warnings.
To initialize the package, do as usual for an R package
library('UnitEvents')
The time windows of reference examples in papers (Albert et al. 2016) and (Tuleau-Malot et al. 2014) are defined by the \(\textit{compute_windows}\) function for Neurons 13 and 40 as follows
\(\textit{compute_time_windows}\) function is the main function to create time windows.
TW1 = compute_time_windows(0, 2.05, 0.1, 0.05)
print(TW1$len)
## [1] 40
print(TW1$A[,c(1:5,36:40)])
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 0.0 0.05 0.1 0.15 0.2 1.75 1.8 1.85 1.9 1.95
## [2,] 0.1 0.15 0.2 0.25 0.3 1.85 1.9 1.95 2.0 2.05
\(\textit{draw_windows}\) function allows to represent time windows.
draw_windows(TW1, yrange=c(-0.5,0), density=c(0), col='black')
Time windows for interval \([0,2]\) from compute_time_windows function
Some results are presented here for MTGAUE (Multiple Tests based on a Gaussian Approximation of the Unitary Events method with delayed coincidence count) (see (Tuleau-Malot et al. 2014)).
TW = compute_time_windows(0, 2.05, duration=0.1, spacing=0.05)
removefirstandlast7col <- function(v) { return(v[-c(1,(length(v)-6):length(v))])}
scaling <- 1/10000
fNeur1_13 <- system.file("extdata", "Neur1_c13.txt", package="UnitEvents")
fNeur2_13 <- system.file("extdata", "Neur2_c13.txt", package="UnitEvents")
DN13 = DNeur(list(fNeur1_13, fNeur2_13),
listOptions=list('removeCols'=removefirstandlast7col, 'scaling'=c(scaling)))
## [1] ""
## [1] "The neuron file is /home/gscarella/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/extdata/Neur1_c13.txt"
## [1] ""
## [1] "The neuron file is /home/gscarella/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/extdata/Neur2_c13.txt"
xns = UnitEvents(delay=0.02, TW=TW, DataNeur=DN13, DName="Neur_c13")
## Figure title is
## Raster plot for Neur_c13
## type = MTGAUE, delay=0.02, level=0.05, nw=40, Rtest=all
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 40 time windows"
## [1] "Both upper and lower tests"
MTGAUE test for neuro-stat code. Neuron 13 - 40 time windows, \(\delta=0.02\)
save(xns, file='MTGAUE-nw=40-ns.RData')
TW = compute_time_windows(a=0.001, b=1.973, duration=0.1, spacing=0.001)
xns_nw2000 = UnitEvents(delay=0.02, TW=TW, DataNeur=DN13, DName="Neur_c13")
## Figure title is
## Raster plot for Neur_c13
## type = MTGAUE, delay=0.02, level=0.05, nw=1873, Rtest=all
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 1873 time windows"
## [1] "Both upper and lower tests"
MTGAUE test for neuro-stat code. Neuron 13 - \(\simeq 2000\) time windows, \(\delta=0.02\)
save(xns_nw2000, file='MTGAUE-nw=2000-ns.RData')
TW = compute_time_windows(0, 2.05, 0.1, 0.05)
fNeur1_40 <- system.file("extdata", "Neur1_c40.txt", package="UnitEvents")
fNeur2_40 <- system.file("extdata", "Neur2_c40.txt", package="UnitEvents")
DN40 = DNeur(list(fNeur1_40, fNeur2_40),
listOptions=list('removeCols'=removefirstandlast7col,'scaling'=c(scaling)))
## [1] ""
## [1] "The neuron file is /home/gscarella/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/extdata/Neur1_c40.txt"
## [1] ""
## [1] "The neuron file is /home/gscarella/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/extdata/Neur2_c40.txt"
xns_nw40_up = UnitEvents(delay=0.02, TW=TW, Rtest="upper", DataNeur=DN40, DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = MTGAUE, delay=0.02, level=0.05, nw=40, Rtest=upper
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 40 time windows"
## [1] "upper test with neuro-stat code"
MTGAUE test for neuro-stat code. Neuron 40 - 40 time windows, upper test, \(\delta=0.02\)
save(xns_nw40_up, file='MTGAUE-nw=40-ns-up_40.RData')
TW = compute_time_windows(0, 2.05, 0.1, 0.05)
xns_nw40_lo = UnitEvents(delay=0.02, TW=TW, Rtest="lower", DataNeur=DN40, DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = MTGAUE, delay=0.02, level=0.05, nw=40, Rtest=lower
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 40 time windows"
## [1] "lower test with neuro-stat code"
MTGAUE test for neuro-stat code. Neuron 40 - 40 time windows, lower test, \(\delta=0.02\)
save(xns_nw40_lo, file='MTGAUE-nw=40-ns-lo_40.RData')
TW = compute_time_windows(0, 2.05, 0.1, 0.05)
xns_nw40_40 = UnitEvents(delay=0.02, TW=TW, DataNeur=DN40, DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = MTGAUE, delay=0.02, level=0.05, nw=40, Rtest=all
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 40 time windows"
## [1] "Both upper and lower tests"
MTGAUE test for neuro-stat code. Neuron 40 - 40 time windows, \(\delta=0.02\)
save(xns_nw40_40, file='MTGAUE-nw=40-ns_40.RData')
TW = compute_time_windows(a=0.001, b=1.997, duration=0.1, spacing=0.001)
xns_nw2000_40_up = UnitEvents(delay=0.02, TW=TW, Rtest="upper", DataNeur=DN40, DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = MTGAUE, delay=0.02, level=0.05, nw=1897, Rtest=upper
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 1897 time windows"
## [1] "upper test with neuro-stat code"
MTGAUE test for neuro-stat code. Neuron 40 - \(\simeq 2000\) time windows, upper test, \(\delta=0.02\)
save(xns_nw2000_40_up, file='MTGAUE-nw=2000-ns-up_40.RData')
TW = compute_time_windows(a=0.001, b=1.997, duration=0.1, spacing=0.001)
xns_nw2000_40_lo = UnitEvents(delay=0.02, TW=TW, Rtest="lower", DataNeur=DN40, DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = MTGAUE, delay=0.02, level=0.05, nw=1897, Rtest=lower
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
MTGAUE test for neuro-stat code. Neuron 40 - \(\simeq 2000\) time windows, lower test, \(\delta=0.02\)
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 1897 time windows"
## [1] "lower test with neuro-stat code"
## [1] "k==0"
save(xns_nw2000_40_lo, file='MTGAUE-nw=2000-ns-lo_40.RData')
TW = compute_time_windows(a=0.001, b=1.997, duration=0.1, spacing=0.001)
xns_nw2000_40 = UnitEvents(delay=0.02, TW=TW, DataNeur=DN40, DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = MTGAUE, delay=0.02, level=0.05, nw=1897, Rtest=all
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 1897 time windows"
## [1] "Both upper and lower tests"
MTGAUE test for neuro-stat code. Neuron 40 - \(\simeq 2000\) time windows, \(\delta=0.02\)
save(xns_nw2000_40, file='MTGAUE-nw=2000-ns_40.RData')
ti = proc.time()
TW = compute_time_windows(0, 2.05, 0.1, 0.05)
xns_perm_nw40 = UnitEvents(delay=0.02, iperm=TRUE, TW=TW, DataNeur=DN13, DName="Neur_c13")
## Figure title is
## Raster plot for Neur_c13
## type = Perm, delay=0.02, level=0.05, nw=40, Rtest=all
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 40 time windows"
## [1] "Both upper and lower tests"
## WINK: Permutation[1 thread ]
## WINK: Neuron 1 | #trials= 177 | max_tops= 91
## WINK: Neuron 2 | #trials= 177 | max_tops= 91
## WINK: #intervals = 40
## WINK: #bootstraps = 10000
## WINK: <SERIAL CODE>
Permutation for neuro-stat code. Neuron 13 - 40 time windows, \(\delta=0.02\)
tf = (proc.time()-ti)[3]; print(paste('Computation time', as.character(tf)))
## [1] "Computation time 2.53300000000002"
save(xns_perm_nw40, file='Perm-nw=40-ns.RData')
ti = proc.time()
TW = compute_time_windows(a=0.001, b=1.973, duration=0.1, spacing=0.001)
xns_perm = UnitEvents(delay=0.02, TW=TW, iperm=TRUE, DataNeur=DN13, DName="Neur_c13")
## Figure title is
## Raster plot for Neur_c13
## type = Perm, delay=0.02, level=0.05, nw=1873, Rtest=all
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 1873 time windows"
## [1] "Both upper and lower tests"
## WINK: Permutation[1 thread ]
## WINK: Neuron 1 | #trials= 177 | max_tops= 91
## WINK: Neuron 2 | #trials= 177 | max_tops= 91
## WINK: #intervals = 1873
## WINK: #bootstraps = 10000
## WINK: <SERIAL CODE>
Permutation for neuro-stat code. Neuron 13 - \(\simeq 2000\) time windows, \(\delta=0.02\)
tf = (proc.time()-ti)[3]; print(paste('Computation time', as.character(tf)))
## [1] "Computation time 133.4"
save(xns_perm, file='Perm-nw=2000-ns.RData')
ti = proc.time()
TW = compute_time_windows(a=0, b=2.05, duration=0.1, spacing=0.05)
xns_perm_nw40_40_up = UnitEvents(delay=0.02, TW=TW, iperm=TRUE,
DataNeur=DN40, Rtest="upper", DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = Perm, delay=0.02, level=0.05, nw=40, Rtest=upper
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 40 time windows"
## [1] "upper test with neuro-stat code"
## WINK: Permutation[1 thread ]
## WINK: Neuron 1 | #trials= 141 | max_tops= 112
## WINK: Neuron 2 | #trials= 141 | max_tops= 112
## WINK: #intervals = 40
## WINK: #bootstraps = 10000
## WINK: <SERIAL CODE>
Permutation for neuro-stat code. Neuron 40 - 40 time windows, upper test, \(\delta=0.02\)
tf = (proc.time()-ti)[3]; print(paste('Computation time', as.character(tf)))
## [1] "Computation time 2.25299999999993"
save(xns_perm_nw40_40_up, file='Perm-nw=40-ns_40_up.RData')
ti = proc.time()
TW = compute_time_windows(a=0, b=2.05, duration=0.1, spacing=0.05)
xns_perm_nw40_40_lo = UnitEvents(delay=0.02, TW=TW, DataNeur=DN40,
iperm=TRUE, Rtest="lower", DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = Perm, delay=0.02, level=0.05, nw=40, Rtest=lower
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 40 time windows"
## [1] "lower test with neuro-stat code"
## WINK: Permutation[1 thread ]
## WINK: Neuron 1 | #trials= 141 | max_tops= 112
## WINK: Neuron 2 | #trials= 141 | max_tops= 112
## WINK: #intervals = 40
## WINK: #bootstraps = 10000
## WINK: <SERIAL CODE>
Permutation for neuro-stat code. Neuron 40 - 40 time windows, lower test, \(\delta=0.02\)
tf = (proc.time()-ti)[3]; print(paste('Computation time', as.character(tf)))
## [1] "Computation time 2.15599999999995"
save(xns_perm_nw40_40_lo, file='Perm-nw=40-ns-lo_40.RData')
ti = proc.time()
TW = compute_time_windows(a=0, b=2.05, duration=0.1, spacing=0.05)
xns_perm_nw40_40 = UnitEvents(delay=0.02, TW=TW, DataNeur=DN40, iperm=TRUE, DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = Perm, delay=0.02, level=0.05, nw=40, Rtest=all
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 40 time windows"
## [1] "Both upper and lower tests"
## WINK: Permutation[1 thread ]
## WINK: Neuron 1 | #trials= 141 | max_tops= 112
## WINK: Neuron 2 | #trials= 141 | max_tops= 112
## WINK: #intervals = 40
## WINK: #bootstraps = 10000
## WINK: <SERIAL CODE>
Permutation for neuro-stat code. Neuron 40 - 40 time windows, \(\delta=0.02\)
tf = (proc.time()-ti)[3]; print(paste('Computation time', as.character(tf)))
## [1] "Computation time 2.12400000000002"
save(xns_perm_nw40_40, file='Perm-nw=40-ns_40.RData')
ti = proc.time()
TW = compute_time_windows(a=0.001, b=1.997, duration=0.1, spacing=0.001)
xns_perm_nw2000_40_up = UnitEvents(delay=0.02, TW=TW, iperm=TRUE,
DataNeur=DN40, Rtest="upper", DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = Perm, delay=0.02, level=0.05, nw=1897, Rtest=upper
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
Permutation for neuro-stat code. Neuron 40 - \(\simeq 2000\) time windows, upper test, \(\delta=0.02\)
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 1897 time windows"
## [1] "upper test with neuro-stat code"
## WINK: Permutation[1 thread ]
## WINK: Neuron 1 | #trials= 141 | max_tops= 112
## WINK: Neuron 2 | #trials= 141 | max_tops= 112
## WINK: #intervals = 1897
## WINK: #bootstraps = 10000
## WINK: <SERIAL CODE>
## [1] "k==0"
tf = (proc.time()-ti)[3]; print(paste('Computation time', as.character(tf)))
## [1] "Computation time 100.652"
save(xns_perm_nw2000_40_up, file='Perm-nw=2000-ns_40_up.RData')
ti = proc.time()
TW = compute_time_windows(a=0.001, b=1.997, duration=0.1, spacing=0.001)
xns_perm_nw2000_40_lo = UnitEvents(delay=0.02, TW=TW, iperm=TRUE,
DataNeur=DN40, Rtest="lower", DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = Perm, delay=0.02, level=0.05, nw=1897, Rtest=lower
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 1897 time windows"
## [1] "lower test with neuro-stat code"
## WINK: Permutation[1 thread ]
## WINK: Neuron 1 | #trials= 141 | max_tops= 112
## WINK: Neuron 2 | #trials= 141 | max_tops= 112
## WINK: #intervals = 1897
## WINK: #bootstraps = 10000
## WINK: <SERIAL CODE>
Permutation for neuro-stat code. Neuron 40 - \(\simeq 2000\) time windows, \(\delta=0.02\), lower test
tf = (proc.time()-ti)[3]; print(paste('Computation time', as.character(tf)))
## [1] "Computation time 95.769"
save(xns_perm_nw2000_40_lo, file='Perm-nw=2000-ns_40_lo.RData')
ti = proc.time()
TW = compute_time_windows(a=0.001, b=1.997, duration=0.1, spacing=0.001)
xns_perm_nw2000_40 = UnitEvents(delay=0.02, TW=TW, iperm=TRUE, DataNeur=DN40, DName="Neur_c40")
## Figure title is
## Raster plot for Neur_c40
## type = Perm, delay=0.02, level=0.05, nw=1897, Rtest=all
## [1] ""
## [1] "The value of delay for coincidences (denoted by delta in MTGAUE paper) is 0.02"
## [1] "The level value in Benjamini-Hochberg procedure is 0.05"
## [1] ""
## [1] "Plotting figures ..."
Permutation for neuro-stat code. Neuron 40 - \(\simeq 2000\) time windows, \(\delta=0.02\)
## [1] ""
## [1] "WINK: Loading ~/R/x86_64-redhat-linux-gnu-library/3.4/UnitEvents/neuro-stat/v3/src/wink_mam4//wink.so"
## [1] ""
## [1] "There are 1897 time windows"
## [1] "Both upper and lower tests"
## WINK: Permutation[1 thread ]
## WINK: Neuron 1 | #trials= 141 | max_tops= 112
## WINK: Neuron 2 | #trials= 141 | max_tops= 112
## WINK: #intervals = 1897
## WINK: #bootstraps = 10000
## WINK: <SERIAL CODE>
## [1] "k==0"
tf = (proc.time()-ti)[3]; print(paste('Computation time', as.character(tf)))
## [1] "Computation time 92.825"
save(xns_perm_nw2000_40, file='Perm-nw=2000-ns_40.RData')
Albert, Mélisande, Yann Bouret, Magalie Fromont, and Patricia Reynaud-Bouret. 2016. “Surrogate Data Methods Based on a Shuffling of the Trials for Synchrony Detection: The Centering Issue.” Neural Computation 28 (11): 2352–2392. doi:10.1162/neco_a_00839. https://hal.archives-ouvertes.fr/hal-01154918.
Tuleau-Malot, Christine, Amel Rouis, Franck Grammont, and Patricia Reynaud-Bouret. 2014. “Multiple Tests Based on a Gaussian Approximation of the Unitary Events Method with Delayed Coincidence Count.” Neural Computation 26 (7) (July): 1408–1454. doi:10.1162/NECO_a_00604. https://hal.archives-ouvertes.fr/hal-00757323.