data

Read test or example data.

DataError

GradientTable(gradients[, big_delta, …])

Diffusion gradient information

HemiSphere([x, y, z, theta, phi, xyz, …])

Points on the unit sphere.

Sphere([x, y, z, theta, phi, xyz, faces, edges])

Points on the unit sphere.

as_native_array(arr)

Return arr as native byteordered array

dirname(p)

Returns the directory component of a pathname

dsi_deconv_voxels()

dsi_voxels()

fetch_bundle_atlas_hcp842()

Download atlas tractogram from the hcp842 dataset with 80 bundles

fetch_bundle_fa_hcp()

Download map of FA within two bundles in oneof the hcp dataset subjects

fetch_bundles_2_subjects()

Download 2 subjects from the SNAIL dataset with their bundles

fetch_cenir_multib([with_raw])

Fetch ‘HCP-like’ data, collected at multiple b-values.

fetch_cfin_multib()

Download CFIN multi b-value diffusion data

fetch_gold_standard_io()

Downloads the gold standard for streamlines io testing.

fetch_isbi2013_2shell()

Download a 2-shell software phantom dataset

fetch_ivim()

Download IVIM dataset

fetch_mni_template()

fetch the MNI 2009a T1 and T2, and 2009c T1 and T1 mask files Notes —– The templates were downloaded from the MNI (McGill University) website in July 2015.

fetch_scil_b0()

Download b=0 datasets from multiple MR systems (GE, Philips, Siemens) and different magnetic fields (1.5T and 3T)

fetch_sherbrooke_3shell()

Download a 3shell HARDI dataset with 192 gradient direction

fetch_stanford_hardi()

Download a HARDI dataset with 160 gradient directions

fetch_stanford_labels()

Download reduced freesurfer aparc image from stanford web site

fetch_stanford_pve_maps()

fetch_stanford_t1()

fetch_syn_data()

Download t1 and b0 volumes from the same session

fetch_taiwan_ntu_dsi()

Download a DSI dataset with 203 gradient directions

fetch_target_tractogram_hcp()

Download tractogram of one of the hcp dataset subjects

fetch_tissue_data()

Download images to be used for tissue classification

get_3shell_gtab()

get_bundle_atlas_hcp842()

Returns

get_cmap(name)

Make a callable, similar to maptlotlib.pyplot.get_cmap.

get_fnames([name])

Provide full paths to example or test datasets.

get_gtab_taiwan_dsi()

get_isbi2013_2shell_gtab()

get_sim_voxels([name])

provide some simulated voxel data

get_skeleton([name])

provide skeletons generated from Local Skeleton Clustering (LSC)

get_sphere([name])

provide triangulated spheres

get_target_tractogram_hcp()

Returns

gradient_table(bvals[, bvecs, big_delta, …])

A general function for creating diffusion MR gradients.

load(filename, **kwargs)

Load file given filename, guessing at file type

load_nifti(fname[, return_img, …])

Load data and other information from a nifti file.

loads_compat(bytes)

matlab_life_results()

mrtrix_spherical_functions()

Spherical functions represented by spherical harmonic coefficients and evaluated on a discrete sphere.

pjoin(a, *p)

Join two or more pathname components, inserting ‘/’ as needed.

read_bundles_2_subjects([subj_id, metrics, …])

Read images and streamlines from 2 subjects of the SNAIL dataset.

read_cenir_multib([bvals])

Read CENIR multi b-value data.

read_cfin_dwi()

Load CFIN multi b-value DWI data.

read_cfin_t1()

Load CFIN T1-weighted data.

read_isbi2013_2shell()

Load ISBI 2013 2-shell synthetic dataset.

read_ivim()

Load IVIM dataset.

read_mni_template([version, contrast])

Read the MNI template from disk.

read_scil_b0()

Load GE 3T b0 image form the scil b0 dataset.

read_sherbrooke_3shell()

Load Sherbrooke 3-shell HARDI dataset.

read_stanford_hardi()

Load Stanford HARDI dataset.

read_stanford_labels()

Read stanford hardi data and label map.

read_stanford_pve_maps()

read_stanford_t1()

read_syn_data()

Load t1 and b0 volumes from the same session.

read_taiwan_ntu_dsi()

Load Taiwan NTU dataset.

read_tissue_data([contrast])

Load images to be used for tissue classification

relist_streamlines(points, offsets)

Given a representation of a set of streamlines as a large array and an offsets array return the streamlines as a list of shorter arrays.

two_cingulum_bundles()

Module: data.fetcher

FetcherError

tqdm([iterable, desc, total, leave, file, …])

Decorate an iterable object, returning an iterator which acts exactly like the original iterable, but prints a dynamically updating progressbar every time a value is requested.

check_md5(filename[, stored_md5])

Computes the md5 of filename and check if it matches with the supplied string md5

copyfileobj(fsrc, fdst[, length])

copy data from file-like object fsrc to file-like object fdst

copyfileobj_withprogress(fsrc, fdst, …[, …])

fetch_bundle_atlas_hcp842()

Download atlas tractogram from the hcp842 dataset with 80 bundles

fetch_bundle_fa_hcp()

Download map of FA within two bundles in oneof the hcp dataset subjects

fetch_bundles_2_subjects()

Download 2 subjects from the SNAIL dataset with their bundles

fetch_cenir_multib([with_raw])

Fetch ‘HCP-like’ data, collected at multiple b-values.

fetch_cfin_multib()

Download CFIN multi b-value diffusion data

fetch_data(files, folder[, data_size])

Downloads files to folder and checks their md5 checksums

fetch_file_formats()

Download 5 bundles in various file formats and their reference

fetch_gold_standard_io()

Downloads the gold standard for streamlines io testing.

fetch_isbi2013_2shell()

Download a 2-shell software phantom dataset

fetch_ivim()

Download IVIM dataset

fetch_mni_template()

fetch the MNI 2009a T1 and T2, and 2009c T1 and T1 mask files Notes —– The templates were downloaded from the MNI (McGill University) website in July 2015.

fetch_qtdMRI_test_retest_2subjects()

Downloads test-retest qt-dMRI acquisitions of two C57Bl6 mice.

fetch_scil_b0()

Download b=0 datasets from multiple MR systems (GE, Philips, Siemens) and different magnetic fields (1.5T and 3T)

fetch_sherbrooke_3shell()

Download a 3shell HARDI dataset with 192 gradient direction

fetch_stanford_hardi()

Download a HARDI dataset with 160 gradient directions

fetch_stanford_labels()

Download reduced freesurfer aparc image from stanford web site

fetch_stanford_pve_maps()

fetch_stanford_t1()

fetch_syn_data()

Download t1 and b0 volumes from the same session

fetch_taiwan_ntu_dsi()

Download a DSI dataset with 203 gradient directions

fetch_target_tractogram_hcp()

Download tractogram of one of the hcp dataset subjects

fetch_tissue_data()

Download images to be used for tissue classification

get_bundle_atlas_hcp842()

Returns

get_file_formats()

Returns

get_fnames([name])

Provide full paths to example or test datasets.

get_target_tractogram_hcp()

Returns

get_two_hcp842_bundles()

Returns

gradient_table(bvals[, bvecs, big_delta, …])

A general function for creating diffusion MR gradients.

gradient_table_from_gradient_strength_bvecs(…)

A general function for creating diffusion MR gradients.

load_nifti(fname[, return_img, …])

Load data and other information from a nifti file.

load_nifti_data(fname[, as_ndarray])

Load only the data array from a nifti file.

md5

Returns a md5 hash object; optionally initialized with a string

pjoin(a, *p)

Join two or more pathname components, inserting ‘/’ as needed.

read_bundles_2_subjects([subj_id, metrics, …])

Read images and streamlines from 2 subjects of the SNAIL dataset.

read_bvals_bvecs(fbvals, fbvecs)

Read b-values and b-vectors from disk.

read_cenir_multib([bvals])

Read CENIR multi b-value data.

read_cfin_dwi()

Load CFIN multi b-value DWI data.

read_cfin_t1()

Load CFIN T1-weighted data.

read_isbi2013_2shell()

Load ISBI 2013 2-shell synthetic dataset.

read_ivim()

Load IVIM dataset.

read_mni_template([version, contrast])

Read the MNI template from disk.

read_qtdMRI_test_retest_2subjects()

Load test-retest qt-dMRI acquisitions of two C57Bl6 mice.

read_scil_b0()

Load GE 3T b0 image form the scil b0 dataset.

read_sherbrooke_3shell()

Load Sherbrooke 3-shell HARDI dataset.

read_siemens_scil_b0()

Load Siemens 1.5T b0 image from the scil b0 dataset.

read_stanford_hardi()

Load Stanford HARDI dataset.

read_stanford_labels()

Read stanford hardi data and label map.

read_stanford_pve_maps()

read_stanford_t1()

read_syn_data()

Load t1 and b0 volumes from the same session.

read_taiwan_ntu_dsi()

Load Taiwan NTU dataset.

read_tissue_data([contrast])

Load images to be used for tissue classification

urlopen(url[, data, timeout, cafile, …])

Open the URL url, which can be either a string or a Request object.

DataError

class dipy.data.DataError

Bases: Exception

Attributes
args

Methods

with_traceback

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

__init__(*args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

GradientTable

class dipy.data.GradientTable(gradients, big_delta=None, small_delta=None, b0_threshold=50, btens=None)

Bases: object

Diffusion gradient information

Parameters
gradientsarray_like (N, 3)

Diffusion gradients. The direction of each of these vectors corresponds to the b-vector, and the length corresponds to the b-value.

b0_thresholdfloat

Gradients with b-value less than or equal to b0_threshold are considered as b0s i.e. without diffusion weighting.

See also

gradient_table

Notes

The GradientTable object is immutable. Do NOT assign attributes. If you have your gradient table in a bval & bvec format, we recommend using the factory function gradient_table

Attributes
gradients(N,3) ndarray

diffusion gradients

bvals(N,) ndarray

The b-value, or magnitude, of each gradient direction.

qvals: (N,) ndarray

The q-value for each gradient direction. Needs big and small delta.

bvecs(N,3) ndarray

The direction, represented as a unit vector, of each gradient.

b0s_mask(N,) ndarray

Boolean array indicating which gradients have no diffusion weighting, ie b-value is close to 0.

b0_thresholdfloat

Gradients with b-value less than or equal to b0_threshold are considered to not have diffusion weighting.

btens(N,3,3) ndarray

The b-tensor of each gradient direction.

Methods

b0s_mask

bvals

bvecs

gradient_strength

qvals

tau

__init__(gradients, big_delta=None, small_delta=None, b0_threshold=50, btens=None)

Constructor for GradientTable class

b0s_mask()
bvals()
bvecs()
gradient_strength()
property info
qvals()
tau()

HemiSphere

class dipy.data.HemiSphere(x=None, y=None, z=None, theta=None, phi=None, xyz=None, faces=None, edges=None, tol=1e-05)

Bases: dipy.core.sphere.Sphere

Points on the unit sphere.

A HemiSphere is similar to a Sphere but it takes antipodal symmetry into account. Antipodal symmetry means that point v on a HemiSphere is the same as the point -v. Duplicate points are discarded when constructing a HemiSphere (including antipodal duplicates). edges and faces are remapped to the remaining points as closely as possible.

The HemiSphere can be constructed using one of three conventions:

HemiSphere(x, y, z)
HemiSphere(xyz=xyz)
HemiSphere(theta=theta, phi=phi)
Parameters
x, y, z1-D array_like

Vertices as x-y-z coordinates.

theta, phi1-D array_like

Vertices as spherical coordinates. Theta and phi are the inclination and azimuth angles respectively.

xyz(N, 3) ndarray

Vertices as x-y-z coordinates.

faces(N, 3) ndarray

Indices into vertices that form triangular faces. If unspecified, the faces are computed using a Delaunay triangulation.

edges(N, 2) ndarray

Edges between vertices. If unspecified, the edges are derived from the faces.

tolfloat

Angle in degrees. Vertices that are less than tol degrees apart are treated as duplicates.

See also

Sphere
Attributes
x
y
z

Methods

find_closest(xyz)

Find the index of the vertex in the Sphere closest to the input vector, taking into account antipodal symmetry

from_sphere(sphere[, tol])

Create instance from a Sphere

mirror()

Create a full Sphere from a HemiSphere

subdivide([n])

Create a more subdivided HemiSphere

edges

faces

vertices

__init__(x=None, y=None, z=None, theta=None, phi=None, xyz=None, faces=None, edges=None, tol=1e-05)

Create a HemiSphere from points

faces()
find_closest(xyz)

Find the index of the vertex in the Sphere closest to the input vector, taking into account antipodal symmetry

Parameters
xyzarray-like, 3 elements

A unit vector

Returns
idxint

The index into the Sphere.vertices array that gives the closest vertex (in angle).

classmethod from_sphere(sphere, tol=1e-05)

Create instance from a Sphere

mirror()

Create a full Sphere from a HemiSphere

subdivide(n=1)

Create a more subdivided HemiSphere

See Sphere.subdivide for full documentation.

Sphere

class dipy.data.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)
Parameters
x, y, z1-D array_like

Vertices as x-y-z coordinates.

theta, phi1-D array_like

Vertices as spherical coordinates. Theta and phi are the inclination and azimuth angles respectively.

xyz(N, 3) ndarray

Vertices as x-y-z coordinates.

faces(N, 3) ndarray

Indices into vertices that form triangular faces. If unspecified, the faces are computed using a Delaunay triangulation.

edges(N, 2) ndarray

Edges between vertices. If unspecified, the edges are derived from the faces.

Attributes
x
y
z

Methods

find_closest(xyz)

Find the index of the vertex in the Sphere closest to the input vector

subdivide([n])

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.

edges()
faces()
find_closest(xyz)

Find the index of the vertex in the Sphere closest to the input vector

Parameters
xyzarray-like, 3 elements

A unit vector

Returns
idxint

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
Parameters
nint, optional

The number of subdivisions to preform.

Returns
new_sphereSphere

The subdivided sphere.

vertices()
property x
property y
property z

as_native_array

dipy.data.as_native_array(arr)

Return arr as native byteordered array

If arr is already native byte ordered, return unchanged. If it is opposite endian, then make a native byte ordered copy and return that

Parameters
arrndarray
Returns
native_arrndarray

If arr was native order, this is just arr. Otherwise it’s a new array such that np.all(native_arr == arr), with native byte ordering.

dirname

dipy.data.dirname(p)

Returns the directory component of a pathname

dsi_deconv_voxels

dipy.data.dsi_deconv_voxels()

dsi_voxels

dipy.data.dsi_voxels()

fetch_bundle_atlas_hcp842

dipy.data.fetch_bundle_atlas_hcp842()

Download atlas tractogram from the hcp842 dataset with 80 bundles

fetch_bundle_fa_hcp

dipy.data.fetch_bundle_fa_hcp()

Download map of FA within two bundles in oneof the hcp dataset subjects

fetch_bundles_2_subjects

dipy.data.fetch_bundles_2_subjects()

Download 2 subjects from the SNAIL dataset with their bundles

fetch_cenir_multib

dipy.data.fetch_cenir_multib(with_raw=False)

Fetch ‘HCP-like’ data, collected at multiple b-values.

Parameters
with_rawbool

Whether to fetch the raw data. Per default, this is False, which means that only eddy-current/motion corrected data is fetched

Notes

Details of the acquisition and processing, and additional meta-data are available through UW researchworks:

https://digital.lib.washington.edu/researchworks/handle/1773/33311

fetch_cfin_multib

dipy.data.fetch_cfin_multib()

Download CFIN multi b-value diffusion data

fetch_gold_standard_io

dipy.data.fetch_gold_standard_io()

Downloads the gold standard for streamlines io testing.

fetch_isbi2013_2shell

dipy.data.fetch_isbi2013_2shell()

Download a 2-shell software phantom dataset

fetch_ivim

dipy.data.fetch_ivim()

Download IVIM dataset

fetch_mni_template

dipy.data.fetch_mni_template()

fetch the MNI 2009a T1 and T2, and 2009c T1 and T1 mask files Notes —– The templates were downloaded from the MNI (McGill University) website in July 2015.

The following publications should be referenced when using these templates:

1

VS Fonov, AC Evans, K Botteron, CR Almli, RC McKinstry, DL Collins and BDCG, Unbiased average age-appropriate atlases for pediatric studies, NeuroImage, 54:1053-8119, DOI: 10.1016/j.neuroimage.2010.07.033

2

VS Fonov, AC Evans, RC McKinstry, CR Almli and DL Collins, Unbiased nonlinear average age-appropriate brain templates from birth to adulthood, NeuroImage, 47:S102 Organization for Human Brain Mapping 2009 Annual Meeting, DOI: https://doi.org/10.1016/S1053-8119(09)70884-5

License for the MNI templates:

Copyright (C) 1993-2004, Louis Collins McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. The authors and McGill University make no representations about the suitability of this software for any purpose. It is provided “as is” without express or implied warranty. The authors are not responsible for any data loss, equipment damage, property loss, or injury to subjects or patients resulting from the use or misuse of this software package.

fetch_scil_b0

dipy.data.fetch_scil_b0()

Download b=0 datasets from multiple MR systems (GE, Philips, Siemens) and different magnetic fields (1.5T and 3T)

fetch_sherbrooke_3shell

dipy.data.fetch_sherbrooke_3shell()

Download a 3shell HARDI dataset with 192 gradient direction

fetch_stanford_hardi

dipy.data.fetch_stanford_hardi()

Download a HARDI dataset with 160 gradient directions

fetch_stanford_labels

dipy.data.fetch_stanford_labels()

Download reduced freesurfer aparc image from stanford web site

fetch_stanford_pve_maps

dipy.data.fetch_stanford_pve_maps()

fetch_stanford_t1

dipy.data.fetch_stanford_t1()

fetch_syn_data

dipy.data.fetch_syn_data()

Download t1 and b0 volumes from the same session

fetch_taiwan_ntu_dsi

dipy.data.fetch_taiwan_ntu_dsi()

Download a DSI dataset with 203 gradient directions

fetch_target_tractogram_hcp

dipy.data.fetch_target_tractogram_hcp()

Download tractogram of one of the hcp dataset subjects

fetch_tissue_data

dipy.data.fetch_tissue_data()

Download images to be used for tissue classification

get_3shell_gtab

dipy.data.get_3shell_gtab()

get_bundle_atlas_hcp842

dipy.data.get_bundle_atlas_hcp842()
Returns
file1string
file2string

get_cmap

dipy.data.get_cmap(name)

Make a callable, similar to maptlotlib.pyplot.get_cmap.

get_fnames

dipy.data.get_fnames(name='small_64D')

Provide full paths to example or test datasets.

Parameters
namestr

the filename/s of which dataset to return, one of: - ‘small_64D’ small region of interest nifti,bvecs,bvals 64 directions - ‘small_101D’ small region of interest nifti, bvecs, bvals

101 directions

  • ‘aniso_vox’ volume with anisotropic voxel size as Nifti

  • ‘fornix’ 300 tracks in Trackvis format (from Pittsburgh Brain Competition)

  • ‘gqi_vectors’ the scanner wave vectors needed for a GQI acquisitions of 101 directions tested on Siemens 3T Trio

  • ‘small_25’ small ROI (10x8x2) DTI data (b value 2000, 25 directions)

  • ‘test_piesno’ slice of N=8, K=14 diffusion data

  • ‘reg_c’ small 2D image used for validating registration

  • ‘reg_o’ small 2D image used for validation registration

  • ‘cb_2’ two vectorized cingulum bundles

Returns
fnamestuple

filenames for dataset

Examples

>>> import numpy as np
>>> from dipy.io.image import load_nifti
>>> from dipy.data import get_fnames
>>> fimg, fbvals, fbvecs = get_fnames('small_101D')
>>> bvals=np.loadtxt(fbvals)
>>> bvecs=np.loadtxt(fbvecs).T
>>> data, affine = load_nifti(fimg)
>>> data.shape == (6, 10, 10, 102)
True
>>> bvals.shape == (102,)
True
>>> bvecs.shape == (102, 3)
True

get_gtab_taiwan_dsi

dipy.data.get_gtab_taiwan_dsi()

get_isbi2013_2shell_gtab

dipy.data.get_isbi2013_2shell_gtab()

get_sim_voxels

dipy.data.get_sim_voxels(name='fib1')

provide some simulated voxel data

Parameters
namestr, which file?

‘fib0’, ‘fib1’ or ‘fib2’

Returns
dixdictionary, where dix[‘data’] returns a 2d array

where every row is a simulated voxel with different orientation

Notes

These sim voxels were provided by M.M. Correia using Rician noise.

Examples

>>> from dipy.data import get_sim_voxels
>>> sv=get_sim_voxels('fib1')
>>> sv['data'].shape == (100, 102)
True
>>> sv['fibres']
'1'
>>> sv['gradients'].shape == (102, 3)
True
>>> sv['bvals'].shape == (102,)
True
>>> sv['snr']
'60'
>>> sv2=get_sim_voxels('fib2')
>>> sv2['fibres']
'2'
>>> sv2['snr']
'80'

get_skeleton

dipy.data.get_skeleton(name='C1')

provide skeletons generated from Local Skeleton Clustering (LSC)

Parameters
namestr, ‘C1’ or ‘C3’
Returns
dixdictionary

Examples

>>> from dipy.data import get_skeleton
>>> C=get_skeleton('C1')
>>> len(C.keys())
117
>>> for c in C: break
>>> sorted(C[c].keys())
['N', 'hidden', 'indices', 'most']

get_sphere

dipy.data.get_sphere(name='symmetric362')

provide triangulated spheres

Parameters
namestr

which sphere - one of: * ‘symmetric362’ * ‘symmetric642’ * ‘symmetric724’ * ‘repulsion724’ * ‘repulsion100’ * ‘repulsion200’

Returns
spherea dipy.core.sphere.Sphere class instance

Examples

>>> import numpy as np
>>> from dipy.data import get_sphere
>>> sphere = get_sphere('symmetric362')
>>> verts, faces = sphere.vertices, sphere.faces
>>> verts.shape == (362, 3)
True
>>> faces.shape == (720, 3)
True
>>> verts, faces = get_sphere('not a sphere name') 
Traceback (most recent call last):
    ...
DataError: No sphere called "not a sphere name"

get_target_tractogram_hcp

dipy.data.get_target_tractogram_hcp()
Returns
file1string

gradient_table

dipy.data.gradient_table(bvals, bvecs=None, big_delta=None, small_delta=None, b0_threshold=50, atol=0.01, btens=None)

A general function for creating diffusion MR gradients.

It reads, loads and prepares scanner parameters like the b-values and b-vectors so that they can be useful during the reconstruction process.

Parameters
bvalscan be any of the four options
  1. an array of shape (N,) or (1, N) or (N, 1) with the b-values.

  2. a path for the file which contains an array like the above (1).

  3. an array of shape (N, 4) or (4, N). Then this parameter is considered to be a b-table which contains both bvals and bvecs. In this case the next parameter is skipped.

  4. a path for the file which contains an array like the one at (3).

bvecscan be any of two options
  1. an array of shape (N, 3) or (3, N) with the b-vectors.

  2. a path for the file which contains an array like the previous.

big_deltafloat

acquisition pulse separation time in seconds (default None)

small_deltafloat

acquisition pulse duration time in seconds (default None)

b0_thresholdfloat

All b-values with values less than or equal to bo_threshold are considered as b0s i.e. without diffusion weighting.

atolfloat

All b-vectors need to be unit vectors up to a tolerance.

btenscan be any of three options
  1. a string specifying the shape of the encoding tensor for all volumes in data. Options: ‘LTE’, ‘PTE’, ‘STE’, ‘CTE’ corresponding to linear, planar, spherical, and “cigar-shaped” tensor encoding. Tensors are rotated so that linear and cigar tensors are aligned with the corresponding gradient direction and the planar tensor’s normal is aligned with the corresponding gradient direction. Magnitude is scaled to match the b-value.

  2. an array of strings of shape (N,), (N, 1), or (1, N) specifying encoding tensor shape for each volume separately. N corresponds to the number volumes in data. Options for elements in array: ‘LTE’, ‘PTE’, ‘STE’, ‘CTE’ corresponding to linear, planar, spherical, and “cigar-shaped” tensor encoding. Tensors are rotated so that linear and cigar tensors are aligned with the corresponding gradient direction and the planar tensor’s normal is aligned with the corresponding gradient direction. Magnitude is scaled to match the b-value.

  3. an array of shape (N,3,3) specifying the b-tensor of each volume exactly. N corresponds to the number volumes in data. No rotation or scaling is performed.

Returns
gradientsGradientTable

A GradientTable with all the gradient information.

Notes

  1. Often b0s (b-values which correspond to images without diffusion weighting) have 0 values however in some cases the scanner cannot provide b0s of an exact 0 value and it gives a bit higher values e.g. 6 or 12. This is the purpose of the b0_threshold in the __init__.

  2. We assume that the minimum number of b-values is 7.

  3. B-vectors should be unit vectors.

Examples

>>> from dipy.core.gradients import gradient_table
>>> bvals = 1500 * np.ones(7)
>>> bvals[0] = 0
>>> sq2 = np.sqrt(2) / 2
>>> bvecs = np.array([[0, 0, 0],
...                   [1, 0, 0],
...                   [0, 1, 0],
...                   [0, 0, 1],
...                   [sq2, sq2, 0],
...                   [sq2, 0, sq2],
...                   [0, sq2, sq2]])
>>> gt = gradient_table(bvals, bvecs)
>>> gt.bvecs.shape == bvecs.shape
True
>>> gt = gradient_table(bvals, bvecs.T)
>>> gt.bvecs.shape == bvecs.T.shape
False

load

dipy.data.load(filename, **kwargs)

Load file given filename, guessing at file type

Parameters
filenamestr or os.PathLike

specification of file to load

**kwargskeyword arguments

Keyword arguments to format-specific load

Returns
imgSpatialImage

Image of guessed type

load_nifti

dipy.data.load_nifti(fname, return_img=False, return_voxsize=False, return_coords=False, as_ndarray=True)

Load data and other information from a nifti file.

Parameters
fnamestr

Full path to a nifti file.

return_imgbool, optional

Whether to return the nibabel nifti img object. Default: False

return_voxsize: bool, optional

Whether to return the nifti header zooms. Default: False

return_coordsbool, optional

Whether to return the nifti header aff2axcodes. Default: False

as_ndarray: bool, optional

convert nibabel ArrayProxy to a numpy.ndarray. If you want to save memory and delay this casting, just turn this option to False (default: True)

Returns
A tuple, with (at the most, if all keyword args are set to True):
(data, img.affine, img, vox_size, nib.aff2axcodes(img.affine))

See also

load_nifti_data

loads_compat

dipy.data.loads_compat(bytes)

matlab_life_results

dipy.data.matlab_life_results()

mrtrix_spherical_functions

dipy.data.mrtrix_spherical_functions()

Spherical functions represented by spherical harmonic coefficients and evaluated on a discrete sphere.

Returns
func_coefarray (2, 3, 4, 45)

Functions represented by the coefficients associated with the mxtrix spherical harmonic basis of order 8.

func_discretearray (2, 3, 4, 81)

Functions evaluated on sphere.

sphereSphere

The discrete sphere, points on the surface of a unit sphere, used to evaluate the functions.

Notes

These coefficients were obtained by using the dwi2SH command of mrtrix.

pjoin

dipy.data.pjoin(a, *p)

Join two or more pathname components, inserting ‘/’ as needed. If any component is an absolute path, all previous path components will be discarded. An empty last part will result in a path that ends with a separator.

read_bundles_2_subjects

dipy.data.read_bundles_2_subjects(subj_id='subj_1', metrics=['fa'], bundles=['af.left', 'cst.right', 'cc_1'])

Read images and streamlines from 2 subjects of the SNAIL dataset.

Parameters
subj_idstring

Either subj_1 or subj_2.

metricslist

Either [‘fa’] or [‘t1’] or [‘fa’, ‘t1’]

bundleslist

E.g., [‘af.left’, ‘cst.right’, ‘cc_1’]. See all the available bundles in the exp_bundles_maps/bundles_2_subjects directory of your $HOME/.dipy folder.

Returns
dixdict

Dictionary with data of the metrics and the bundles as keys.

Notes

If you are using these datasets please cite the following publications.

References

1

Renauld, E., M. Descoteaux, M. Bernier, E. Garyfallidis,

K. Whittingstall, “Morphology of thalamus, LGN and optic radiation do not influence EEG alpha waves”, Plos One (under submission), 2015.

2

Garyfallidis, E., O. Ocegueda, D. Wassermann,

M. Descoteaux. Robust and efficient linear registration of fascicles in the space of streamlines , Neuroimage, 117:124-140, 2015.

read_cenir_multib

dipy.data.read_cenir_multib(bvals=None)

Read CENIR multi b-value data.

Parameters
bvalslist or int

The b-values to read from file (200, 400, 1000, 2000, 3000).

Returns
gtaba GradientTable class instance
imgnibabel.Nifti1Image

Notes

Details of the acquisition and processing, and additional meta-data are available through UW researchworks:

https://digital.lib.washington.edu/researchworks/handle/1773/33311

read_cfin_dwi

dipy.data.read_cfin_dwi()

Load CFIN multi b-value DWI data.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_cfin_t1

dipy.data.read_cfin_t1()

Load CFIN T1-weighted data.

Returns
imgobj,

Nifti1Image

read_isbi2013_2shell

dipy.data.read_isbi2013_2shell()

Load ISBI 2013 2-shell synthetic dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_ivim

dipy.data.read_ivim()

Load IVIM dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_mni_template

dipy.data.read_mni_template(version='a', contrast='T2')

Read the MNI template from disk.

Parameters
version: string

There are two MNI templates 2009a and 2009c, so options available are: “a” and “c”.

contrastlist or string, optional

Which of the contrast templates to read. For version “a” two contrasts are available: “T1” and “T2”. Similarly for version “c” there are two options, “T1” and “mask”. You can input contrast as a string or a list

Returns
listcontains the nibabel.Nifti1Image objects requested, according to the

order they were requested in the input.

Notes

The templates were downloaded from the MNI (McGill University) website in July 2015.

The following publications should be referenced when using these templates:

1

VS Fonov, AC Evans, K Botteron, CR Almli, RC McKinstry, DL Collins and BDCG, Unbiased average age-appropriate atlases for pediatric studies, NeuroImage, 54:1053-8119, DOI: 10.1016/j.neuroimage.2010.07.033

2

VS Fonov, AC Evans, RC McKinstry, CR Almli and DL Collins, Unbiased nonlinear average age-appropriate brain templates from birth to adulthood, NeuroImage, 47:S102 Organization for Human Brain Mapping 2009 Annual Meeting, DOI: https://doi.org/10.1016/S1053-8119(09)70884-5

License for the MNI templates:

Copyright (C) 1993-2004, Louis Collins McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. The authors and McGill University make no representations about the suitability of this software for any purpose. It is provided “as is” without express or implied warranty. The authors are not responsible for any data loss, equipment damage, property loss, or injury to subjects or patients resulting from the use or misuse of this software package.

Examples

>>> # Get only the T1 file for version c:
>>> T1 = read_mni_template("c", contrast = "T1") 
>>> # Get both files in this order for version a:
>>> T1, T2 = read_mni_template(contrast = ["T1", "T2"]) 

read_scil_b0

dipy.data.read_scil_b0()

Load GE 3T b0 image form the scil b0 dataset.

Returns
imgobj,

Nifti1Image

read_sherbrooke_3shell

dipy.data.read_sherbrooke_3shell()

Load Sherbrooke 3-shell HARDI dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_stanford_hardi

dipy.data.read_stanford_hardi()

Load Stanford HARDI dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_stanford_labels

dipy.data.read_stanford_labels()

Read stanford hardi data and label map.

read_stanford_pve_maps

dipy.data.read_stanford_pve_maps()

read_stanford_t1

dipy.data.read_stanford_t1()

read_syn_data

dipy.data.read_syn_data()

Load t1 and b0 volumes from the same session.

Returns
t1obj,

Nifti1Image

b0obj,

Nifti1Image

read_taiwan_ntu_dsi

dipy.data.read_taiwan_ntu_dsi()

Load Taiwan NTU dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_tissue_data

dipy.data.read_tissue_data(contrast='T1')

Load images to be used for tissue classification

Parameters
constraststr

‘T1’, ‘T1 denoised’ or ‘Anisotropic Power’

Returns
imageobj,

Nifti1Image

relist_streamlines

dipy.data.relist_streamlines(points, offsets)

Given a representation of a set of streamlines as a large array and an offsets array return the streamlines as a list of shorter arrays.

Parameters
pointsarray
offsetsarray
Returns
streamlines: sequence

two_cingulum_bundles

dipy.data.two_cingulum_bundles()

FetcherError

class dipy.data.fetcher.FetcherError

Bases: Exception

Attributes
args

Methods

with_traceback

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

__init__(*args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

tqdm

class dipy.data.fetcher.tqdm(iterable=None, desc=None, total=None, leave=True, file=None, ncols=None, mininterval=0.1, maxinterval=10.0, miniters=None, ascii=None, disable=False, unit='it', unit_scale=False, dynamic_ncols=False, smoothing=0.3, bar_format=None, initial=0, position=None, postfix=None, unit_divisor=1000, write_bytes=None, lock_args=None, gui=False, **kwargs)

Bases: tqdm.utils.Comparable

Decorate an iterable object, returning an iterator which acts exactly like the original iterable, but prints a dynamically updating progressbar every time a value is requested.

Attributes
format_dict

Public API for read-only member access.

monitor

Methods

clear([nolock])

Clear current bar display.

close()

Cleanup and (if leave=False) close the progressbar.

display([msg, pos])

Use self.sp to display msg in the specified pos.

ema(x[, mu, alpha])

Exponential moving average: smoothing to give progressively lower weights to older values.

external_write_mode([file, nolock])

Disable tqdm within context and refresh tqdm when exits.

format_interval(t)

Formats a number of seconds as a clock time, [H:]MM:SS

format_meter(n, total, elapsed[, ncols, …])

Return a string-based progress bar given some parameters

format_num(n)

Intelligent scientific notation (.3g).

format_sizeof(num[, suffix, divisor])

Formats a number (greater than unity) with SI Order of Magnitude prefixes.

get_lock()

Get the global lock.

pandas(*targs, **tkwargs)

Registers the given tqdm class with

refresh([nolock, lock_args])

Force refresh the display of this bar.

reset([total])

Resets to 0 iterations for repeated use.

set_description([desc, refresh])

Set/modify description of the progress bar.

set_description_str([desc, refresh])

Set/modify description without ‘: ‘ appended.

set_lock(lock)

Set the global lock.

set_postfix([ordered_dict, refresh])

Set/modify postfix (additional stats) with automatic formatting based on datatype.

set_postfix_str([s, refresh])

Postfix without dictionary expansion, similar to prefix handling.

status_printer(file)

Manage the printing and in-place updating of a line of characters.

unpause()

Restart tqdm timer from last print time.

update([n])

Manually update the progress bar, useful for streams such as reading files.

wrapattr(stream, method[, total, bytes])

stream : file-like object.

write(s[, file, end, nolock])

Print a message via tqdm (without overlap with bars).

moveto

__init__(iterable=None, desc=None, total=None, leave=True, file=None, ncols=None, mininterval=0.1, maxinterval=10.0, miniters=None, ascii=None, disable=False, unit='it', unit_scale=False, dynamic_ncols=False, smoothing=0.3, bar_format=None, initial=0, position=None, postfix=None, unit_divisor=1000, write_bytes=None, lock_args=None, gui=False, **kwargs)
Parameters
iterableiterable, optional

Iterable to decorate with a progressbar. Leave blank to manually manage the updates.

descstr, optional

Prefix for the progressbar.

totalint or float, optional

The number of expected iterations. If unspecified, len(iterable) is used if possible. If float(“inf”) or as a last resort, only basic progress statistics are displayed (no ETA, no progressbar). If gui is True and this parameter needs subsequent updating, specify an initial arbitrary large positive number, e.g. 9e9.

leavebool, optional

If [default: True], keeps all traces of the progressbar upon termination of iteration. If None, will leave only if position is 0.

fileio.TextIOWrapper or io.StringIO, optional

Specifies where to output the progress messages (default: sys.stderr). Uses file.write(str) and file.flush() methods. For encoding, see write_bytes.

ncolsint, optional

The width of the entire output message. If specified, dynamically resizes the progressbar to stay within this bound. If unspecified, attempts to use environment width. The fallback is a meter width of 10 and no limit for the counter and statistics. If 0, will not print any meter (only stats).

minintervalfloat, optional

Minimum progress display update interval [default: 0.1] seconds.

maxintervalfloat, optional

Maximum progress display update interval [default: 10] seconds. Automatically adjusts miniters to correspond to mininterval after long display update lag. Only works if dynamic_miniters or monitor thread is enabled.

minitersint or float, optional

Minimum progress display update interval, in iterations. If 0 and dynamic_miniters, will automatically adjust to equal mininterval (more CPU efficient, good for tight loops). If > 0, will skip display of specified number of iterations. Tweak this and mininterval to get very efficient loops. If your progress is erratic with both fast and slow iterations (network, skipping items, etc) you should set miniters=1.

asciibool or str, optional

If unspecified or False, use unicode (smooth blocks) to fill the meter. The fallback is to use ASCII characters ” 123456789#”.

disablebool, optional

Whether to disable the entire progressbar wrapper [default: False]. If set to None, disable on non-TTY.

unitstr, optional

String that will be used to define the unit of each iteration [default: it].

unit_scalebool or int or float, optional

If 1 or True, the number of iterations will be reduced/scaled automatically and a metric prefix following the International System of Units standard will be added (kilo, mega, etc.) [default: False]. If any other non-zero number, will scale total and n.

dynamic_ncolsbool, optional

If set, constantly alters ncols to the environment (allowing for window resizes) [default: False].

smoothingfloat, optional

Exponential moving average smoothing factor for speed estimates (ignored in GUI mode). Ranges from 0 (average speed) to 1 (current/instantaneous speed) [default: 0.3].

bar_formatstr, optional

Specify a custom bar string formatting. May impact performance. [default: ‘{l_bar}{bar}{r_bar}’], where l_bar=’{desc}: {percentage:3.0f}%|’ and r_bar=’| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, ‘

‘{rate_fmt}{postfix}]’

Possible vars: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,

percentage, elapsed, elapsed_s, ncols, desc, unit, rate, rate_fmt, rate_noinv, rate_noinv_fmt, rate_inv, rate_inv_fmt, postfix, unit_divisor, remaining, remaining_s.

Note that a trailing “: ” is automatically removed after {desc} if the latter is empty.

initialint or float, optional

The initial counter value. Useful when restarting a progress bar [default: 0]. If using float, consider specifying {n:.3f} or similar in bar_format, or specifying unit_scale.

positionint, optional

Specify the line offset to print this bar (starting from 0) Automatic if unspecified. Useful to manage multiple bars at once (eg, from threads).

postfixdict or *, optional

Specify additional stats to display at the end of the bar. Calls set_postfix(**postfix) if possible (dict).

unit_divisorfloat, optional

[default: 1000], ignored unless unit_scale is True.

write_bytesbool, optional

If (default: None) and file is unspecified, bytes will be written in Python 2. If True will also write bytes. In all other cases will default to unicode.

lock_argstuple, optional

Passed to refresh for intermediate output (initialisation, iterating, and updating).

guibool, optional

WARNING: internal parameter - do not use. Use tqdm.gui.tqdm(…) instead. If set, will attempt to use matplotlib animations for a graphical output [default: False].

Returns
outdecorated iterator.
clear(nolock=False)

Clear current bar display.

close()

Cleanup and (if leave=False) close the progressbar.

display(msg=None, pos=None)

Use self.sp to display msg in the specified pos.

Consider overloading this function when inheriting to use e.g.: self.some_frontend(**self.format_dict) instead of self.sp.

Parameters
msgstr, optional. What to display (default: repr(self)).
posint, optional. Position to moveto

(default: abs(self.pos)).

static ema(x, mu=None, alpha=0.3)

Exponential moving average: smoothing to give progressively lower weights to older values.

Parameters
xfloat

New value to include in EMA.

mufloat, optional

Previous EMA value.

alphafloat, optional

Smoothing factor in range [0, 1], [default: 0.3]. Increase to give more weight to recent values. Ranges from 0 (yields mu) to 1 (yields x).

classmethod external_write_mode(file=None, nolock=False)

Disable tqdm within context and refresh tqdm when exits. Useful when writing to standard output stream

property format_dict

Public API for read-only member access.

static format_interval(t)

Formats a number of seconds as a clock time, [H:]MM:SS

Parameters
tint

Number of seconds.

Returns
outstr

[H:]MM:SS

static format_meter(n, total, elapsed, ncols=None, prefix='', ascii=False, unit='it', unit_scale=False, rate=None, bar_format=None, postfix=None, unit_divisor=1000, **extra_kwargs)

Return a string-based progress bar given some parameters

Parameters
nint or float

Number of finished iterations.

totalint or float

The expected total number of iterations. If meaningless (None), only basic progress statistics are displayed (no ETA).

elapsedfloat

Number of seconds passed since start.

ncolsint, optional

The width of the entire output message. If specified, dynamically resizes {bar} to stay within this bound [default: None]. If 0, will not print any bar (only stats). The fallback is {bar:10}.

prefixstr, optional

Prefix message (included in total width) [default: ‘’]. Use as {desc} in bar_format string.

asciibool, optional or str, optional

If not set, use unicode (smooth blocks) to fill the meter [default: False]. The fallback is to use ASCII characters ” 123456789#”.

unitstr, optional

The iteration unit [default: ‘it’].

unit_scalebool or int or float, optional

If 1 or True, the number of iterations will be printed with an appropriate SI metric prefix (k = 10^3, M = 10^6, etc.) [default: False]. If any other non-zero number, will scale total and n.

ratefloat, optional

Manual override for iteration rate. If [default: None], uses n/elapsed.

bar_formatstr, optional

Specify a custom bar string formatting. May impact performance. [default: ‘{l_bar}{bar}{r_bar}’], where l_bar=’{desc}: {percentage:3.0f}%|’ and r_bar=’| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, ‘

‘{rate_fmt}{postfix}]’

Possible vars: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,

percentage, elapsed, elapsed_s, ncols, desc, unit, rate, rate_fmt, rate_noinv, rate_noinv_fmt, rate_inv, rate_inv_fmt, postfix, unit_divisor, remaining, remaining_s.

Note that a trailing “: ” is automatically removed after {desc} if the latter is empty.

postfix*, optional

Similar to prefix, but placed at the end (e.g. for additional stats). Note: postfix is usually a string (not a dict) for this method, and will if possible be set to postfix = ‘, ‘ + postfix. However other types are supported (#382).

unit_divisorfloat, optional

[default: 1000], ignored unless unit_scale is True.

Returns
outFormatted meter and stats, ready to display.
static format_num(n)

Intelligent scientific notation (.3g).

Parameters
nint or float or Numeric

A Number.

Returns
outstr

Formatted number.

static format_sizeof(num, suffix='', divisor=1000)

Formats a number (greater than unity) with SI Order of Magnitude prefixes.

Parameters
numfloat

Number ( >= 1) to format.

suffixstr, optional

Post-postfix [default: ‘’].

divisorfloat, optional

Divisor between prefixes [default: 1000].

Returns
outstr

Number with Order of Magnitude SI unit postfix.

classmethod get_lock()

Get the global lock. Construct it if it does not exist.

monitor = None
monitor_interval = 10
moveto(n)
classmethod pandas(*targs, **tkwargs)
Registers the given tqdm class with

pandas.core. ( frame.DataFrame | series.Series | groupby.(generic.)DataFrameGroupBy | groupby.(generic.)SeriesGroupBy ).progress_apply

A new instance will be create every time progress_apply is called, and each instance will automatically close() upon completion.

Parameters
targs, tkwargsarguments for the tqdm instance

References

https://stackoverflow.com/questions/18603270/ progress-indicator-during-pandas-operations-python

Examples

>>> import pandas as pd
>>> import numpy as np
>>> from tqdm import tqdm
>>> from tqdm.gui import tqdm as tqdm_gui
>>>
>>> df = pd.DataFrame(np.random.randint(0, 100, (100000, 6)))
>>> tqdm.pandas(ncols=50)  # can use tqdm_gui, optional kwargs, etc
>>> # Now you can use `progress_apply` instead of `apply`
>>> df.groupby(0).progress_apply(lambda x: x**2)
refresh(nolock=False, lock_args=None)

Force refresh the display of this bar.

Parameters
nolockbool, optional

If True, does not lock. If [default: False]: calls acquire() on internal lock.

lock_argstuple, optional

Passed to internal lock’s acquire(). If specified, will only display() if acquire() returns True.

reset(total=None)

Resets to 0 iterations for repeated use.

Consider combining with leave=True.

Parameters
totalint or float, optional. Total to use for the new bar.
set_description(desc=None, refresh=True)

Set/modify description of the progress bar.

Parameters
descstr, optional
refreshbool, optional

Forces refresh [default: True].

set_description_str(desc=None, refresh=True)

Set/modify description without ‘: ‘ appended.

classmethod set_lock(lock)

Set the global lock.

set_postfix(ordered_dict=None, refresh=True, **kwargs)

Set/modify postfix (additional stats) with automatic formatting based on datatype.

Parameters
ordered_dictdict or OrderedDict, optional
refreshbool, optional

Forces refresh [default: True].

kwargsdict, optional
set_postfix_str(s='', refresh=True)

Postfix without dictionary expansion, similar to prefix handling.

static status_printer(file)

Manage the printing and in-place updating of a line of characters. Note that if the string is longer than a line, then in-place updating may not work (it will print a new line at each refresh).

unpause()

Restart tqdm timer from last print time.

update(n=1)

Manually update the progress bar, useful for streams such as reading files. E.g.: >>> t = tqdm(total=filesize) # Initialise >>> for current_buffer in stream: … … … t.update(len(current_buffer)) >>> t.close() The last line is highly recommended, but possibly not necessary if t.update() will be called in such a way that filesize will be exactly reached and printed.

Parameters
nint or float, optional

Increment to add to the internal counter of iterations [default: 1]. If using float, consider specifying {n:.3f} or similar in bar_format, or specifying unit_scale.

classmethod wrapattr(stream, method, total=None, bytes=True, **tkwargs)

stream : file-like object. method : str, “read” or “write”. The result of read() and

the first argument of write() should have a len().

>>> with tqdm.wrapattr(file_obj, "read", total=file_obj.size) as fobj:
...     while True:
...         chunk = fobj.read(chunk_size)
...         if not chunk:
...             break
classmethod write(s, file=None, end='\n', nolock=False)

Print a message via tqdm (without overlap with bars).

check_md5

dipy.data.fetcher.check_md5(filename, stored_md5=None)

Computes the md5 of filename and check if it matches with the supplied string md5

Parameters
filenamestring

Path to a file.

md5string

Known md5 of filename to check against. If None (default), checking is skipped

copyfileobj

dipy.data.fetcher.copyfileobj(fsrc, fdst, length=16384)

copy data from file-like object fsrc to file-like object fdst

copyfileobj_withprogress

dipy.data.fetcher.copyfileobj_withprogress(fsrc, fdst, total_length, length=16384)

fetch_bundle_atlas_hcp842

dipy.data.fetcher.fetch_bundle_atlas_hcp842()

Download atlas tractogram from the hcp842 dataset with 80 bundles

fetch_bundle_fa_hcp

dipy.data.fetcher.fetch_bundle_fa_hcp()

Download map of FA within two bundles in oneof the hcp dataset subjects

fetch_bundles_2_subjects

dipy.data.fetcher.fetch_bundles_2_subjects()

Download 2 subjects from the SNAIL dataset with their bundles

fetch_cenir_multib

dipy.data.fetcher.fetch_cenir_multib(with_raw=False)

Fetch ‘HCP-like’ data, collected at multiple b-values.

Parameters
with_rawbool

Whether to fetch the raw data. Per default, this is False, which means that only eddy-current/motion corrected data is fetched

Notes

Details of the acquisition and processing, and additional meta-data are available through UW researchworks:

https://digital.lib.washington.edu/researchworks/handle/1773/33311

fetch_cfin_multib

dipy.data.fetcher.fetch_cfin_multib()

Download CFIN multi b-value diffusion data

fetch_data

dipy.data.fetcher.fetch_data(files, folder, data_size=None)

Downloads files to folder and checks their md5 checksums

Parameters
filesdictionary

For each file in files the value should be (url, md5). The file will be downloaded from url if the file does not already exist or if the file exists but the md5 checksum does not match.

folderstr

The directory where to save the file, the directory will be created if it does not already exist.

data_sizestr, optional

A string describing the size of the data (e.g. “91 MB”) to be logged to the screen. Default does not produce any information about data size.

Raises
——
FetcherError

Raises if the md5 checksum of the file does not match the expected value. The downloaded file is not deleted when this error is raised.

fetch_file_formats

dipy.data.fetcher.fetch_file_formats()

Download 5 bundles in various file formats and their reference

fetch_gold_standard_io

dipy.data.fetcher.fetch_gold_standard_io()

Downloads the gold standard for streamlines io testing.

fetch_isbi2013_2shell

dipy.data.fetcher.fetch_isbi2013_2shell()

Download a 2-shell software phantom dataset

fetch_ivim

dipy.data.fetcher.fetch_ivim()

Download IVIM dataset

fetch_mni_template

dipy.data.fetcher.fetch_mni_template()

fetch the MNI 2009a T1 and T2, and 2009c T1 and T1 mask files Notes —– The templates were downloaded from the MNI (McGill University) website in July 2015.

The following publications should be referenced when using these templates:

1

VS Fonov, AC Evans, K Botteron, CR Almli, RC McKinstry, DL Collins and BDCG, Unbiased average age-appropriate atlases for pediatric studies, NeuroImage, 54:1053-8119, DOI: 10.1016/j.neuroimage.2010.07.033

2

VS Fonov, AC Evans, RC McKinstry, CR Almli and DL Collins, Unbiased nonlinear average age-appropriate brain templates from birth to adulthood, NeuroImage, 47:S102 Organization for Human Brain Mapping 2009 Annual Meeting, DOI: https://doi.org/10.1016/S1053-8119(09)70884-5

License for the MNI templates:

Copyright (C) 1993-2004, Louis Collins McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. The authors and McGill University make no representations about the suitability of this software for any purpose. It is provided “as is” without express or implied warranty. The authors are not responsible for any data loss, equipment damage, property loss, or injury to subjects or patients resulting from the use or misuse of this software package.

fetch_qtdMRI_test_retest_2subjects

dipy.data.fetcher.fetch_qtdMRI_test_retest_2subjects()

Downloads test-retest qt-dMRI acquisitions of two C57Bl6 mice.

fetch_scil_b0

dipy.data.fetcher.fetch_scil_b0()

Download b=0 datasets from multiple MR systems (GE, Philips, Siemens) and different magnetic fields (1.5T and 3T)

fetch_sherbrooke_3shell

dipy.data.fetcher.fetch_sherbrooke_3shell()

Download a 3shell HARDI dataset with 192 gradient direction

fetch_stanford_hardi

dipy.data.fetcher.fetch_stanford_hardi()

Download a HARDI dataset with 160 gradient directions

fetch_stanford_labels

dipy.data.fetcher.fetch_stanford_labels()

Download reduced freesurfer aparc image from stanford web site

fetch_stanford_pve_maps

dipy.data.fetcher.fetch_stanford_pve_maps()

fetch_stanford_t1

dipy.data.fetcher.fetch_stanford_t1()

fetch_syn_data

dipy.data.fetcher.fetch_syn_data()

Download t1 and b0 volumes from the same session

fetch_taiwan_ntu_dsi

dipy.data.fetcher.fetch_taiwan_ntu_dsi()

Download a DSI dataset with 203 gradient directions

fetch_target_tractogram_hcp

dipy.data.fetcher.fetch_target_tractogram_hcp()

Download tractogram of one of the hcp dataset subjects

fetch_tissue_data

dipy.data.fetcher.fetch_tissue_data()

Download images to be used for tissue classification

get_bundle_atlas_hcp842

dipy.data.fetcher.get_bundle_atlas_hcp842()
Returns
file1string
file2string

get_file_formats

dipy.data.fetcher.get_file_formats()
Returns
bundles_listall bundles (list)
ref_anatreference

get_fnames

dipy.data.fetcher.get_fnames(name='small_64D')

Provide full paths to example or test datasets.

Parameters
namestr

the filename/s of which dataset to return, one of: - ‘small_64D’ small region of interest nifti,bvecs,bvals 64 directions - ‘small_101D’ small region of interest nifti, bvecs, bvals

101 directions

  • ‘aniso_vox’ volume with anisotropic voxel size as Nifti

  • ‘fornix’ 300 tracks in Trackvis format (from Pittsburgh Brain Competition)

  • ‘gqi_vectors’ the scanner wave vectors needed for a GQI acquisitions of 101 directions tested on Siemens 3T Trio

  • ‘small_25’ small ROI (10x8x2) DTI data (b value 2000, 25 directions)

  • ‘test_piesno’ slice of N=8, K=14 diffusion data

  • ‘reg_c’ small 2D image used for validating registration

  • ‘reg_o’ small 2D image used for validation registration

  • ‘cb_2’ two vectorized cingulum bundles

Returns
fnamestuple

filenames for dataset

Examples

>>> import numpy as np
>>> from dipy.io.image import load_nifti
>>> from dipy.data import get_fnames
>>> fimg, fbvals, fbvecs = get_fnames('small_101D')
>>> bvals=np.loadtxt(fbvals)
>>> bvecs=np.loadtxt(fbvecs).T
>>> data, affine = load_nifti(fimg)
>>> data.shape == (6, 10, 10, 102)
True
>>> bvals.shape == (102,)
True
>>> bvecs.shape == (102, 3)
True

get_target_tractogram_hcp

dipy.data.fetcher.get_target_tractogram_hcp()
Returns
file1string

get_two_hcp842_bundles

dipy.data.fetcher.get_two_hcp842_bundles()
Returns
file1string
file2string

gradient_table

dipy.data.fetcher.gradient_table(bvals, bvecs=None, big_delta=None, small_delta=None, b0_threshold=50, atol=0.01, btens=None)

A general function for creating diffusion MR gradients.

It reads, loads and prepares scanner parameters like the b-values and b-vectors so that they can be useful during the reconstruction process.

Parameters
bvalscan be any of the four options
  1. an array of shape (N,) or (1, N) or (N, 1) with the b-values.

  2. a path for the file which contains an array like the above (1).

  3. an array of shape (N, 4) or (4, N). Then this parameter is considered to be a b-table which contains both bvals and bvecs. In this case the next parameter is skipped.

  4. a path for the file which contains an array like the one at (3).

bvecscan be any of two options
  1. an array of shape (N, 3) or (3, N) with the b-vectors.

  2. a path for the file which contains an array like the previous.

big_deltafloat

acquisition pulse separation time in seconds (default None)

small_deltafloat

acquisition pulse duration time in seconds (default None)

b0_thresholdfloat

All b-values with values less than or equal to bo_threshold are considered as b0s i.e. without diffusion weighting.

atolfloat

All b-vectors need to be unit vectors up to a tolerance.

btenscan be any of three options
  1. a string specifying the shape of the encoding tensor for all volumes in data. Options: ‘LTE’, ‘PTE’, ‘STE’, ‘CTE’ corresponding to linear, planar, spherical, and “cigar-shaped” tensor encoding. Tensors are rotated so that linear and cigar tensors are aligned with the corresponding gradient direction and the planar tensor’s normal is aligned with the corresponding gradient direction. Magnitude is scaled to match the b-value.

  2. an array of strings of shape (N,), (N, 1), or (1, N) specifying encoding tensor shape for each volume separately. N corresponds to the number volumes in data. Options for elements in array: ‘LTE’, ‘PTE’, ‘STE’, ‘CTE’ corresponding to linear, planar, spherical, and “cigar-shaped” tensor encoding. Tensors are rotated so that linear and cigar tensors are aligned with the corresponding gradient direction and the planar tensor’s normal is aligned with the corresponding gradient direction. Magnitude is scaled to match the b-value.

  3. an array of shape (N,3,3) specifying the b-tensor of each volume exactly. N corresponds to the number volumes in data. No rotation or scaling is performed.

Returns
gradientsGradientTable

A GradientTable with all the gradient information.

Notes

  1. Often b0s (b-values which correspond to images without diffusion weighting) have 0 values however in some cases the scanner cannot provide b0s of an exact 0 value and it gives a bit higher values e.g. 6 or 12. This is the purpose of the b0_threshold in the __init__.

  2. We assume that the minimum number of b-values is 7.

  3. B-vectors should be unit vectors.

Examples

>>> from dipy.core.gradients import gradient_table
>>> bvals = 1500 * np.ones(7)
>>> bvals[0] = 0
>>> sq2 = np.sqrt(2) / 2
>>> bvecs = np.array([[0, 0, 0],
...                   [1, 0, 0],
...                   [0, 1, 0],
...                   [0, 0, 1],
...                   [sq2, sq2, 0],
...                   [sq2, 0, sq2],
...                   [0, sq2, sq2]])
>>> gt = gradient_table(bvals, bvecs)
>>> gt.bvecs.shape == bvecs.shape
True
>>> gt = gradient_table(bvals, bvecs.T)
>>> gt.bvecs.shape == bvecs.T.shape
False

gradient_table_from_gradient_strength_bvecs

dipy.data.fetcher.gradient_table_from_gradient_strength_bvecs(gradient_strength, bvecs, big_delta, small_delta, b0_threshold=50, atol=0.01)

A general function for creating diffusion MR gradients.

It reads, loads and prepares scanner parameters like the b-values and b-vectors so that they can be useful during the reconstruction process.

Parameters
gradient_strengthan array of shape (N,),

gradient strength given in T/mm

bvecscan be any of two options
  1. an array of shape (N, 3) or (3, N) with the b-vectors.

  2. a path for the file which contains an array like the previous.

big_deltafloat or array of shape (N,)

acquisition pulse separation time in seconds

small_deltafloat

acquisition pulse duration time in seconds

b0_thresholdfloat

All b-values with values less than or equal to bo_threshold are considered as b0s i.e. without diffusion weighting.

atolfloat

All b-vectors need to be unit vectors up to a tolerance.

Returns
gradientsGradientTable

A GradientTable with all the gradient information.

Notes

  1. Often b0s (b-values which correspond to images without diffusion weighting) have 0 values however in some cases the scanner cannot provide b0s of an exact 0 value and it gives a bit higher values e.g. 6 or 12. This is the purpose of the b0_threshold in the __init__.

  2. We assume that the minimum number of b-values is 7.

  3. B-vectors should be unit vectors.

Examples

>>> from dipy.core.gradients import (
...    gradient_table_from_gradient_strength_bvecs)
>>> gradient_strength = .03e-3 * np.ones(7)  # clinical strength at 30 mT/m
>>> big_delta = .03  # pulse separation of 30ms
>>> small_delta = 0.01  # pulse duration of 10ms
>>> gradient_strength[0] = 0
>>> sq2 = np.sqrt(2) / 2
>>> bvecs = np.array([[0, 0, 0],
...                   [1, 0, 0],
...                   [0, 1, 0],
...                   [0, 0, 1],
...                   [sq2, sq2, 0],
...                   [sq2, 0, sq2],
...                   [0, sq2, sq2]])
>>> gt = gradient_table_from_gradient_strength_bvecs(
...     gradient_strength, bvecs, big_delta, small_delta)

load_nifti

dipy.data.fetcher.load_nifti(fname, return_img=False, return_voxsize=False, return_coords=False, as_ndarray=True)

Load data and other information from a nifti file.

Parameters
fnamestr

Full path to a nifti file.

return_imgbool, optional

Whether to return the nibabel nifti img object. Default: False

return_voxsize: bool, optional

Whether to return the nifti header zooms. Default: False

return_coordsbool, optional

Whether to return the nifti header aff2axcodes. Default: False

as_ndarray: bool, optional

convert nibabel ArrayProxy to a numpy.ndarray. If you want to save memory and delay this casting, just turn this option to False (default: True)

Returns
A tuple, with (at the most, if all keyword args are set to True):
(data, img.affine, img, vox_size, nib.aff2axcodes(img.affine))

See also

load_nifti_data

load_nifti_data

dipy.data.fetcher.load_nifti_data(fname, as_ndarray=True)

Load only the data array from a nifti file.

Parameters
fnamestr

Full path to the file.

as_ndarray: bool, optional

convert nibabel ArrayProxy to a numpy.ndarray. If you want to save memory and delay this casting, just turn this option to False (default: True)

Returns
data: np.ndarray or nib.ArrayProxy

See also

load_nifti

md5

dipy.data.fetcher.md5()

Returns a md5 hash object; optionally initialized with a string

pjoin

dipy.data.fetcher.pjoin(a, *p)

Join two or more pathname components, inserting ‘/’ as needed. If any component is an absolute path, all previous path components will be discarded. An empty last part will result in a path that ends with a separator.

read_bundles_2_subjects

dipy.data.fetcher.read_bundles_2_subjects(subj_id='subj_1', metrics=['fa'], bundles=['af.left', 'cst.right', 'cc_1'])

Read images and streamlines from 2 subjects of the SNAIL dataset.

Parameters
subj_idstring

Either subj_1 or subj_2.

metricslist

Either [‘fa’] or [‘t1’] or [‘fa’, ‘t1’]

bundleslist

E.g., [‘af.left’, ‘cst.right’, ‘cc_1’]. See all the available bundles in the exp_bundles_maps/bundles_2_subjects directory of your $HOME/.dipy folder.

Returns
dixdict

Dictionary with data of the metrics and the bundles as keys.

Notes

If you are using these datasets please cite the following publications.

References

1

Renauld, E., M. Descoteaux, M. Bernier, E. Garyfallidis,

K. Whittingstall, “Morphology of thalamus, LGN and optic radiation do not influence EEG alpha waves”, Plos One (under submission), 2015.

2

Garyfallidis, E., O. Ocegueda, D. Wassermann,

M. Descoteaux. Robust and efficient linear registration of fascicles in the space of streamlines , Neuroimage, 117:124-140, 2015.

read_bvals_bvecs

dipy.data.fetcher.read_bvals_bvecs(fbvals, fbvecs)

Read b-values and b-vectors from disk.

Parameters
fbvalsstr

Full path to file with b-values. None to not read bvals.

fbvecsstr

Full path of file with b-vectors. None to not read bvecs.

Returns
bvalsarray, (N,) or None
bvecsarray, (N, 3) or None

Notes

Files can be either ‘.bvals’/’.bvecs’ or ‘.txt’ or ‘.npy’ (containing arrays stored with the appropriate values).

read_cenir_multib

dipy.data.fetcher.read_cenir_multib(bvals=None)

Read CENIR multi b-value data.

Parameters
bvalslist or int

The b-values to read from file (200, 400, 1000, 2000, 3000).

Returns
gtaba GradientTable class instance
imgnibabel.Nifti1Image

Notes

Details of the acquisition and processing, and additional meta-data are available through UW researchworks:

https://digital.lib.washington.edu/researchworks/handle/1773/33311

read_cfin_dwi

dipy.data.fetcher.read_cfin_dwi()

Load CFIN multi b-value DWI data.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_cfin_t1

dipy.data.fetcher.read_cfin_t1()

Load CFIN T1-weighted data.

Returns
imgobj,

Nifti1Image

read_isbi2013_2shell

dipy.data.fetcher.read_isbi2013_2shell()

Load ISBI 2013 2-shell synthetic dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_ivim

dipy.data.fetcher.read_ivim()

Load IVIM dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_mni_template

dipy.data.fetcher.read_mni_template(version='a', contrast='T2')

Read the MNI template from disk.

Parameters
version: string

There are two MNI templates 2009a and 2009c, so options available are: “a” and “c”.

contrastlist or string, optional

Which of the contrast templates to read. For version “a” two contrasts are available: “T1” and “T2”. Similarly for version “c” there are two options, “T1” and “mask”. You can input contrast as a string or a list

Returns
listcontains the nibabel.Nifti1Image objects requested, according to the

order they were requested in the input.

Notes

The templates were downloaded from the MNI (McGill University) website in July 2015.

The following publications should be referenced when using these templates:

1

VS Fonov, AC Evans, K Botteron, CR Almli, RC McKinstry, DL Collins and BDCG, Unbiased average age-appropriate atlases for pediatric studies, NeuroImage, 54:1053-8119, DOI: 10.1016/j.neuroimage.2010.07.033

2

VS Fonov, AC Evans, RC McKinstry, CR Almli and DL Collins, Unbiased nonlinear average age-appropriate brain templates from birth to adulthood, NeuroImage, 47:S102 Organization for Human Brain Mapping 2009 Annual Meeting, DOI: https://doi.org/10.1016/S1053-8119(09)70884-5

License for the MNI templates:

Copyright (C) 1993-2004, Louis Collins McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. The authors and McGill University make no representations about the suitability of this software for any purpose. It is provided “as is” without express or implied warranty. The authors are not responsible for any data loss, equipment damage, property loss, or injury to subjects or patients resulting from the use or misuse of this software package.

Examples

>>> # Get only the T1 file for version c:
>>> T1 = read_mni_template("c", contrast = "T1") 
>>> # Get both files in this order for version a:
>>> T1, T2 = read_mni_template(contrast = ["T1", "T2"]) 

read_qtdMRI_test_retest_2subjects

dipy.data.fetcher.read_qtdMRI_test_retest_2subjects()

Load test-retest qt-dMRI acquisitions of two C57Bl6 mice. These datasets were used to study test-retest reproducibility of time-dependent q-space indices (q:math:` au`-indices) in the corpus callosum of two mice [1]. The data itself and its details are publicly available and can be cited at [2].

The test-retest diffusion MRI spin echo sequences were acquired from two C57Bl6 wild-type mice on an 11.7 Tesla Bruker scanner. The test and retest acquisition were taken 48 hours from each other. The (processed) data consists of 80x160x5 voxels of size 110x110x500μm. Each data set consists of 515 Diffusion-Weighted Images (DWIs) spread over 35 acquisition shells. The shells are spread over 7 gradient strength shells with a maximum gradient strength of 491 mT/m, 5 pulse separation shells between [10.8 - 20.0]ms, and a pulse length of 5ms. We manually created a brain mask and corrected the data from eddy currents and motion artifacts using FSL’s eddy. A region of interest was then drawn in the middle slice in the corpus callosum, where the tissue is reasonably coherent.

Returns
datalist of length 4

contains the dwi datasets ordered as (subject1_test, subject1_retest, subject2_test, subject2_retest)

cc_maskslist of length 4

contains the corpus callosum masks ordered in the same order as data.

gtabslist of length 4

contains the qt-dMRI gradient tables of the data sets.

References

1

Fick, Rutger HJ, et al. “Non-Parametric GraphNet-Regularized Representation of dMRI in Space and Time”, Medical Image Analysis, 2017.

2

Wassermann, Demian, et al., “Test-Retest qt-dMRI datasets for `Non-Parametric GraphNet-Regularized Representation of dMRI in Space and Time’”. doi:10.5281/zenodo.996889, 2017.

read_scil_b0

dipy.data.fetcher.read_scil_b0()

Load GE 3T b0 image form the scil b0 dataset.

Returns
imgobj,

Nifti1Image

read_sherbrooke_3shell

dipy.data.fetcher.read_sherbrooke_3shell()

Load Sherbrooke 3-shell HARDI dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_siemens_scil_b0

dipy.data.fetcher.read_siemens_scil_b0()

Load Siemens 1.5T b0 image from the scil b0 dataset.

Returns
imgobj,

Nifti1Image

read_stanford_hardi

dipy.data.fetcher.read_stanford_hardi()

Load Stanford HARDI dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_stanford_labels

dipy.data.fetcher.read_stanford_labels()

Read stanford hardi data and label map.

read_stanford_pve_maps

dipy.data.fetcher.read_stanford_pve_maps()

read_stanford_t1

dipy.data.fetcher.read_stanford_t1()

read_syn_data

dipy.data.fetcher.read_syn_data()

Load t1 and b0 volumes from the same session.

Returns
t1obj,

Nifti1Image

b0obj,

Nifti1Image

read_taiwan_ntu_dsi

dipy.data.fetcher.read_taiwan_ntu_dsi()

Load Taiwan NTU dataset.

Returns
imgobj,

Nifti1Image

gtabobj,

GradientTable

read_tissue_data

dipy.data.fetcher.read_tissue_data(contrast='T1')

Load images to be used for tissue classification

Parameters
constraststr

‘T1’, ‘T1 denoised’ or ‘Anisotropic Power’

Returns
imageobj,

Nifti1Image

urlopen

dipy.data.fetcher.urlopen(url, data=None, timeout=<object object>, *, cafile=None, capath=None, cadefault=False, context=None)

Open the URL url, which can be either a string or a Request object.

data must be an object specifying additional data to be sent to the server, or None if no such data is needed. See Request for details.

urllib.request module uses HTTP/1.1 and includes a “Connection:close” header in its HTTP requests.

The optional timeout parameter specifies a timeout in seconds for blocking operations like the connection attempt (if not specified, the global default timeout setting will be used). This only works for HTTP, HTTPS and FTP connections.

If context is specified, it must be a ssl.SSLContext instance describing the various SSL options. See HTTPSConnection for more details.

The optional cafile and capath parameters specify a set of trusted CA certificates for HTTPS requests. cafile should point to a single file containing a bundle of CA certificates, whereas capath should point to a directory of hashed certificate files. More information can be found in ssl.SSLContext.load_verify_locations().

The cadefault parameter is ignored.

This function always returns an object which can work as a context manager and has methods such as

  • geturl() - return the URL of the resource retrieved, commonly used to determine if a redirect was followed

  • info() - return the meta-information of the page, such as headers, in the form of an email.message_from_string() instance (see Quick Reference to HTTP Headers)

  • getcode() - return the HTTP status code of the response. Raises URLError on errors.

For HTTP and HTTPS URLs, this function returns a http.client.HTTPResponse object slightly modified. In addition to the three new methods above, the msg attribute contains the same information as the reason attribute — the reason phrase returned by the server — instead of the response headers as it is specified in the documentation for HTTPResponse.

For FTP, file, and data URLs and requests explicitly handled by legacy URLopener and FancyURLopener classes, this function returns a urllib.response.addinfourl object.

Note that None may be returned if no handler handles the request (though the default installed global OpenerDirector uses UnknownHandler to ensure this never happens).

In addition, if proxy settings are detected (for example, when a *_proxy environment variable like http_proxy is set), ProxyHandler is default installed and makes sure the requests are handled through the proxy.