fsleyes.plotting.powerspectrumseries

This module provides DataSeries sub-classes which are used by the PowerSpectrumPanel for plotting power spectra.

The following classes are provided:

PowerSpectrumSeries

The PowerSpectrumSeries encapsulates a power spectrum data series from an overlay.

VoxelPowerSpectrumSeries

The VoxelPowerSpectrumSeries class encapsulates the power spectrum of a single voxel from a 4D Image overlay.

ComplexPowerSpectrumSeries

This class is the frequency-spectrum equivalent of the ComplexTimeSeries class - see it for more details.

ImaginaryPowerSpectrumSeries

An ImaginaryPowerSpectrumSeries represents the power spectrum of the imaginary component of a complex-valued image.

MagnitudePowerSpectrumSeries

An MagnitudePowerSpectrumSeries represents the magnitude of a complex-valued image.

PhasePowerSpectrumSeries

An PhasePowerSpectrumSeries represents the phase of a complex-valued image.

MelodicPowerSpectrumSeries

The MelodicPowerSpectrumSeries class encapsulates the power spectrum of the time course for a single component of a MelodicImage.

fsleyes.plotting.powerspectrumseries.calcPowerSpectrum(data, varNorm=False)[source]

Calculates a power spectrum for the given one-dimensional data array. If varNorm is True, the data is de-meaned and normalised by its standard deviation before the fourier transformation.

Parameters
  • data – Numpy array containing the time series data

  • varNorm – Normalise the data before fourier transformation

Returns

If data contains real values, the magnitude of the power spectrum is returned. If data contains complex values, the complex power spectrum is returned.

fsleyes.plotting.powerspectrumseries.calcFrequencies(data, sampleTime)[source]

Calculates the frequencies of the power spectrum for the given data.

Parameters
  • data – The input time series data

  • sampleTime – Time between each data point

Returns

A numpy array containing the frequencies of the power spectrum for data

fsleyes.plotting.powerspectrumseries.magnitude(data)[source]

Returns the magnitude of the given complex data.

fsleyes.plotting.powerspectrumseries.phase(data)[source]

Returns the phase of the given complex data.

fsleyes.plotting.powerspectrumseries.phaseCorrection(spectrum, freqs, p0, p1)[source]

Applies phase correction to the given complex power spectrum.

Parameters
  • spectrum – Complex-valued power spectrum

  • freqs – Spectrum frequency bins

  • p0 – Zero order phase correction term

  • p1 – First order phase correction term

Returns

The corrected power spectrum.

class fsleyes.plotting.powerspectrumseries.PowerSpectrumSeries[source]

Bases: object

The PowerSpectrumSeries encapsulates a power spectrum data series from an overlay. The PowerSpectrumSeries class is a base mixin class for all other classes in this module.

varNorm = <MagicMock name='mock.Boolean()' id='140225918039088'>

If True, the data is normalised to unit variance before the fourier transformation.

property sampleTime

Returns the time between time series samples for the overlay data.

__dict__ = mappingproxy({'__module__': 'fsleyes.plotting.powerspectrumseries', '__doc__': 'The ``PowerSpectrumSeries`` encapsulates a power spectrum data series\n from an overlay. The ``PowerSpectrumSeries`` class is a base mixin class\n for all other classes in this module.\n ', 'varNorm': <MagicMock name='mock.Boolean()' id='140225918039088'>, 'sampleTime': <property object>, '__dict__': <attribute '__dict__' of 'PowerSpectrumSeries' objects>, '__weakref__': <attribute '__weakref__' of 'PowerSpectrumSeries' objects>})
__module__ = 'fsleyes.plotting.powerspectrumseries'
__weakref__

list of weak references to the object (if defined)

class fsleyes.plotting.powerspectrumseries.VoxelPowerSpectrumSeries(*args, **kwargs)[source]

Bases: fsleyes.plotting.dataseries.VoxelDataSeries, fsleyes.plotting.powerspectrumseries.PowerSpectrumSeries

The VoxelPowerSpectrumSeries class encapsulates the power spectrum of a single voxel from a 4D Image overlay. The voxel is dictated by the DisplayContext.location property.

__init__(*args, **kwargs)[source]

Create a VoxelPowerSpectrumSeries. All arguments are passed to the VoxelDataSeries.__init__() method. A ValueError is raised if the overlay is not a 4D Image.

getData()[source]

Returns the data at the current voxel.

__module__ = 'fsleyes.plotting.powerspectrumseries'
class fsleyes.plotting.powerspectrumseries.ComplexPowerSpectrumSeries(overlay, overlayList, displayCtx, plotPanel)[source]

Bases: fsleyes.plotting.powerspectrumseries.VoxelPowerSpectrumSeries

This class is the frequency-spectrum equivalent of the ComplexTimeSeries class - see it for more details.

plotReal = <MagicMock name='mock.Boolean()' id='140225918039088'>
plotImaginary = <MagicMock name='mock.Boolean()' id='140225918039088'>
plotMagnitude = <MagicMock name='mock.Boolean()' id='140225918039088'>
plotPhase = <MagicMock name='mock.Boolean()' id='140225918039088'>
zeroOrderPhaseCorrection = <MagicMock name='mock.Real()' id='140225920601728'>

Apply zero order phase correction to the power spectrum of the complex data.

firstOrderPhaseCorrection = <MagicMock name='mock.Real()' id='140225920601728'>

Apply first order phase correction to the power spectrum of the complex data.

__init__(overlay, overlayList, displayCtx, plotPanel)[source]

Create a ComplexPowerSpectrumSeries. All arguments are passed through to the VoxelPowerSpectrumSeries constructor.

makeLabel()[source]

Returns a string representation of this ComplexPowerSpectrumSeries instance.

property cachedData

Returns the currently cached data (see getData()).

getData()[source]

If plotReal is true, returns the real component of the power spectrum of the data at the current voxel. Otherwise returns (None, None).

Every time this method is called, the power spectrum is calculated, phase correction is applied, and a reference to the resulting complex power spectrum (and frequencies) is saved; it is accessible via the cachedData() property, for use by the ImaginaryPowerSpectrumSeries, MagnitudePowerSpectrumSeries, and PhasePowerSpectrumSeries.

extraSeries()[source]

Returns a list of additional series to be plotted, based on the values of the plotImaginary, plotMagnitude and plotPhase properties.

__module__ = 'fsleyes.plotting.powerspectrumseries'
class fsleyes.plotting.powerspectrumseries.ImaginaryPowerSpectrumSeries(parent, *args, **kwargs)[source]

Bases: fsleyes.plotting.dataseries.DataSeries

An ImaginaryPowerSpectrumSeries represents the power spectrum of the imaginary component of a complex-valued image. ImaginaryPowerSpectrumSeries instances are created by ComplexPowerSpectrumSeries instances.

__init__(parent, *args, **kwargs)[source]

Create an ImaginaryPowerSpectrumSeries.

Parameters

parent – The ComplexPowerSpectrumSeries which owns this ImaginaryPowerSpectrumSeries.

All other arguments are passed through to the DataSeries constructor.

makeLabel()[source]

Returns a string representation of this ImaginaryPowerSpectrumSeries instance.

getData()[source]

Returns the imaginary component of the power spectrum.

__module__ = 'fsleyes.plotting.powerspectrumseries'
class fsleyes.plotting.powerspectrumseries.MagnitudePowerSpectrumSeries(parent, *args, **kwargs)[source]

Bases: fsleyes.plotting.dataseries.DataSeries

An MagnitudePowerSpectrumSeries represents the magnitude of a complex-valued image. MagnitudePowerSpectrumSeries instances are created by ComplexPowerSpectrumSeries instances.

__init__(parent, *args, **kwargs)[source]

Create an ImaginaryPowerSpectrumSeries.

Parameters

parent – The ComplexPowerSpectrumSeries which owns this ImaginaryPowerSpectrumSeries.

All other arguments are passed through to the DataSeries constructor.

makeLabel()[source]

Returns a string representation of this MagnitudePowerSpectrumSeries instance.

getData()[source]

Returns the magnitude of the complex power spectrum.

__module__ = 'fsleyes.plotting.powerspectrumseries'
class fsleyes.plotting.powerspectrumseries.PhasePowerSpectrumSeries(parent, *args, **kwargs)[source]

Bases: fsleyes.plotting.dataseries.DataSeries

An PhasePowerSpectrumSeries represents the phase of a complex-valued image. PhasePowerSpectrumSeries instances are created by ComplexPowerSpectrumSeries instances.

__init__(parent, *args, **kwargs)[source]

Create an ImaginaryPowerSpectrumSeries.

Parameters

parent – The ComplexPowerSpectrumSeries which owns this ImaginaryPowerSpectrumSeries.

All other arguments are passed through to the DataSeries constructor.

makeLabel()[source]

Returns a string representation of this PhasePowerSpectrumSeries instance.

getData()[source]

Returns the phase of the complex power spectrum.

__module__ = 'fsleyes.plotting.powerspectrumseries'
class fsleyes.plotting.powerspectrumseries.MelodicPowerSpectrumSeries(*args, **kwargs)[source]

Bases: fsleyes.plotting.dataseries.DataSeries, fsleyes.plotting.powerspectrumseries.PowerSpectrumSeries

The MelodicPowerSpectrumSeries class encapsulates the power spectrum of the time course for a single component of a MelodicImage. The component is dictated by the NiftiOpts.volume property.

__init__(*args, **kwargs)[source]

Create a MelodicPowerSpectrumSeries. All arguments are passed through to the PowerSpectrumSeries.__init__() method.

makeLabel()[source]

Returns a label that can be used for this MelodicPowerSpectrumSeries.

getData()[source]

Returns the power spectrum for the current component of the MelodicImage, as defined by the NiftiOpts.volume property.

__module__ = 'fsleyes.plotting.powerspectrumseries'
class fsleyes.plotting.powerspectrumseries.MeshPowerSpectrumSeries(*args, **kwargs)[source]

Bases: fsleyes.plotting.dataseries.DataSeries, fsleyes.plotting.powerspectrumseries.PowerSpectrumSeries

A MeshPowerSpectrumSeries object encapsulates the power spectrum for the data from a Mesh overlay which has some time series vertex data associated with it. See the MeshOpts.vertexData property.

__init__(*args, **kwargs)[source]

Create a MeshPowerSpectrumSeries instance. All arguments are passed through to DataSeries.__init__().

_MeshPowerSpectrumSeries__haveData()

Returns True if there is currently time series data to show for this MeshPowerSpectrumSeries, False otherwise.

__module__ = 'fsleyes.plotting.powerspectrumseries'
makeLabel()[source]

Returns a label to use for this MeshPowerSpectrumSeries on the legend.

getData()[source]

Returns the power spectrum of the data at the current location for the Mesh, or None, None if there is no data.