# modalities.fmri.fmri

## Module: `modalities.fmri.fmri`

Inheritance diagram for `nipy.modalities.fmri.fmri`:

## `FmriImageList`

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

  Bases: `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)

    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_fdata` 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.float64)`

      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)

    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.float64)`

      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)

  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])`