Diff of /doc/_includes/morph.rst [000000] .. [7f9fb8]

Switch to side-by-side view

--- a
+++ b/doc/_includes/morph.rst
@@ -0,0 +1,123 @@
+:orphan:
+
+Morphing and averaging source estimates
+=======================================
+
+The spherical morphing of BEM surfaces accomplished by FreeSurfer can be
+employed to bring data from different subjects into a common anatomical frame.
+This page describes utilities which make use of the spherical :term:`morphing`
+procedure. :func:`mne.morph_labels` morphs label files between subjects
+allowing the definition of labels in a one brain and transforming them to
+anatomically analogous labels in another. :meth:`mne.SourceMorph.apply` offers
+the capability to transform all subject data to the same space and,
+e.g., compute averages of data across subjects.
+
+.. NOTE: part of this file is included in doc/overview/implementation.rst.
+   Changes here are reflected there. If you want to link to this content, link
+   to :ref:`ch_morph` to link to that section of the implementation.rst page.
+   The next line is a target for :start-after: so we can omit the title from
+   the include:
+   morph-begin-content
+
+
+Why morphing?
+~~~~~~~~~~~~~
+
+.. note:: Morphing examples in MNE-Python
+    :class: sidebar
+
+    Examples of morphing in MNE-Python include :ref:`this tutorial
+    <tut-mne-fixed-free>` on surface source estimation or these examples on
+    :ref:`surface <ex-morph-surface>` and :ref:`volumetric <ex-morph-volume>`
+    source estimation.
+
+Modern neuroimaging techniques, such as source reconstruction or fMRI analyses,
+make use of advanced mathematical models and hardware to map brain activity
+patterns into a subject-specific anatomical brain space. This enables the study
+of spatio-temporal brain activity. The representation of spatio-temporal brain
+data is often mapped onto the anatomical brain structure to relate functional
+and anatomical maps. Thereby activity patterns are overlaid with anatomical
+locations that supposedly produced the activity. Anatomical MR images are often
+used as such or are transformed into an inflated surface representations to
+serve as  "canvas" for the visualization.
+
+In order to compute group-level statistics, data representations across
+subjects must be morphed to a common frame, such that anatomically and
+functional similar structures are represented at the same spatial location for
+*all subjects equally*. Since brains vary, :term:`morphing` comes into play to
+tell us how the data produced by subject A would be represented on the brain of
+subject B (and vice-versa).
+
+
+The morphing maps
+~~~~~~~~~~~~~~~~~
+
+The MNE software accomplishes morphing with help of morphing maps.
+The morphing is performed with help of the registered
+spherical surfaces (``lh.sphere.reg`` and ``rh.sphere.reg`` ) which must be
+produced in FreeSurfer. A morphing map is a linear mapping from cortical
+surface values in subject A (:math:`x^{(A)}`) to those in another subject B
+(:math:`x^{(B)}`)
+
+.. math::    x^{(B)} = M^{(AB)} x^{(A)}\ ,
+
+where :math:`M^{(AB)}` is a sparse matrix with at most three nonzero elements
+on each row. These elements are determined as follows. First, using the aligned
+spherical surfaces, for each vertex :math:`x_j^{(B)}`, find the triangle
+:math:`T_j^{(A)}` on the spherical surface of subject A which contains the
+location :math:`x_j^{(B)}`. Next, find the numbers of the vertices of this
+triangle and set the corresponding elements on the *j* th row of
+:math:`M^{(AB)}` so that :math:`x_j^{(B)}` will be a linear interpolation
+between the triangle vertex values reflecting the location :math:`x_j^{(B)}`
+within the triangle :math:`T_j^{(A)}`.
+
+It follows from the above definition that in general
+
+.. math::    M^{(AB)} \neq (M^{(BA)})^{-1}\ ,
+
+*i.e.*,
+
+.. math::    x_{(A)} \neq M^{(BA)} M^{(AB)} x^{(A)}\ ,
+
+even if
+
+.. math::    x^{(A)} \approx M^{(BA)} M^{(AB)} x^{(A)}\ ,
+
+*i.e.*, the mapping is *almost* a bijection.
+
+
+About smoothing
+~~~~~~~~~~~~~~~
+
+The current estimates are normally defined only in a decimated grid which is a
+sparse subset of the vertices in the triangular tessellation of the cortical
+surface. Therefore, any sparse set of values is distributed to neighboring
+vertices to make the visualized results easily understandable. This procedure
+has been traditionally called smoothing but a more appropriate name might be
+smudging or blurring in accordance with similar operations in image processing
+programs.
+
+In MNE software terms, smoothing of the vertex data is an iterative procedure,
+which produces a blurred image :math:`x^{(N)}` from the original sparse image
+:math:`x^{(0)}` by applying in each iteration step a sparse blurring matrix:
+
+.. math::    x^{(p)} = S^{(p)} x^{(p - 1)}\ .
+
+On each row :math:`j` of the matrix :math:`S^{(p)}` there are :math:`N_j^{(p -
+1)}` nonzero entries whose values equal :math:`1/N_j^{(p - 1)}`. Here
+:math:`N_j^{(p - 1)}` is the number of immediate neighbors of vertex :math:`j`
+which had non-zero values at iteration step :math:`p - 1`. Matrix
+:math:`S^{(p)}` thus assigns the average of the non-zero neighbors as the new
+value for vertex :math:`j`. One important feature of this procedure is that it
+tends to preserve the amplitudes while blurring the surface image.
+
+Once the indices non-zero vertices in :math:`x^{(0)}` and the topology of the
+triangulation are fixed the matrices :math:`S^{(p)}` are fixed and independent
+of the data. Therefore, it would be in principle possible to construct a
+composite blurring matrix
+
+.. math::    S^{(N)} = \prod_{p = 1}^N {S^{(p)}}\ .
+
+However, it turns out to be computationally more effective to do blurring with
+an iteration. The above formula for :math:`S^{(N)}` also shows that the
+smudging (smoothing) operation is linear.