Spiky (A peak analyzer plugin for ImageJ)

Authors: Côme PASQUALIN - François GANNIER (gannier at univ-tours dot fr) University of Tours (France)
See also: Others productions for ImageJ from the authors
PCCV group main page
History: 2017/12/05: first version
2022/01/01: first release version
2022/04/07: create_calibration_bar : no longer works with recent version of ImageJ
2022/04/22: isochronal map: failed if file has space in name 2022/04/22: isochronal map: set color to time instead frame
Sources: Link to GitHub
Requires: Main Spiky functions work with ImageJ 1.51, but some functions will be best working with ImageJ 1.52, and histogram needs 1.52.
Limitations: Works on Mac OS, Linux and Windows
Description: This peak analyzer is a macro tools that offers an intuitive and interactive way to compute some classical parameters needed in advanced peak analysis.
You can use it to find baselines, thresholds, detect peaks, define times to peak at 50% and two custom percent values, calculate Vmax, decay constants, peak areas.
Publication: "Spiky: an ImageJ plugin for data analysis of functional cardiac and cardiomyocyte studies." Côme Pasqualin, François Gannier, Angele Yu, David Benoist, Ian Findlay, Romain Bordy, Pierre Bredeloux, Véronique Maupoil
Journal of Imaging 2022,
Installation: Download and unpack Spiky.zip and copy it into the "ImageJ\macros\toolsets" folder.
Optional: Some modules are optional, if they are not installed, they will not be used :
HRtime, keyDown and the Time_Noise_Reduce class from Matt Smith. (Note: latest module needs JAMA, the java matrix library to work).
Once installed, use "Test dependencies" in "Spiky menu[menu]" to active them.
Start: Start ImageJ or restart it if already opened.
In the "More tools" menu (>>)[menu] of the toolbar, select "Spiky". A new set of buttons should appear on the right side of the toolbar, as shown in the figure below. Spiky is now ready to use.
How to use: Spiky works on different data types: image stack, plot window or results table.
Six buttons are available in the menu bar:
1- create a plot from an image stack (pixel or selection gray level vs. time), or a result table (with a selection of columns X and Y(s));
2- go to the next peak in a stack of images;
3- start peak analysis;
4- crop a ROI in a plot window;
5- offers a direct access to the native ImageJ fitting tool;
6- change analysis options & settings.

fig. 1 : Contextual menu and Toolbar providing icons and menu for the different modes of analysis.


1 - Load Spiky and open the data to analyze (File>Open in imageJ menu).

(optional) A drift removal can be applied to the signal by a 4th order polynomial fit & subtraction (button 6 > Drift removal)

2 - Adjust the settings for peak detection, display and output (button 6 > Analysis options)

3 - Click "Peak analysis" (button 3).

4 (optional) - If some peaks are lacking or noise have been detected, change the peak detection setting and repeat this procedure .

fig. 2 : Result of an analysis on a plot showing detected peaks (red) and baseline (blue).


fig. 3 : Analysis output table of computed parameters
(Amplitude, Time to Peak, Peak to Peak, Vmax, Area Under Peak ...)


Please see the "map" section below.

Computed parameters: Index : peak number
Pos : position index of the peak in the data plot
Tmax : time at which the peak has been detected (value adjusted from a gaussian fit of the 2 points around the maximum)
APeak : absolute value of the amplitude of the peak
Baseline Bl : mean of the two consecutive minimum values around the peak
Amplitude : relative value of the amplitude of the peak from the baseline (APeak - Baseline)
Pk2Pk : time between two successive peaks
Time2Pk : time between peak threshold and peak maximum
FWHM, FWxx : full width at half maximum (time at 50% of amplitude from baseline to peak), 2 other percentage values can be also defined in "Parameters"
LWxx, RWxx : time at 50% of amplitude from peak to next baseline at right or left, 2 other percentage values can be also defined in "Parameters"
SlopeMax2Pk : absolute maximum slope from peak start to peak maximum
SlopeMax2Bl : absolute maximum slope from peak maximum to next baseline
PkArea[menu] : integrate of the peak (area under the peak from baseline)
AreaBl2Pk[menu] : integrate from start to peak maximum
AreaPk2Bl[menu] : integrate from peak maximum to peak end (back to baseline)
tau decay[menu] : time constant (monoexponential fit) from X% of peak maximum to baseline (X is defined in parameter menu)
Maps: Spiky allows the computation of spatiotemporal variation of peaks across an image stack to create maps. Thus the propagation of a "peak signal" (action potential, calcium transient...) across a preparation can be revealed as an isochronal map (pseudocolors indicate the activation delay of each area) or a vector map (vector norm represents propagation speed). Spiky also outputs the properties of peaks in each area of the image stack and codes it with pseudocolor output, this is called parameter map. Different maps are shown in the examples below.

isochronal map [map]
vector map
vector histogram
[map] [map]
parameter map [Amplitude map]
Other uses Echocardiography [map] [map]
Testing: To test Spiky, a sample of sarcomere length (in µm) versus time (in second) is provided:
- SLvsTime : This file results from an analysis using the SarcOptiM plugin of a video of a stimulated rat ventricular cardiomyocyte provided on this plugin page.

|Plugins | Home |