Data Simulation#
- class sails.simulate.AbstractLagSigGen(extraargs=None)[source]#
Generic class for making lagged signals
- generate_basesignal(nsamples)[source]#
Function defining the starting signal which will be lagged throughout the network
This is an abstracted function and should be overloaded when creating a new class.
- Parameters:
nsamples (int) – The number of samples to generate
- generate_noise(nsamples)[source]#
Function defining the additive noise added at each lag
- Parameters:
nsamples (int) – The number of samples to generate
- Returns:
A vector of white noise
- Return type:
ndarray
- generate_signal(sample_rate=None, num_samples=None, noise_dB=None)[source]#
Method for generating a set of time courses based on either the structure of a meg_reader object or passed parameters and the self.generate_parameters method defined in this class
Returns a timeseries of dimension [samples x signals]
- Parameters:
sample_rate (float) – The sample rate to generate the signal at (Default value = None)
num_samples – The number of samples to generate (Default value = None)
noise_dB (float) – Noise level of the additive noise (Default value = None)
- Returns:
A simulated time-series [nchannels x nsamples x nrealisations]
- Return type:
ndarray
- get_lags()[source]#
Method returning the lagging of the signal through the system. Should
- Returns:
dimension refers to the source node and the second dimension the target node. Each non-zero value indicates that the signal in the first dimension will be added into the signal in the second dimension at the specified weight.
- Return type:
type
- parse_arguments(extraargs)[source]#
Helper function for processing extra-arguments passed to a signal-generator.
Currently only looks for snr_dB for noise levels but can be overloaded by a specific class to processes more arguments.
- Parameters:
extraargs (dict) – keyword arguments passed to signal generator.
- class sails.simulate.AbstractMVARSigGen(extraargs=None)[source]#
Generic class for making MVAR signals
- check_stability()[source]#
Checks the stability of the parameter matrix by the magnitude of the largest eigenvalue of the first lag in the parameter matrix (see [Lutkephol2006] chapter 1)
- Returns:
The stability index of the simulated signal
- Return type:
float
Notes
The stability index of a simulation should be strictly less than 1. If this exceeds 1 then the simulated signal is likely to tend to infinity or zero.
- generate_parameters()[source]#
Method to generate the parameters of the MVAR system. Should return a [nsignals x nsignals x nlags] parameter matrix in which the first dimension refers to the source node and the second dimension the target node
This is an abstract method and should be overloaded when creating a specific class.
- generate_signal(sample_rate=None, num_samples=None, noise_dB=None, num_realisations=1)[source]#
Method for generating a set of time courses based on either the structure of a meg_reader object or passed parameters and the self.generate_parameters method defined in this class
Returns a timeseries of dimension [nchannels x nsamples x nrealisations]
- Parameters:
sample_rate (float) – The sample rate of the simulated data (Default value = None)
num_samples (int) – The number of samples to generate (Default value = None)
noise_dB (float) – The level of additive noise to add to the simulationo (Default value = None)
num_realisations (int) – Number of realisations to generate (Default value = 1)
- Returns:
The simulated dataset of size [nchannels x nsamples x nrealisations]
- Return type:
ndarray
- parse_arguments(extraargs)[source]#
Helper function for processing extra-arguments passed to a signal-generator.
Currently only looks for snr_dB for noise levels but can be overloaded by a specific class to processes more arguments.
- Parameters:
extraargs (dict) – keyword arguments passed to signal generator.
- class sails.simulate.AbstractSigGen(extraargs=None)[source]#
Abstract base class for signal generation
- generate_signal(meg_reader)[source]#
Generate a custom signal for embedding in a dataset
- Parameters:
meg_reader – MEG data for which to generate signal
- Returns:
numpy array of shape (samples). Note that samples must be equal to the value of meg_reader.num_samples
- Return type:
type
- get_num_sources()[source]#
Helper function for returning number of sources in simulation.
This is typically overloaded when defining a signal generator class.
- Returns:
type – Number of sources in simulated signal. If not override, returns 1
- Return type:
int
- parse_arguments(extraargs)[source]#
Helper function for processing extra-arguments passed to a signal-generator.
Currently only looks for snr_dB for noise levels but can be overloaded by a specific class to processes more arguments.
- Parameters:
extraargs (dict) – keyword arguments passed to signal generator.
- class sails.simulate.Baccala2001_fig1(extraargs=None)[source]#
This class implements [Baccala2001] figure 1.
- generate_parameters()[source]#
Create the autoregressive parameters for [Baccala2001] figure 1.
- class sails.simulate.Baccala2001_fig2(extraargs=None)[source]#
This class implements [Baccala2001] figure 2.
- generate_parameters()[source]#
Create the autoregressive parameters for [Baccala2001] figure 2.
- class sails.simulate.Baccala2001_fig3(extraargs=None)[source]#
This class implements [Baccala2001] figure 3.
- generate_parameters()[source]#
Create the autoregressive parameters for [Baccala2001] figure 3.
- class sails.simulate.Baccala2001_fig4(extraargs=None)[source]#
This class implements [Baccala2001] figure 4.
- generate_parameters()[source]#
Create the autoregressive parameters for [Baccala2001] figure 4.
- class sails.simulate.Baccala2001_fig5(extraargs=None)[source]#
This class implements [Baccala2001] figure 5.
- generate_parameters()[source]#
Create the autoregressive parameters for [Baccala2001] figure 5.
- class sails.simulate.Fasoula2013_eqn26(extraargs=None)[source]#
This class implements [Fasoula2013] equation 26.
- generate_parameters()[source]#
Create the autoregressive parameters for [Fasoula2013] eqn 26.
- class sails.simulate.Korzeniewska2003Lag(extraargs=None)[source]#
Generate realisations of the time-lagged network defined in [Korzeniewska2003] figure 1.
- generate_basesignal(nsamples)[source]#
Generate oscillatory signal to be propagated through the network. This creates a single resonance at one-half of the Nyquist frequency via direct pole placement.
Note: the original base-signal in the paper is a realisation from an AR model. I couldn’t find the parameters for this mode, so use pole placement here. The spectral profile will be different to the paper, but the connectivity patterns are the same.
- Parameters:
nsamples (int) – The number of samples to generate
- Returns:
Vector containing generated base signal.
- Return type:
ndarray
- get_lags()[source]#
Return the lagged influences between time-series in the simulated defined in [Korzeniewska2003] figure 1.
- class sails.simulate.PascualMarqui2014_fig3(extraargs=None)[source]#
This class implements [Pascual-Marqui2014] figure 3.
- generate_parameters()[source]#
Create the autoregressive parameters for [Pascual-Marqui2014] fig 3.
- class sails.simulate.Schelter2006_fig1(extraargs=None)[source]#
This class implements [Schelter2006] figure 1.
- generate_parameters()[source]#
Create the autoregressive parameters for [Schelter2006] fig 1.