direction
direction.peaks
BootDirectionGetter
ClosestPeakDirectionGetter
DeterministicMaximumDirectionGetter
EuDXDirectionGetter
InTemporaryDirectory
PeaksAndMetrics
ProbabilisticDirectionGetter
Sphere
repeat
EuDXDirectionGetter
InTemporaryDirectory
PeaksAndMetrics
Sphere
repeat
direction
Methods |
|
A direction getter that returns the closest odf peak to previous tracking direction. |
|
Return direction of a sphere with the highest probability mass function (pmf). |
|
Deterministic Direction Getter based on peak directions. |
|
|
Create, return, and change directory to a temporary directory |
|
|
Randomly samples direction of a sphere based on probability mass function (pmf). |
|
|
Points on the unit sphere. |
|
for the specified number of times. |
|
Returns a process pool object |
Returns the number of CPUs in the system |
|
|
The general fractional anisotropy of a function evaluated on the unit sphere |
Local maxima of a function evaluated on a discrete set of points. |
|
|
An N-dimensional iterator object to index arrays. |
|
Get the directions of odf peaks. |
|
Non Linear Direction Finder. |
|
Fit the model to data and computes peaks and metrics |
Remove vertices that are less than theta degrees from any other |
|
Reshape peaks for visualization. |
|
i in descending array a so a[i] < a[0] * relative_threshold |
|
|
Matrix that transforms Spherical harmonics (SH) to spherical function (SF). |
|
Issue a warning, or maybe ignore it or raise an exception. |
direction.peaks
Deterministic Direction Getter based on peak directions. |
|
|
Create, return, and change directory to a temporary directory |
|
|
|
Points on the unit sphere. |
|
for the specified number of times. |
|
Returns a process pool object |
Returns the number of CPUs in the system |
|
|
The general fractional anisotropy of a function evaluated on the unit sphere |
Local maxima of a function evaluated on a discrete set of points. |
|
|
An N-dimensional iterator object to index arrays. |
|
Get the directions of odf peaks. |
|
Non Linear Direction Finder. |
|
Fit the model to data and computes peaks and metrics |
Remove vertices that are less than theta degrees from any other |
|
Reshape peaks for visualization. |
|
i in descending array a so a[i] < a[0] * relative_threshold |
|
|
Matrix that transforms Spherical harmonics (SH) to spherical function (SF). |
|
Issue a warning, or maybe ignore it or raise an exception. |
BootDirectionGetter
dipy.direction.
BootDirectionGetter
Bases: dipy.direction.closest_peak_direction_getter.BasePmfDirectionGetter
Methods
Create a BootDirectionGetter using HARDI data and an ODF type model |
|
|
Returns best directions at seed location to start tracking. |
get_direction |
from_data
()Create a BootDirectionGetter using HARDI data and an ODF type model
Diffusion MRI data with N volumes.
Must provide fit with odf method.
Maximum angle between tract segments. This angle can be more generous (larger) than values typically used with probabilistic direction getters.
The sphere used to sample the diffusion ODF.
The order of the SH “model” used to estimate bootstrap residuals.
Max number of bootstrap samples used to find tracking direction before giving up.
Threshold for ODF functions.
Relative threshold for excluding ODF peaks.
Angular threshold for excluding ODF peaks.
ClosestPeakDirectionGetter
dipy.direction.
ClosestPeakDirectionGetter
Bases: dipy.direction.closest_peak_direction_getter.PmfGenDirectionGetter
A direction getter that returns the closest odf peak to previous tracking direction.
Methods
|
Constructor for making a DirectionGetter from an array of Pmfs |
|
Probabilistic direction getter from a distribution of directions on the sphere |
|
Returns best directions at seed location to start tracking. |
get_direction |
DeterministicMaximumDirectionGetter
dipy.direction.
DeterministicMaximumDirectionGetter
Bases: dipy.direction.probabilistic_direction_getter.ProbabilisticDirectionGetter
Return direction of a sphere with the highest probability mass function (pmf).
Methods
|
Constructor for making a DirectionGetter from an array of Pmfs |
|
Probabilistic direction getter from a distribution of directions on the sphere |
|
Returns best directions at seed location to start tracking. |
get_direction |
EuDXDirectionGetter
dipy.direction.
EuDXDirectionGetter
Bases: dipy.tracking.direction_getter.DirectionGetter
Deterministic Direction Getter based on peak directions.
This class contains the cython portion of the code for PeaksAndMetrics and is not meant to be used on its own.
Methods
The best starting directions for fiber tracking from point |
get_direction |
InTemporaryDirectory
dipy.direction.
InTemporaryDirectory
(suffix='', prefix='tmp', dir=None)Bases: nibabel.tmpdirs.TemporaryDirectory
Create, return, and change directory to a temporary directory
Examples
>>> import os
>>> my_cwd = os.getcwd()
>>> with InTemporaryDirectory() as tmpdir:
... _ = open('test.txt', 'wt').write('some text')
... assert os.path.isfile('test.txt')
... assert os.path.isfile(os.path.join(tmpdir, 'test.txt'))
>>> os.path.exists(tmpdir)
False
>>> os.getcwd() == my_cwd
True
Methods
cleanup |
PeaksAndMetrics
ProbabilisticDirectionGetter
dipy.direction.
ProbabilisticDirectionGetter
Bases: dipy.direction.closest_peak_direction_getter.PmfGenDirectionGetter
Randomly samples direction of a sphere based on probability mass function (pmf).
The main constructors for this class are current from_pmf and from_shcoeff.
The pmf gives the probability that each direction on the sphere should be
chosen as the next direction. To get the true pmf from the “raw pmf”
directions more than max_angle
degrees from the incoming direction are
set to 0 and the result is normalized.
Methods
|
Constructor for making a DirectionGetter from an array of Pmfs |
|
Probabilistic direction getter from a distribution of directions on the sphere |
|
Returns best directions at seed location to start tracking. |
get_direction |
__init__
()Direction getter from a pmf generator.
Used to get probability mass function for selecting tracking directions.
The maximum allowed angle between incoming direction and new direction.
The set of directions to be used for tracking.
Used to remove direction from the probability mass function for selecting the tracking direction.
Used for extracting initial tracking directions. Passed to peak_directions.
Used for extracting initial tracking directions. Passed to peak_directions.
See also
Sphere
dipy.direction.
Sphere
(x=None, y=None, z=None, theta=None, phi=None, xyz=None, faces=None, edges=None)Bases: object
Points on the unit sphere.
The sphere can be constructed using one of three conventions:
Sphere(x, y, z)
Sphere(xyz=xyz)
Sphere(theta=theta, phi=phi)
Vertices as x-y-z coordinates.
Vertices as spherical coordinates. Theta and phi are the inclination and azimuth angles respectively.
Vertices as x-y-z coordinates.
Indices into vertices that form triangular faces. If unspecified, the faces are computed using a Delaunay triangulation.
Edges between vertices. If unspecified, the edges are derived from the faces.
Methods
|
Find the index of the vertex in the Sphere closest to the input vector |
|
Subdivides each face of the sphere into four new faces. |
edges |
|
faces |
|
vertices |
__init__
(x=None, y=None, z=None, theta=None, phi=None, xyz=None, faces=None, edges=None)Initialize self. See help(type(self)) for accurate signature.
find_closest
(xyz)Find the index of the vertex in the Sphere closest to the input vector
A unit vector
The index into the Sphere.vertices array that gives the closest vertex (in angle).
subdivide
(n=1)Subdivides each face of the sphere into four new faces.
New vertices are created at a, b, and c. Then each face [x, y, z] is divided into faces [x, a, c], [y, a, b], [z, b, c], and [a, b, c].
y
/\
/ \
a/____\b
/\ /\
/ \ / \
/____\/____\
x c z
The number of subdivisions to preform.
The subdivided sphere.
repeat
dipy.direction.
repeat
(object[, times]) → create an iterator which returns the objectBases: object
for the specified number of times. If not specified, returns the object endlessly.
dipy.direction.
gfa
(samples)The general fractional anisotropy of a function evaluated on the unit sphere
Values of data on the unit sphere.
GFA evaluated in each entry of the array, along the last dimension. An np.nan is returned for coordinates that contain all-zeros in samples.
Notes
The GFA is defined as [1]
\sqrt{\frac{n \sum_i{(\Psi_i - <\Psi>)^2}}{(n-1) \sum{\Psi_i ^ 2}}}
Where \(\Psi\) is an orientation distribution function sampled discretely on the unit sphere and angle brackets denote average over the samples on the sphere.
Quality assessment of High Angular Resolution Diffusion Imaging data using bootstrap on Q-ball reconstruction. J. Cohen Adad, M. Descoteaux, L.L. Wald. JMRI 33: 1194-1208.
dipy.direction.
local_maxima
()Local maxima of a function evaluated on a discrete set of points.
If a function is evaluated on some set of points where each pair of neighboring points is an edge in edges, find the local maxima.
The function evaluated on a set of discrete points.
The set of neighbor relations between the points. Every edge, ie edges[i, :], is a pair of neighboring points.
Value of odf at a maximum point. Peak values is sorted in descending order.
Indices of maximum points. Sorted in the same order as peak_values so odf[peak_indices[i]] == peak_values[i].
See also
Notes
A point is a local maximum if it is > at least one neighbor and >= all neighbors. If no points meet the above criteria, 1 maximum is returned such that odf[maximum] == max(odf).
dipy.direction.
ndindex
(shape)An N-dimensional iterator object to index arrays.
Given the shape of an array, an ndindex instance iterates over the N-dimensional index of the array. At each iteration a tuple of indices is returned; the last dimension is iterated over first.
The dimensions of the array.
Examples
>>> from dipy.core.ndindex import ndindex
>>> shape = (3, 2, 1)
>>> for index in ndindex(shape):
... print(index)
(0, 0, 0)
(0, 1, 0)
(1, 0, 0)
(1, 1, 0)
(2, 0, 0)
(2, 1, 0)
dipy.direction.
peak_directions
(odf, sphere, relative_peak_threshold=0.5, min_separation_angle=25)Get the directions of odf peaks.
Peaks are defined as points on the odf that are greater than at least one neighbor and greater than or equal to all neighbors. Peaks are sorted in descending order by their values then filtered based on their relative size and spacing on the sphere. An odf may have 0 peaks, for example if the odf is perfectly isotropic.
The odf function evaluated on the vertices of sphere
The Sphere providing discrete directions for evaluation.
Only peaks greater than min + relative_peak_threshold * scale
are
kept, where min = max(0, odf.min())
and
scale = odf.max() - min
.
The minimum distance between directions. If two peaks are too close only the larger of the two is returned.
N vertices for sphere, one for each peak
peak values
peak indices of the directions on the sphere
Notes
If the odf has any negative values, they will be clipped to zeros.
dipy.direction.
peak_directions_nl
(sphere_eval, relative_peak_threshold=0.25, min_separation_angle=25, sphere=<dipy.core.sphere.HemiSphere object>, xtol=1e-07)Non Linear Direction Finder.
A function which can be evaluated on a sphere.
Only return peaks greater than relative_peak_threshold * m
where m
is the largest peak.
The minimum distance between directions. If two peaks are too close only the larger of the two is returned.
A discrete Sphere. The points on the sphere will be used for initial estimate of maximums.
Relative tolerance for optimization.
Points on the sphere corresponding to N local maxima on the sphere.
Value of sphere_eval at each point on directions.
dipy.direction.
peaks_from_model
(model, data, sphere, relative_peak_threshold, min_separation_angle, mask=None, return_odf=False, return_sh=True, gfa_thr=0, normalize_peaks=False, sh_order=8, sh_basis_type=None, npeaks=5, B=None, invB=None, parallel=False, nbr_processes=None)Fit the model to data and computes peaks and metrics
model will be used to fit the data.
The Sphere providing discrete directions for evaluation.
Only return peaks greater than relative_peak_threshold * m
where m
is the largest peak.
directions. If two peaks are too close only the larger of the two is returned.
If mask is provided, voxels that are False in mask are skipped and no peaks are returned.
If True, the odfs are returned.
If True, the odf as spherical harmonics coefficients is returned
Voxels with gfa less than gfa_thr are skipped, no peaks are returned.
If true, all peak values are calculated relative to max(odf).
Maximum SH order in the SH fit. For sh_order, there will be
(sh_order + 1) * (sh_order + 2) / 2
SH coefficients (default 8).
None
for the default DIPY basis,
tournier07
for the Tournier 2007 [2] basis, and
descoteaux07
for the Descoteaux 2007 [1] basis
(None
defaults to descoteaux07
).
Lambda-regularization in the SH fit (default 0.0).
Maximum number of peaks found (default 5 peaks).
Matrix that transforms spherical harmonics to spherical function
sf = np.dot(sh, B)
.
Inverse of B.
If True, use multiprocessing to compute peaks and metric
(default False). Temporary files are saved in the default temporary
directory of the system. It can be changed using import tempfile
and tempfile.tempdir = '/path/to/tempdir'
.
If parallel is True, the number of subprocesses to use (default multiprocessing.cpu_count()).
An object with gfa
, peak_directions
, peak_values
,
peak_indices
, odf
, shm_coeffs
as attributes
References
Descoteaux, M., Angelino, E., Fitzgibbons, S. and Deriche, R. Regularized, Fast, and Robust Analytical Q-ball Imaging. Magn. Reson. Med. 2007;58:497-510.
Tournier J.D., Calamante F. and Connelly A. Robust determination of the fibre orientation distribution in diffusion MRI: Non-negativity constrained super-resolved spherical deconvolution. NeuroImage. 2007;35(4):1459-1472.
dipy.direction.
remove_similar_vertices
()Remove vertices that are less than theta degrees from any other
Returns vertices that are at least theta degrees from any other vertex. Vertex v and -v are considered the same so if v and -v are both in vertices only one is kept. Also if v and w are both in vertices, w must be separated by theta degrees from both v and -v to be unique.
N unit vectors.
The minimum separation between vertices in degrees.
If True, return mapping as well as vertices and maybe indices (see below).
If True, return indices as well as vertices and maybe mapping (see below).
Vertices sufficiently separated from one another.
For each element vertices[i]
(\(i \in 0..N-1\)), the index \(j\) to a
vertex in unique_vertices that is less than theta degrees from
vertices[i]
. Only returned if return_mapping is True.
indices gives the reverse of mapping. For each element
unique_vertices[j]
(\(j \in 0..M-1\)), the index \(i\) to a vertex in
vertices that is less than theta degrees from
unique_vertices[j]
. If there is more than one element of
vertices that is less than theta degrees from unique_vertices[j],
return the first (lowest index) matching value. Only return if
return_indices is True.
dipy.direction.
reshape_peaks_for_visualization
(peaks)Reshape peaks for visualization.
Reshape and convert to float32 a set of peaks for visualisation with mrtrix or the fibernavigator.
The peaks to be reshaped and converted to float32.
dipy.direction.
search_descending
()i in descending array a so a[i] < a[0] * relative_threshold
Call T = a[0] * relative_threshold
. Return value i will be the
smallest index in the descending array a such that a[i] < T
.
Equivalently, i will be the largest index such that all(a[:i] >= T)
.
If all values in a are >= T, return the length of array a.
Array to be searched. We assume a is in descending order.
Applied threshold will be T
with T = a[0] * relative_threshold
.
If T = a[0] * relative_threshold
then i will be the largest index
such that all(a[:i] >= T)
. If all values in a are >= T then
i will be len(a).
Examples
>>> a = np.arange(10, 0, -1, dtype=float)
>>> a
array([ 10., 9., 8., 7., 6., 5., 4., 3., 2., 1.])
>>> search_descending(a, 0.5)
6
>>> a < 10 * 0.5
array([False, False, False, False, False, False, True, True, True, True], dtype=bool)
>>> search_descending(a, 1)
1
>>> search_descending(a, 2)
0
>>> search_descending(a, 0)
10
dipy.direction.
sh_to_sf_matrix
(sphere, sh_order=4, basis_type=None, full_basis=False, legacy=True, return_inv=True, smooth=0)Matrix that transforms Spherical harmonics (SH) to spherical function (SF).
The points on which to sample the spherical function.
Maximum SH order in the SH fit. For sh_order
, there will be
(sh_order + 1) * (sh_order + 2) / 2
SH coefficients for a symmetric
basis and (sh_order + 1) * (sh_order + 1)
coefficients for a full
SH basis.
None
for the default DIPY basis,
tournier07
for the Tournier 2007 [R0296267dba6e-2]_[R0296267dba6e-3]_ basis,
descoteaux07
for the Descoteaux 2007 [1] basis,
(None
defaults to descoteaux07
).
If True, uses a SH basis containing even and odd order SH functions. Else, uses a SH basis consisting only of even order SH functions.
True to use a legacy basis definition for backward compatibility
with previous tournier07
and descoteaux07
implementations.
If True then the inverse of the matrix is also returned.
Lambda-regularization in the SH fit.
Matrix that transforms spherical harmonics to spherical function
sf = np.dot(sh, B)
.
Inverse of B.
References
Descoteaux, M., Angelino, E., Fitzgibbons, S. and Deriche, R. Regularized, Fast, and Robust Analytical Q-ball Imaging. Magn. Reson. Med. 2007;58:497-510.
Tournier J.D., Calamante F. and Connelly A. Robust determination of the fibre orientation distribution in diffusion MRI: Non-negativity constrained super-resolved spherical deconvolution. NeuroImage. 2007;35(4):1459-1472.
Tournier J-D, Smith R, Raffelt D, Tabbara R, Dhollander T, Pietsch M, et al. MRtrix3: A fast, flexible and open software framework for medical image processing and visualisation. NeuroImage. 2019 Nov 15;202:116-137.
EuDXDirectionGetter
dipy.direction.peaks.
EuDXDirectionGetter
Bases: dipy.tracking.direction_getter.DirectionGetter
Deterministic Direction Getter based on peak directions.
This class contains the cython portion of the code for PeaksAndMetrics and is not meant to be used on its own.
Methods
The best starting directions for fiber tracking from point |
get_direction |
InTemporaryDirectory
dipy.direction.peaks.
InTemporaryDirectory
(suffix='', prefix='tmp', dir=None)Bases: nibabel.tmpdirs.TemporaryDirectory
Create, return, and change directory to a temporary directory
Examples
>>> import os
>>> my_cwd = os.getcwd()
>>> with InTemporaryDirectory() as tmpdir:
... _ = open('test.txt', 'wt').write('some text')
... assert os.path.isfile('test.txt')
... assert os.path.isfile(os.path.join(tmpdir, 'test.txt'))
>>> os.path.exists(tmpdir)
False
>>> os.getcwd() == my_cwd
True
Methods
cleanup |
PeaksAndMetrics
Sphere
dipy.direction.peaks.
Sphere
(x=None, y=None, z=None, theta=None, phi=None, xyz=None, faces=None, edges=None)Bases: object
Points on the unit sphere.
The sphere can be constructed using one of three conventions:
Sphere(x, y, z)
Sphere(xyz=xyz)
Sphere(theta=theta, phi=phi)
Vertices as x-y-z coordinates.
Vertices as spherical coordinates. Theta and phi are the inclination and azimuth angles respectively.
Vertices as x-y-z coordinates.
Indices into vertices that form triangular faces. If unspecified, the faces are computed using a Delaunay triangulation.
Edges between vertices. If unspecified, the edges are derived from the faces.
Methods
|
Find the index of the vertex in the Sphere closest to the input vector |
|
Subdivides each face of the sphere into four new faces. |
edges |
|
faces |
|
vertices |
__init__
(x=None, y=None, z=None, theta=None, phi=None, xyz=None, faces=None, edges=None)Initialize self. See help(type(self)) for accurate signature.
find_closest
(xyz)Find the index of the vertex in the Sphere closest to the input vector
A unit vector
The index into the Sphere.vertices array that gives the closest vertex (in angle).
subdivide
(n=1)Subdivides each face of the sphere into four new faces.
New vertices are created at a, b, and c. Then each face [x, y, z] is divided into faces [x, a, c], [y, a, b], [z, b, c], and [a, b, c].
y
/\
/ \
a/____\b
/\ /\
/ \ / \
/____\/____\
x c z
The number of subdivisions to preform.
The subdivided sphere.
repeat
dipy.direction.peaks.
repeat
(object[, times]) → create an iterator which returns the objectBases: object
for the specified number of times. If not specified, returns the object endlessly.
dipy.direction.peaks.
gfa
(samples)The general fractional anisotropy of a function evaluated on the unit sphere
Values of data on the unit sphere.
GFA evaluated in each entry of the array, along the last dimension. An np.nan is returned for coordinates that contain all-zeros in samples.
Notes
The GFA is defined as [1]
\sqrt{\frac{n \sum_i{(\Psi_i - <\Psi>)^2}}{(n-1) \sum{\Psi_i ^ 2}}}
Where \(\Psi\) is an orientation distribution function sampled discretely on the unit sphere and angle brackets denote average over the samples on the sphere.
Quality assessment of High Angular Resolution Diffusion Imaging data using bootstrap on Q-ball reconstruction. J. Cohen Adad, M. Descoteaux, L.L. Wald. JMRI 33: 1194-1208.
dipy.direction.peaks.
local_maxima
()Local maxima of a function evaluated on a discrete set of points.
If a function is evaluated on some set of points where each pair of neighboring points is an edge in edges, find the local maxima.
The function evaluated on a set of discrete points.
The set of neighbor relations between the points. Every edge, ie edges[i, :], is a pair of neighboring points.
Value of odf at a maximum point. Peak values is sorted in descending order.
Indices of maximum points. Sorted in the same order as peak_values so odf[peak_indices[i]] == peak_values[i].
See also
Notes
A point is a local maximum if it is > at least one neighbor and >= all neighbors. If no points meet the above criteria, 1 maximum is returned such that odf[maximum] == max(odf).
dipy.direction.peaks.
ndindex
(shape)An N-dimensional iterator object to index arrays.
Given the shape of an array, an ndindex instance iterates over the N-dimensional index of the array. At each iteration a tuple of indices is returned; the last dimension is iterated over first.
The dimensions of the array.
Examples
>>> from dipy.core.ndindex import ndindex
>>> shape = (3, 2, 1)
>>> for index in ndindex(shape):
... print(index)
(0, 0, 0)
(0, 1, 0)
(1, 0, 0)
(1, 1, 0)
(2, 0, 0)
(2, 1, 0)
dipy.direction.peaks.
peak_directions
(odf, sphere, relative_peak_threshold=0.5, min_separation_angle=25)Get the directions of odf peaks.
Peaks are defined as points on the odf that are greater than at least one neighbor and greater than or equal to all neighbors. Peaks are sorted in descending order by their values then filtered based on their relative size and spacing on the sphere. An odf may have 0 peaks, for example if the odf is perfectly isotropic.
The odf function evaluated on the vertices of sphere
The Sphere providing discrete directions for evaluation.
Only peaks greater than min + relative_peak_threshold * scale
are
kept, where min = max(0, odf.min())
and
scale = odf.max() - min
.
The minimum distance between directions. If two peaks are too close only the larger of the two is returned.
N vertices for sphere, one for each peak
peak values
peak indices of the directions on the sphere
Notes
If the odf has any negative values, they will be clipped to zeros.
dipy.direction.peaks.
peak_directions_nl
(sphere_eval, relative_peak_threshold=0.25, min_separation_angle=25, sphere=<dipy.core.sphere.HemiSphere object>, xtol=1e-07)Non Linear Direction Finder.
A function which can be evaluated on a sphere.
Only return peaks greater than relative_peak_threshold * m
where m
is the largest peak.
The minimum distance between directions. If two peaks are too close only the larger of the two is returned.
A discrete Sphere. The points on the sphere will be used for initial estimate of maximums.
Relative tolerance for optimization.
Points on the sphere corresponding to N local maxima on the sphere.
Value of sphere_eval at each point on directions.
dipy.direction.peaks.
peaks_from_model
(model, data, sphere, relative_peak_threshold, min_separation_angle, mask=None, return_odf=False, return_sh=True, gfa_thr=0, normalize_peaks=False, sh_order=8, sh_basis_type=None, npeaks=5, B=None, invB=None, parallel=False, nbr_processes=None)Fit the model to data and computes peaks and metrics
model will be used to fit the data.
The Sphere providing discrete directions for evaluation.
Only return peaks greater than relative_peak_threshold * m
where m
is the largest peak.
directions. If two peaks are too close only the larger of the two is returned.
If mask is provided, voxels that are False in mask are skipped and no peaks are returned.
If True, the odfs are returned.
If True, the odf as spherical harmonics coefficients is returned
Voxels with gfa less than gfa_thr are skipped, no peaks are returned.
If true, all peak values are calculated relative to max(odf).
Maximum SH order in the SH fit. For sh_order, there will be
(sh_order + 1) * (sh_order + 2) / 2
SH coefficients (default 8).
None
for the default DIPY basis,
tournier07
for the Tournier 2007 [2] basis, and
descoteaux07
for the Descoteaux 2007 [1] basis
(None
defaults to descoteaux07
).
Lambda-regularization in the SH fit (default 0.0).
Maximum number of peaks found (default 5 peaks).
Matrix that transforms spherical harmonics to spherical function
sf = np.dot(sh, B)
.
Inverse of B.
If True, use multiprocessing to compute peaks and metric
(default False). Temporary files are saved in the default temporary
directory of the system. It can be changed using import tempfile
and tempfile.tempdir = '/path/to/tempdir'
.
If parallel is True, the number of subprocesses to use (default multiprocessing.cpu_count()).
An object with gfa
, peak_directions
, peak_values
,
peak_indices
, odf
, shm_coeffs
as attributes
References
Descoteaux, M., Angelino, E., Fitzgibbons, S. and Deriche, R. Regularized, Fast, and Robust Analytical Q-ball Imaging. Magn. Reson. Med. 2007;58:497-510.
Tournier J.D., Calamante F. and Connelly A. Robust determination of the fibre orientation distribution in diffusion MRI: Non-negativity constrained super-resolved spherical deconvolution. NeuroImage. 2007;35(4):1459-1472.
dipy.direction.peaks.
remove_similar_vertices
()Remove vertices that are less than theta degrees from any other
Returns vertices that are at least theta degrees from any other vertex. Vertex v and -v are considered the same so if v and -v are both in vertices only one is kept. Also if v and w are both in vertices, w must be separated by theta degrees from both v and -v to be unique.
N unit vectors.
The minimum separation between vertices in degrees.
If True, return mapping as well as vertices and maybe indices (see below).
If True, return indices as well as vertices and maybe mapping (see below).
Vertices sufficiently separated from one another.
For each element vertices[i]
(\(i \in 0..N-1\)), the index \(j\) to a
vertex in unique_vertices that is less than theta degrees from
vertices[i]
. Only returned if return_mapping is True.
indices gives the reverse of mapping. For each element
unique_vertices[j]
(\(j \in 0..M-1\)), the index \(i\) to a vertex in
vertices that is less than theta degrees from
unique_vertices[j]
. If there is more than one element of
vertices that is less than theta degrees from unique_vertices[j],
return the first (lowest index) matching value. Only return if
return_indices is True.
dipy.direction.peaks.
reshape_peaks_for_visualization
(peaks)Reshape peaks for visualization.
Reshape and convert to float32 a set of peaks for visualisation with mrtrix or the fibernavigator.
The peaks to be reshaped and converted to float32.
dipy.direction.peaks.
search_descending
()i in descending array a so a[i] < a[0] * relative_threshold
Call T = a[0] * relative_threshold
. Return value i will be the
smallest index in the descending array a such that a[i] < T
.
Equivalently, i will be the largest index such that all(a[:i] >= T)
.
If all values in a are >= T, return the length of array a.
Array to be searched. We assume a is in descending order.
Applied threshold will be T
with T = a[0] * relative_threshold
.
If T = a[0] * relative_threshold
then i will be the largest index
such that all(a[:i] >= T)
. If all values in a are >= T then
i will be len(a).
Examples
>>> a = np.arange(10, 0, -1, dtype=float)
>>> a
array([ 10., 9., 8., 7., 6., 5., 4., 3., 2., 1.])
>>> search_descending(a, 0.5)
6
>>> a < 10 * 0.5
array([False, False, False, False, False, False, True, True, True, True], dtype=bool)
>>> search_descending(a, 1)
1
>>> search_descending(a, 2)
0
>>> search_descending(a, 0)
10
dipy.direction.peaks.
sh_to_sf_matrix
(sphere, sh_order=4, basis_type=None, full_basis=False, legacy=True, return_inv=True, smooth=0)Matrix that transforms Spherical harmonics (SH) to spherical function (SF).
The points on which to sample the spherical function.
Maximum SH order in the SH fit. For sh_order
, there will be
(sh_order + 1) * (sh_order + 2) / 2
SH coefficients for a symmetric
basis and (sh_order + 1) * (sh_order + 1)
coefficients for a full
SH basis.
None
for the default DIPY basis,
tournier07
for the Tournier 2007 [Rc855ec825848-2]_[Rc855ec825848-3]_ basis,
descoteaux07
for the Descoteaux 2007 [1] basis,
(None
defaults to descoteaux07
).
If True, uses a SH basis containing even and odd order SH functions. Else, uses a SH basis consisting only of even order SH functions.
True to use a legacy basis definition for backward compatibility
with previous tournier07
and descoteaux07
implementations.
If True then the inverse of the matrix is also returned.
Lambda-regularization in the SH fit.
Matrix that transforms spherical harmonics to spherical function
sf = np.dot(sh, B)
.
Inverse of B.
References
Descoteaux, M., Angelino, E., Fitzgibbons, S. and Deriche, R. Regularized, Fast, and Robust Analytical Q-ball Imaging. Magn. Reson. Med. 2007;58:497-510.
Tournier J.D., Calamante F. and Connelly A. Robust determination of the fibre orientation distribution in diffusion MRI: Non-negativity constrained super-resolved spherical deconvolution. NeuroImage. 2007;35(4):1459-1472.
Tournier J-D, Smith R, Raffelt D, Tabbara R, Dhollander T, Pietsch M, et al. MRtrix3: A fast, flexible and open software framework for medical image processing and visualisation. NeuroImage. 2019 Nov 15;202:116-137.