In [1]:
%pylab nbagg
import os
from tvb.simulator.lab import *

Populating the interactive namespace from numpy and matplotlib
INFO  log level set to INFO


# Exploring longer time series¶

The scripting interface has two interactive tools for looking at the TimeSeries generated in simulations. This tutorial shows an example of their use, using a demo dataset for region time-series.

These are mainly of use for longer simulations, of at least a few seconds.

## Example data¶

As a simple set of example data, we will use a linear stochastic model with the default connectivity:

In [2]:
sim = simulator.Simulator(
coupling=coupling.Linear(a=2e-4),
integrator=integrators.EulerStochastic(dt=10.0),
model=models.Linear(gamma=-1e-2),
monitors=monitors.Raw(),
simulation_length=60e3
).configure()

(time, data), = sim.run()

figure()
plot(time/1e3, data[:, 0, :, 0], 'k', alpha=0.1);
xlabel('Time (s)')

WARNING  File 'hemispheres' not found in ZIP.

Out[2]:
<matplotlib.text.Text at 0x1af5db70>

## Create a TimeSeriesRegion Datatype¶

Because we just stored our simulation as a simple array, we need to turn it into one of TVB's TimeSeries datatypes, which is what the two plotting tools operate on, in this case we'll use TimeSeriesRegion.

In [4]:
tsr = time_series.TimeSeriesRegion(
data=data,
connectivity=sim.connectivity,
sample_period=sim.monitors[0].period / 1e3,
sample_period_unit='s')
tsr.configure()
tsr

Out[4]:

## Create And Launch A TimeSeriesInteractive¶

Our typical approach throughout these tutorials has been to to simply plot our time-series using PyLab's plot() function. This is fine as a quick way to look at the small amounts of data we'd been producing, but is insufficient for longer, more meaningful, time-series, such as we get when trying to runs simulations aimed at generating time-series comparable to experimental data.

TimeSeriesInteractive is a tool for looking at these longer time-series. It's still relatively simple, but it adds a number of useful features. The time-series are plotted in the main central panel with a constant vertical offset, the label for each channel or region displayed down the left hand side. Along the bottom are three basic controls: on the left there is a slider that allows the length of the window to be changed (in physical units); in the middle a set of buttons exist to step forward and backward through the time-series at different speeds (at the top of the window there is an indicator showing where you are in the time-series); and on the right the vertical spacing, or offset between time series can be set, this has the effect of scaling the time-series' amplitudes.

In [5]:
#Create and launch the interactive visualiser
import tvb.simulator.plot.timeseries_interactive as ts_int
tsi = ts_int.TimeSeriesInteractive(time_series=tsr)
tsi.configure()
tsi.show()

 Time-series name Time-series type TimeSeriesRegion Dimensions ['Time', 'State Variable', 'Region', 'Mode'] Region Mapping None Sample period 0.01 Length 60.0 Region Mapping Volume None Time units s Source Connectivity Connectivity 76