def organize_stanford_data(path=None): """ Create the expected file-system structure for the Stanford HARDI data-set. """ dpd.fetch_stanford_hardi() if path is None: if not op.exists(afq_home): os.mkdir(afq_home) base_folder = op.join(afq_home, 'stanford_hardi', 'derivatives', 'dmriprep') else: base_folder = op.join(path, 'stanford_hardi', 'derivatives', 'dmriprep') if not op.exists(base_folder): anat_folder = op.join(base_folder, 'sub-01', 'sess-01', 'anat') os.makedirs(anat_folder, exist_ok=True) dwi_folder = op.join(base_folder, 'sub-01', 'sess-01', 'dwi') os.makedirs(dwi_folder, exist_ok=True) t1_img = dpd.read_stanford_t1() nib.save(t1_img, op.join(anat_folder, 'sub-01_sess-01_T1w.nii.gz')) seg_img = dpd.read_stanford_labels()[-1] nib.save(seg_img, op.join(anat_folder, 'sub-01_sess-01_aparc+aseg.nii.gz')) dwi_img, gtab = dpd.read_stanford_hardi() nib.save(dwi_img, op.join(dwi_folder, 'sub-01_sess-01_dwi.nii.gz')) np.savetxt(op.join(dwi_folder, 'sub-01_sess-01_dwi.bvecs'), gtab.bvecs) np.savetxt(op.join(dwi_folder, 'sub-01_sess-01_dwi.bvals'), gtab.bvals)
def organize_stanford_data(path=None): """ Create the expected file-system structure for the Stanford HARDI data-set """ if path is None: if not op.exists(afq_home): os.mkdir(afq_home) base_folder = op.join(afq_home, 'stanford_hardi') else: base_folder = op.join(path, 'stanford_hardi') if not op.exists(base_folder): os.mkdir(base_folder) os.mkdir(op.join(base_folder, 'sub-01')) os.mkdir(op.join(base_folder, 'sub-01', 'sess-01')) anat_folder = op.join(base_folder, 'sub-01', 'sess-01', 'anat') os.mkdir(anat_folder) dwi_folder = op.join(base_folder, 'sub-01', 'sess-01', 'dwi') os.mkdir(dwi_folder) t1_img = dpd.read_stanford_t1() nib.save(t1_img, op.join(anat_folder, 'sub-01_sess-01_T1w.nii.gz')) dwi_img, gtab = dpd.read_stanford_hardi() nib.save(dwi_img, op.join(dwi_folder, 'sub-01_sess-01_dwi.nii.gz')) np.savetxt(op.join(dwi_folder, 'sub-01_sess-01_dwi.bvecs'), gtab.bvecs) np.savetxt(op.join(dwi_folder, 'sub-01_sess-01_dwi.bvals'), gtab.bvals)
def organize_stanford_data(path=None): """ Create the expected file-system structure for the Stanford HARDI data-set. """ dpd.fetch_stanford_hardi() if path is None: if not op.exists(afq_home): os.mkdir(afq_home) my_path = afq_home else: my_path = path base_folder = op.join(my_path, 'stanford_hardi', 'derivatives', 'dmriprep') if not op.exists(base_folder): anat_folder = op.join(base_folder, 'sub-01', 'sess-01', 'anat') os.makedirs(anat_folder, exist_ok=True) dwi_folder = op.join(base_folder, 'sub-01', 'sess-01', 'dwi') os.makedirs(dwi_folder, exist_ok=True) t1_img = dpd.read_stanford_t1() nib.save(t1_img, op.join(anat_folder, 'sub-01_sess-01_T1w.nii.gz')) seg_img = dpd.read_stanford_labels()[-1] nib.save(seg_img, op.join(anat_folder, 'sub-01_sess-01_aparc+aseg.nii.gz')) dwi_img, gtab = dpd.read_stanford_hardi() nib.save(dwi_img, op.join(dwi_folder, 'sub-01_sess-01_dwi.nii.gz')) np.savetxt(op.join(dwi_folder, 'sub-01_sess-01_dwi.bvecs'), gtab.bvecs) np.savetxt(op.join(dwi_folder, 'sub-01_sess-01_dwi.bvals'), gtab.bvals) dataset_description = { "BIDSVersion": "1.0.0", "Name": "Stanford HARDI", "Subjects": ["sub-01"] } desc_file = op.join(my_path, 'stanford_hardi', 'dataset_description.json') with open(desc_file, 'w') as outfile: json.dump(dataset_description, outfile)
from dipy.tracking.local import LocalTracking from dipy.tracking.streamline import Streamlines streamline_generator = LocalTracking(pnm, classifier, seeds, affine, step_size=.5) streamlines = Streamlines(streamline_generator) """ Next, we will create a visualization of these streamlines, relative to this subject's T1-weighted anatomy: """ from dipy.viz import window, actor, colormap as cmap from dipy.data import read_stanford_t1 from dipy.tracking.utils import move_streamlines from numpy.linalg import inv t1 = read_stanford_t1() t1_data = t1.get_data() t1_aff = t1.affine color = cmap.line_colors(streamlines) # Enables/disables interactive visualization interactive = False """ To speed up visualization, we will select a random sub-set of streamlines to display. This is particularly important, if you track from seeds throughout the entire white matter, generating many streamlines. In this case, for demonstration purposes, we subselect 900 streamlines. """ from dipy.tracking.streamline import select_random_set_of_streamlines
in DIPY. """ import numpy as np from dipy.data import (read_stanford_labels, fetch_stanford_t1, read_stanford_t1) # Fix seed np.random.seed(1) # Read data hardi_img, gtab, labels_img = read_stanford_labels() data = hardi_img.get_data() labels = labels_img.get_data() affine = hardi_img.get_affine() fetch_stanford_t1() t1 = read_stanford_t1() t1_data = t1.get_data() # Select a relevant part of the data (left hemisphere) # Coordinates given in x bounds, y bounds, z bounds dshape = data.shape[:-1] xa, xb, ya, yb, za, zb = [15, 42, 10, 65, 18, 65] data_small = data[xa:xb, ya:yb, za:zb] selectionmask = np.zeros(dshape, 'bool') selectionmask[xa:xb, ya:yb, za:zb] = True """ The data is first fitted to Constant Solid Angle (CDA) ODF Model. CSA is a good choice to estimate general fractional anisotropy (GFA), which the tissue classifier can use to restrict fiber tracking to those areas where the ODF shows significant restricted diffusion, thus creating a region-of-interest in