  Multiple biological processes are driven by oscillatory gene expression at
different time scales. Pulsatile dynamics are thought to be widespread, and
single-cell live imaging of gene expression has lead to a surge of dynamic,
possibly oscillatory, data for different gene networks. However, the regulation
of gene expression at the level of an individual cell involves reactions
between finite numbers of molecules, and this can result in inherent randomness
in expression dynamics, which blurs the boundaries between aperiodic
fluctuations and noisy oscillators. Thus, there is an acute need for an
objective statistical method for classifying whether an experimentally derived
noisy time series is periodic. Here we present a new data analysis method that
combines mechanistic stochastic modelling with the powerful methods of
non-parametric regression with Gaussian processes. Our method can distinguish
oscillatory gene expression from random fluctuations of non-oscillatory
expression in single-cell time series, despite peak-to-peak variability in
period and amplitude of single-cell oscillations. We show that our method
outperforms the Lomb-Scargle periodogram in successfully classifying cells as
oscillatory or non-oscillatory in data simulated from a simple genetic
oscillator model and in experimental data. Analysis of bioluminescent live cell
imaging shows a significantly greater number of oscillatory cells when
luciferase is driven by a {\it Hes1} promoter (10/19), which has previously
been reported to oscillate, than the constitutive MoMuLV 5' LTR (MMLV) promoter
(0/25). The method can be applied to data from any gene network to both
quantify the proportion of oscillating cells within a population and to measure
the period and quality of oscillations. It is publicly available as a MATLAB
package.
