modalities.fmri.fmri

Module: modalities.fmri.fmri

Inheritance diagram for nipy.modalities.fmri.fmri:

digraph inheritanced431345556 { rankdir=LR; size="8.0, 12.0"; "fmri.fmri.FmriImageList" [URL="#nipy.modalities.fmri.fmri.FmriImageList",fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5)",target="_top",tooltip="Class to implement image list interface for FMRI time series"]; "image.image_list.ImageList" -> "fmri.fmri.FmriImageList" [arrowsize=0.5,style="setlinewidth(0.5)"]; "image.image_list.ImageList" [URL="nipy.core.image.image_list.html#nipy.core.image.image_list.ImageList",fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5)",target="_top",tooltip="Class to contain ND image as list of (N-1)D images"]; }

FmriImageList

class nipy.modalities.fmri.fmri.FmriImageList(images=None, volume_start_times=None, slice_times=None)[source]

Bases: nipy.core.image.image_list.ImageList

Class to implement image list interface for FMRI time series

Allows metadata such as volume and slice times

__init__(images=None, volume_start_times=None, slice_times=None)[source]

An implementation of an fMRI image as in ImageList

Parameters

images : iterable

an iterable object whose items are meant to be images; this is checked by asserting that each has a coordmap attribute and a get_data method. Note that Image objects are not iterable by default; use the from_image classmethod or iter_axis function to convert images to image lists - see examples below for the latter.

volume_start_times: None or float or (N,) ndarray

start time of each frame. It can be specified either as an ndarray with N=len(images) elements or as a single float, the TR. None results in np.arange(len(images)).astype(np.float)

slice_times: None or (N,) ndarray

specifying offset for each slice of each frame, from the frame start time.

See also

nipy.core.image_list.ImageList

Examples

>>> from nipy.testing import funcfile
>>> from nipy.io.api import load_image
>>> from nipy.core.api import iter_axis
>>> funcim = load_image(funcfile)
>>> iterable_img = iter_axis(funcim, 't')
>>> fmrilist = FmriImageList(iterable_img)
>>> print(fmrilist.get_list_data(axis=0).shape)
(20, 17, 21, 3)
>>> print(fmrilist[4].shape)
(17, 21, 3)
classmethod from_image(fourdimage, axis='t', volume_start_times=None, slice_times=None)[source]

Create an FmriImageList from a 4D Image

Get images by extracting 3d images along the ‘t’ axis.

Parameters

fourdimage : Image instance

A 4D Image

volume_start_times: None or float or (N,) ndarray

start time of each frame. It can be specified either as an ndarray with N=len(images) elements or as a single float, the TR. None results in np.arange(len(images)).astype(np.float)

slice_times: None or (N,) ndarray

specifying offset for each slice of each frame, from the frame start time.

Returns

filist : FmriImageList instance

get_list_data(axis=None)

Return data in ndarray with list dimension at position axis

Parameters

axis : int

axis specifies which axis of the output will take the role of the list dimension. For example, 0 will put the list dimension in the first axis of the result.

Returns

data : ndarray

data in image list as array, with data across elements of the list concetenated at dimension axis of the array.

Examples

>>> from nipy.testing import funcfile
>>> from nipy.io.api import load_image
>>> funcim = load_image(funcfile)
>>> ilist = ImageList.from_image(funcim, axis='t')
>>> ilist.get_list_data(axis=0).shape
(20, 17, 21, 3)
nipy.modalities.fmri.fmri.axis0_generator(data, slicers=None)[source]

Takes array-like data, returning slices over axes > 0

This function takes an array-like object data and yields tuples of slicing thing and slices like:

[slicer, np.asarray(data)[:,slicer] for slicer in slicer]

which in the default (slicers is None) case, boils down to:

[i, np.asarray(data)[:,i] for i in range(data.shape[1])]

This can be used to get arrays of time series out of an array if the time axis is axis 0.

Parameters

data : array-like

object such that arr = np.asarray(data) returns an array of at least 2 dimensions.

slicers : None or sequence

sequence of objects that can be used to slice into array arr returned from data. If None, default is range(data.shape[1])