From bfb57216b9077f12369bfba8e6dca8020b48e44c Mon Sep 17 00:00:00 2001 From: Siddhartha Dhiman Date: Tue, 22 Sep 2020 13:01:14 -0400 Subject: [PATCH 1/6] Fix DTI protocol (#228) * Update reslicing to use new `mrgrid` command This also works with older `mrreslice` * Fix bad indent in tensorReorder() * Update documentation --- CHANGELOG.rst | 21 +++++++++++++++++++++ designer/fitting/dwipy.py | 2 +- designer/info.py | 2 +- designer/preprocessing/mrpreproc.py | 25 +++++++++++++++++++++---- 4 files changed, 44 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 60c3c402..a1ff2475 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,6 +4,26 @@ Changelog All notable changes to this project will be documented in this file or page +`v1.0_RC4`_ +----------- + +Sep 22, 2020 + +**Added**: + +* Reslicing compatibility udpated for new MRTrix3 version + where ``mrrelice`` has been changed to ``mrgrid``. + PyDesigner will work with either versions. + +**Changed**: + +* Fixed a bad indent in tensor reordering function + that produced an error in DTI protocols. + +**Removed**: + +* None + `v1.0_RC3`_ ----------- @@ -198,6 +218,7 @@ Initial port of MATLAB code to Python. 200,000,000,000 BCE .. Links +.. _v1.0_RC4: https://github.com/m-ama/PyDesigner/releases/tag/v1.0_RC4 .. _v1.0_RC3: https://github.com/m-ama/PyDesigner/releases/tag/v1.0_RC3 .. _v1.0_RC2: https://github.com/m-ama/PyDesigner/releases/tag/v1.0_RC2 .. _v1.0_RC1: https://github.com/m-ama/PyDesigner/releases/tag/v1.0-RC1 diff --git a/designer/fitting/dwipy.py b/designer/fitting/dwipy.py index 0fe5a143..56aaf49d 100644 --- a/designer/fitting/dwipy.py +++ b/designer/fitting/dwipy.py @@ -2576,7 +2576,7 @@ def tensorReorder(self, dwiType): dt[20, :] = self.dt[14, :] # K14 DT = vectorize(dt[0:6, :], self.mask) KT = vectorize(dt[6:21, :], self.mask) - return DT, KT + return DT, KT def irllsviolmask(self, reject): """ diff --git a/designer/info.py b/designer/info.py index 7eb8e5c1..febb90a8 100644 --- a/designer/info.py +++ b/designer/info.py @@ -10,7 +10,7 @@ ) ) __packagename__ = 'PyDesigner' -__version__='v1.0-RC3' +__version__='v1.0-RC4' __author__ = 'PyDesigner developers' __copyright__ = 'Copyright 2020, PyDesigner developers, MUSC Advanced Image Analysis (MAMA)' __credits__ = [ diff --git a/designer/preprocessing/mrpreproc.py b/designer/preprocessing/mrpreproc.py index 6146f9ac..a715061d 100644 --- a/designer/preprocessing/mrpreproc.py +++ b/designer/preprocessing/mrpreproc.py @@ -953,16 +953,33 @@ def reslice(input, output, size, interp='linear', 'reslicing'.format(specified_size, current_size)) copyfile(input, output) return - arg = ['mrresize'] + arg = [] + if which('mrresize') is None: + arg.extend( + [ + 'mrgrid', + input, + 'regrid', + dim_str, size, + '-interp', interp, + output + ] + ) + else: + arg.extend( + [ + 'mrresize', + dim_str, size, + '-interp', interp, + input, output + ] + ) if force: arg.append('-force') if not verbose: arg.append('-quiet') if not (nthreads is None): arg.extend(['-nthreads', str(nthreads)]) - arg.extend([dim_str, size]) - arg.extend(['-interp', interp]) - arg.extend([input, output]) completion = subprocess.run(arg) if completion.returncode != 0: raise Exception('Failed to reslice. See above for errors.') From c7df163a6d1f2391b6933fe3063afa9784788a30 Mon Sep 17 00:00:00 2001 From: Siddhartha Dhiman Date: Fri, 25 Sep 2020 11:21:43 -0400 Subject: [PATCH 2/6] Add bval scaling (#230) --- CHANGELOG.rst | 21 +++++++++++++++++++++ designer/fitting/dwipy.py | 31 ++++++++++++++++++++++++------- 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a1ff2475..6bd8a48d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,6 +4,26 @@ Changelog All notable changes to this project will be documented in this file or page +`v1.0_RC5`_ +----------- + +TBA + +**Added**: + +* Check for b-value scaling so .bval file so values + specified as either 2.0 or 2000 can be processed. +* ``fitting.dwipy()`` can now be pointed to user-defined + bvec and bval paths. It previously required bvec and + bval files to have the same name and path as DWI. + +**Changed**: + + +**Removed**: + +* None + `v1.0_RC4`_ ----------- @@ -218,6 +238,7 @@ Initial port of MATLAB code to Python. 200,000,000,000 BCE .. Links +.. _v1.0_RC5: https://github.com/m-ama/PyDesigner/releases/tag/v1.0_RC5 .. _v1.0_RC4: https://github.com/m-ama/PyDesigner/releases/tag/v1.0_RC4 .. _v1.0_RC3: https://github.com/m-ama/PyDesigner/releases/tag/v1.0_RC3 .. _v1.0_RC2: https://github.com/m-ama/PyDesigner/releases/tag/v1.0_RC2 diff --git a/designer/fitting/dwipy.py b/designer/fitting/dwipy.py index 56aaf49d..35da71f9 100644 --- a/designer/fitting/dwipy.py +++ b/designer/fitting/dwipy.py @@ -47,7 +47,7 @@ class DWI(object): workers : int Number of CPU workers to use in processing """ - def __init__(self, imPath, mask=None, nthreads=-1): + def __init__(self, imPath, bvecPath=None, bvalPath=None, mask=None, nthreads=-1): """ DWI class initializer @@ -71,20 +71,37 @@ def __init__(self, imPath, mask=None, nthreads=-1): (path, file) = os.path.split(imPath) # Remove extension from NIFTI filename fName = os.path.splitext(file)[0] - # Add .bval to NIFTI filename - bvalPath = os.path.join(path, fName + '.bval') - # Add .bvec to NIFTI filename - bvecPath = os.path.join(path, fName + '.bvec') + if bvecPath: + if not isinstance(bvecPath, str): + raise TypeError('Path to .bvec is not specified ' + 'as a string') + if not os.path.exists(bvecPath): + raise OSError('Path to .bvec does not exist: ' + '{}'.format(bvecPath)) + else: + bvecPath = os.path.join(path, fName + '.bvec') + if bvalPath: + if not isinstance(bvalPath, str): + raise TypeError('Path to .bval is not specified ' + 'as a string') + if not os.path.exists(bvalPath): + raise OSError('Path to .bvec does not exist: ' + '{}'.format(bvalPath)) + else: + bvalPath = os.path.join(path, fName + '.bval') if os.path.exists(bvalPath) and os.path.exists(bvecPath): # Load bvecs bvecs = np.loadtxt(bvecPath) # Load bvals - bvals = np.rint(np.loadtxt(bvalPath) / 1000) + bvals = np.rint(np.loadtxt(bvalPath)) + # Scale bvals by checking for number of digits in max bval + if int(np.log10(np.max(bvals)))+1 >= 3: # if no. of digits >= 3 + bvals = bvals / 1000 # Combine bvecs and bvals into [n x 4] array where n is # number of DWI volumes. [Gx Gy Gz Bval] self.grad = np.c_[np.transpose(bvecs), bvals] else: - raise NameError('Unable to locate BVAL or BVEC files') + raise OSError('Unable to locate BVAL or BVEC files') if mask is None: maskPath = os.path.join(path,'brain_mask.nii') else: From aa0258e545491da0c173ea06af8bf51c4a80baf3 Mon Sep 17 00:00:00 2001 From: Siddhartha Dhiman Date: Mon, 26 Oct 2020 11:24:41 -0400 Subject: [PATCH 3/6] Fix SNR plotting issues (#233) * Add try/except loop to SNR plot * Fix eddy path when `--noqc` is parsef * Fix a bad indent * Update CHANGELOG --- CHANGELOG.rst | 6 ++++++ designer/preprocessing/mrpreproc.py | 4 ++-- designer/pydesigner.py | 31 ++++++++++++++++++----------- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 6bd8a48d..1bb8ac12 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -19,6 +19,12 @@ TBA **Changed**: +* Fixed issue where eddy correction would attempt + to QC and fail despite parsing the ``--noqc`` flag. +* SNR plotting works in very specific scenarious when + input DWIs are of the same same dimensions. A try/except + loop now ensure that the entire pipeline doesn't halt + due to errors in plotting. **Removed**: diff --git a/designer/preprocessing/mrpreproc.py b/designer/preprocessing/mrpreproc.py index a715061d..4690a2e2 100644 --- a/designer/preprocessing/mrpreproc.py +++ b/designer/preprocessing/mrpreproc.py @@ -303,8 +303,8 @@ def undistort(input, output, rpe='rpe_header', epib0=1, epib0 : int Number of reverse PE dir B0 pairs to use in TOPUP correction (Default: 1) - qc : bool - Specify whether to generate eddy QC metrics (Default: True) + qc : str + Specify path to QC directior. No QC metrics generated if None nthreads : int, optional Specify the number of threads to use in processing (Default: all available threads) diff --git a/designer/pydesigner.py b/designer/pydesigner.py index b9f42ead..d0805810 100644 --- a/designer/pydesigner.py +++ b/designer/pydesigner.py @@ -591,6 +591,8 @@ def main(): undistorted_name_full = str(step_count)+ '_' + undistorted_name nii_undistorted = op.join(intermediatepath, undistorted_name_full + '.nii') mif_undistorted = op.join(outpath, undistorted_name_full + '.mif') + if args.noqc: + eddyqcpath = None # check to see if this already exists if not (args.resume and op.exists(nii_undistorted)): # run undistort function @@ -764,15 +766,19 @@ def main(): files = [] files.append(init_nii) files.append(filetable['HEAD'].getFull()) - if 'mask' in filetable: - snr = snrplot.makesnr(dwilist=files, - noisepath=nii_noisemap, - maskpath=filetable['mask'].getFull()) - else: - snr = snrplot.makesnr(dwilist=files, - noisepath=filetable['noisemap'].getFull(), - maskpath=None) - snr.makeplot(path=qcpath, smooth=True, smoothfactor=3) + try: + if 'mask' in filetable: + snr = snrplot.makesnr(dwilist=files, + noisepath=nii_noisemap, + maskpath=filetable['mask'].getFull()) + else: + snr = snrplot.makesnr(dwilist=files, + noisepath=filetable['noisemap'].getFull(), + maskpath=None) + snr.makeplot(path=qcpath, smooth=True, smoothfactor=3) + except: + print('[WARNING] SNR plotting failed, see above. ' + 'Proceeding with processing.') #----------------------------------------------------------------- # Write logs @@ -875,9 +881,10 @@ def main(): if (img.isdti() or img.isdki()) and not args.noakc: akc_out = img.akcoutliers() img.akccorrect(akc_out) - dp.writeNii(akc_out, - img.hdr, - op.join(fitqcpath, 'outliers_akc')) + if not args.noqc: + dp.writeNii(akc_out, + img.hdr, + op.join(fitqcpath, 'outliers_akc')) # reorder tensor for mrtrix3 if 'dki' in img.tensorType(): From dc9809498b1151f6b8af3d0e13309798ce0dc341 Mon Sep 17 00:00:00 2001 From: Siddhartha Dhiman Date: Mon, 26 Oct 2020 15:10:27 -0400 Subject: [PATCH 4/6] Init tractography module (#234) * Init tractography module with DSI Studio * Update main to use tractography modules * Update version and MANIFEST * Update docs --- CHANGELOG.rst | 5 +- MANIFEST.in | 1 + designer/info.py | 5 +- designer/pydesigner.py | 15 +- designer/tractography/__init__.py | 0 designer/tractography/dsistudio.py | 226 ++++++++++++++++++ designer/tractography/odfs.mat | Bin 0 -> 110342 bytes .../api/designer.tractography.dsistudio.rst | 4 + docs/source/api/designer.tractography.rst | 15 ++ docs/source/reference/pydesigner_files.rst | 38 +-- 10 files changed, 287 insertions(+), 22 deletions(-) create mode 100644 designer/tractography/__init__.py create mode 100644 designer/tractography/dsistudio.py create mode 100644 designer/tractography/odfs.mat create mode 100644 docs/source/api/designer.tractography.dsistudio.rst create mode 100644 docs/source/api/designer.tractography.rst diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 1bb8ac12..62ce0290 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,7 +7,7 @@ page `v1.0_RC5`_ ----------- -TBA +Oct 26, 2020 **Added**: @@ -16,6 +16,9 @@ TBA * ``fitting.dwipy()`` can now be pointed to user-defined bvec and bval paths. It previously required bvec and bval files to have the same name and path as DWI. +* **DSI Studio tractography** for FBI. Processing FBI dataset now + produces an ``fbi_tractography_dsi.fib`` file that can be loaded + into DSI Studio to perform tractography. **Changed**: diff --git a/MANIFEST.in b/MANIFEST.in index fe834057..9c8d0d0f 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,3 @@ include designer/fitting/*.csv +include desiger/tractography/*.mat global-exclude *.py[cod] __pycache__ *.so diff --git a/designer/info.py b/designer/info.py index febb90a8..5b627982 100644 --- a/designer/info.py +++ b/designer/info.py @@ -10,7 +10,7 @@ ) ) __packagename__ = 'PyDesigner' -__version__='v1.0-RC4' +__version__='v1.0-RC5' __author__ = 'PyDesigner developers' __copyright__ = 'Copyright 2020, PyDesigner developers, MUSC Advanced Image Analysis (MAMA)' __credits__ = [ @@ -48,7 +48,8 @@ 'joblib >= 0.16', 'tqdm >= 4.40', 'multiprocess >= 0.70', - 'nibabel >= 3.1', + 'nibabel >= 3.2', + 'dipy >= 1.2', 'cvxpy >= 1.1' ] diff --git a/designer/pydesigner.py b/designer/pydesigner.py index d0805810..3433b03a 100644 --- a/designer/pydesigner.py +++ b/designer/pydesigner.py @@ -20,6 +20,7 @@ from designer.plotting import snrplot, outlierplot, motionplot from designer.fitting import dwipy as dp from designer.postprocessing import filters +from designer.tractography import dsistudio as ds DWIFile = util.DWIFile DWIParser = util.DWIParser @@ -829,6 +830,7 @@ def main(): fn_fbi_zeta = 'fbi_zeta' fn_fbi_faa = 'fbi_faa' fn_fbi_sph = 'fbi_fodf' + fn_fbi_tract = 'fbi_tractography_dsi' fn_fbi_awf = 'fbwm_awf' fn_fbi_Da = 'fbwm_da' fn_fbi_De_mean = 'fbwm_de_mean' @@ -1022,6 +1024,17 @@ def main(): input=op.join(metricpath, x + fn_ext), output=op.join(metricpath, x + fn_ext), mask=filetable['mask'].getFull()) - + if 'mask' in filetable: + ds.makefib( + input=op.join(metricpath, fn_fbi_sph + fn_ext), + output=op.join(metricpath, fn_fbi_tract + '.fib'), + mask=filetable['mask'].getFull() + ) + else: + ds.makefib( + input=op.join(metricpath, fn_fbi_sph + fn_ext), + output=op.join(metricpath, fn_fbi_tract + '.fib'), + mask=None + ) if __name__ == '__main__': main() diff --git a/designer/tractography/__init__.py b/designer/tractography/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/designer/tractography/dsistudio.py b/designer/tractography/dsistudio.py new file mode 100644 index 00000000..5564b21e --- /dev/null +++ b/designer/tractography/dsistudio.py @@ -0,0 +1,226 @@ +#!/usr/bin/env python +# -*- coding : utf-8 -*- + +""" +Tools for exporting DSIStudio-compatible outputs. Adapted from +mattcieslak/dmri_convert/mrtrix_to_dsistudio.py to suit PyDesigner's +needs. + +References: + 1. https://github.com/mattcieslak/dmri_convert/blob/master/mrtrix_to_dsistudio.py +""" + + +import os +import os.path as op +import subprocess +import numpy as np +import nibabel as nib +from dipy.core.geometry import cart2sphere +from dipy.core.sphere import HemiSphere +from dipy.direction import peak_directions +from scipy.io.matlab import loadmat, savemat +from tqdm import tqdm +ODF_COLS = 20000 # Number of columns in DSI Studio odf split +tqdmWidth = 70 + +def get_dsi_studio_ODF_geometry(odf_key): + """ + Reads DSIStudio's ODF geometry in odfs.mat + + Parameters + ---------- + odf_keys : str + DSIStudio's direction set to load + + Returns + ------- + odf_vertices : array_like(dtype=int) + ODF vertices + odf_faces : array_like(dtype=double) + ODF faces + """ + working_dir = os.path.abspath(os.path.dirname(__file__)) + m = loadmat(op.join(working_dir, 'odfs.mat')) + odf_vertices = m[odf_key + '_vertices'].T + odf_faces = m[odf_key + '_faces'].T + return odf_vertices, odf_faces + +def convertLPS(input, output): + """ + Converts a nifti file to LPS for compatibility with DSIStudio + + Parameters + ---------- + input : str + Path to input nifti file; must possess .nii extension + output : str + Path to output nifti file; must possess .nii extension + + Returns + ------- + None, writes out file + """ + if not op.exists(input): + raise OSError('Input path does not exist. Please ensure that ' + 'the folder or file specified exists.') + if not op.exists(op.dirname(output)): + raise OSError('Specifed directory for output file {} does not ' + 'exist. Please ensure that this is a valid ' + 'directory.'.format(op.dirname(output))) + if op.splitext(input)[-1] != '.nii': + raise IOError('Input file needs to specified as a NifTI ' + '(.nii)') + if op.splitext(output)[-1] != '.nii': + raise IOError('Output file needs to specified as a NifTI ' + '(.nii)') + arg = [ + 'mrconvert', + '-quiet', + '-force', + input, + '-strides', '-1,-2,3', + output + ] + completion = subprocess.run(arg) + if completion.returncode != 0: + raise Exception('Conversion of NifTI file to LPS failed. ' + 'Check above for errors.') + +def makefib(input, output, mask=None, n_fibers=3): + """ + Converts a NifTi ``.nii`` file containing sh coefficients to a DSI + Studio fib file + + This function uses ``sh2amp`` to get amplitude values for each + direction in DSI Studio's ``odf8`` direction set. These values are + masked and loaded into the "odfN" matrices in the fib file. + + Parameters + ---------- + input : str + Path to input nifti file containing SH coefficients + output : str + Path to output fib file; must end with .fib + mask : str, optional + Path to nifti file containing brain mask + n_fibers : int, optional + The maximum number ODF maxima to extract per voxel + (Default: 3) + + Returns + ------- + None, writes out file + """ + if not op.exists(input): + raise OSError('Input path does not exist. Please ensure that ' + 'the folder or file specified exists.') + if not op.exists(op.dirname(output)): + raise OSError('Specifed directory for output file {} does not ' + 'exist. Please ensure that this is a valid ' + 'directory.'.format(op.dirname(output))) + if op.splitext(input)[-1] != '.nii': + raise IOError('Input file needs to specified as a NifTI ' + '(.nii)') + if op.splitext(output)[-1] != '.fib': + raise IOError('Output file needs to specified as a .fib file') + if not mask is None: + if not op.exists(mask): + raise OSError('Path to brain mask does not exist. Please ' + 'ensure that the folder specified exists.') + outdir = op.dirname(output) + # Convert to LPS + fname, ext = op.splitext(op.basename(input)) + fname = fname +'_lps' + input_ = op.join(outdir, fname + ext) + if not mask is None: + (fname, ext) = op.splitext(op.basename(mask)) + fname = fname +'_lps' + mask_ = op.join(outdir, fname + ext) + convertLPS(input, input_) + convertLPS(mask, mask_) + # Get ODF geometry + verts, faces = get_dsi_studio_ODF_geometry("odf8") + num_dirs, _ = verts.shape + hemisphere = num_dirs // 2 + x, y, z = verts[:hemisphere].T + hs = HemiSphere(x=x, y=y, z=z) + # Convert to DSI Studio LPS+ from MRTRIX3 RAS+ + _, theta, phi = cart2sphere(-x, -y, z) + dirs_txt = op.join(outdir, "directions.txt") + np.savetxt(dirs_txt, np.column_stack([phi, theta])) + # Get SH amplitude + odf_amplitudes_nii = op.join(outdir, 'amplitudes.nii') + arg = [ + 'sh2amp', + '-quiet', + '-force', + '-nonnegative', + input_, dirs_txt, odf_amplitudes_nii + ] + completion = subprocess.run(arg) + if completion.returncode != 0: + raise Exception('Failed to determine amplitude of SH ' + 'coefficients. Check above for errors.') + # Load images + amplitudes_img = nib.load(odf_amplitudes_nii) + ampl_data = amplitudes_img.get_fdata() + if not mask is None: + mask_img = nib.load(mask_) + if not np.allclose(mask_img.affine, amplitudes_img.affine): + raise ValueError('Differing orientation between mask and ' + 'amplitudes.') + if not mask_img.shape == amplitudes_img.shape[:3]: + raise ValueError('Differing grid between mask and ' + 'amplitudes') + mask_img = mask_img.get_fdata() + else: + mask_img = np.ones((ampl_data.shape[0], ampl_data.shape[1], + ampl_data.shape[2]), order='F') + # Make flat mask + flat_mask = mask_img.flatten(order='F') > 0 + odf_array = ampl_data.reshape(-1, ampl_data.shape[3], order="F") + masked_odfs = odf_array[flat_mask, :] + n_odfs = masked_odfs.shape[0] + peak_indices = np.zeros((n_odfs, n_fibers)) + peak_vals = np.zeros((n_odfs, n_fibers)) + dsi_mat = {} + # Create matfile that can be read by dsi Studio + dsi_mat['dimension'] = np.array(amplitudes_img.shape[:3]) + dsi_mat['voxel_size'] = np.array(amplitudes_img.header.get_zooms()[:3]) + n_voxels = int(np.prod(dsi_mat['dimension'])) + for odfnum in tqdm(range(masked_odfs.shape[0]), + desc='ODF Peak Detection', + bar_format='{desc}: [{percentage:0.0f}%]', + unit='vox', + ncols=tqdmWidth): + dirs, vals, indices = peak_directions(masked_odfs[odfnum], hs) + for dirnum, (val, idx) in enumerate(zip(vals, indices)): + if dirnum == n_fibers: + break + peak_indices[odfnum, dirnum] = idx + peak_vals[odfnum, dirnum] = val + for nfib in range(n_fibers): + # fill in the "fa" values + fa_n = np.zeros(n_voxels) + fa_n[flat_mask] = peak_vals[:, nfib] + dsi_mat['fa%d' % nfib] = fa_n.astype(np.float32) + # Fill in the index values + index_n = np.zeros(n_voxels) + index_n[flat_mask] = peak_indices[:, nfib] + dsi_mat['index%d' % nfib] = index_n.astype(np.int16) + # Add in the ODFs + num_odf_matrices = n_odfs // ODF_COLS + split_indices = (np.arange(num_odf_matrices) + 1) * ODF_COLS + odf_splits = np.array_split(masked_odfs, split_indices, axis=0) + for splitnum, odfs in enumerate(odf_splits): + dsi_mat['odf%d' % splitnum] = odfs.T.astype(np.float32) + dsi_mat['odf_vertices'] = verts.T + dsi_mat['odf_faces'] = faces.T + dsi_mat['z0'] = np.array([1.]) + savemat(output, dsi_mat, format='4', appendmat=False) + # Remove unwanted files + os.remove(input_) + os.remove(mask_) + os.remove(dirs_txt) + os.remove(odf_amplitudes_nii) diff --git a/designer/tractography/odfs.mat b/designer/tractography/odfs.mat new file mode 100644 index 0000000000000000000000000000000000000000..1c623d8014a07620302de1c6d5cb8f0f22a5715b GIT binary patch literal 110342 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%0AoO;eVgd1`s5)|UoC{^nmkye^P^43>B?CAg8$7? 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 literal 0 HcmV?d00001 diff --git a/docs/source/api/designer.tractography.dsistudio.rst b/docs/source/api/designer.tractography.dsistudio.rst new file mode 100644 index 00000000..16dec296 --- /dev/null +++ b/docs/source/api/designer.tractography.dsistudio.rst @@ -0,0 +1,4 @@ +.. automodule:: designer.tractography.dsistudio + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/api/designer.tractography.rst b/docs/source/api/designer.tractography.rst new file mode 100644 index 00000000..4b97bb69 --- /dev/null +++ b/docs/source/api/designer.tractography.rst @@ -0,0 +1,15 @@ +designer.tractography package +============================= + +.. automodule:: designer.tractography + :members: + :undoc-members: + :show-inheritance: + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + designer.tractography.dsistudio diff --git a/docs/source/reference/pydesigner_files.rst b/docs/source/reference/pydesigner_files.rst index 9cdaedf6..1f8f9375 100644 --- a/docs/source/reference/pydesigner_files.rst +++ b/docs/source/reference/pydesigner_files.rst @@ -117,25 +117,27 @@ The list of ever possible output file is given in the table below. +-------------------------------------+----------------------------------------------------------+ | :code:`fbi_zeta.nii` | zeta (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`fbi_faa` | axonal fractional anisotropy (3d nifti) | +| :code:`fbi_faa.nii` | axonal fractional anisotropy (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`fbi_fodf` | FBI fODFs from spherical harmonic expansion (4d nifti) | +| :code:`fbi_fodf.nii` | FBI fODFs from spherical harmonic expansion (4d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`fbwm_awf` | axonal water fraction (3d nifti) | +| :code:`fbi_tractography_dsi.fib` | FBI fODFs prepared for DSI Studio's tractography (fib) | +-------------------------------------+----------------------------------------------------------+ -| :code:`fbwm_Da` | intra-axonal diffusivity (3d nifti) | +| :code:`fbwm_awf.nii` | axonal water fraction (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`fbwm_De_ax` | axial extra-axonal diffusivity (3d nifti) | +| :code:`fbwm_Da.nii` | intra-axonal diffusivity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`fbwm_De_rad` | radial extra-axonal diffusivity (3d nifti) | +| :code:`fbwm_De_ax.nii` | axial extra-axonal diffusivity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`fbwm_De_mean` | mean radial extra-axonal diffusivity (3d nifti) | +| :code:`fbwm_De_rad.nii` | radial extra-axonal diffusivity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`fbwm_fae` | extra-axonal fractional anisotropy (3d nifti) | +| :code:`fbwm_De_mean.nii` | mean radial extra-axonal diffusivity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`fbwm_minCost` | minimum cost computed by cost function (3d nifti) | +| :code:`fbwm_fae.nii` | extra-axonal fractional anisotropy (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`fbwm_minCost` | | +| :code:`fbwm_minCost.nii` | minimum cost computed by cost function (3d nifti) | ++-------------------------------------+----------------------------------------------------------+ +| :code:`fbwm_minCost.nii` | | | | all costs computed by cost function (4d nifti; 100 three | | | dimensional volumes) | +-------------------------------------+----------------------------------------------------------+ @@ -143,21 +145,21 @@ The list of ever possible output file is given in the table below. +-------------------------------------+----------------------------------------------------------+ | :code:`wmti_awf.nii` | axonal water fraction (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`wmti_eas_ad` | extra-axonal axial diffusivity (3d nifti) | +| :code:`wmti_eas_ad.nii` | extra-axonal axial diffusivity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`wmti_eas_rd` | extra-axonal radial diffusivity (3d nifti) | +| :code:`wmti_eas_rd.nii` | extra-axonal radial diffusivity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`wmti_eas_md` | extra-axonal mean diffusivity (3d nifti) | +| :code:`wmti_eas_md.nii` | extra-axonal mean diffusivity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`wmti_eas_tort` | extra-axonal tortuosity (3d nifti) | +| :code:`wmti_eas_tort.nii` | extra-axonal tortuosity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`wmti_ias_ad` | intra-axonal axial diffusivity (3d nifti) | +| :code:`wmti_ias_ad.nii` | intra-axonal axial diffusivity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`wmti_ias_rd` | intra-axonal radial diffusivity (3d nifti) | +| :code:`wmti_ias_rd.nii` | intra-axonal radial diffusivity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`wmti_ias_da` | intra-axonal intrinsic diffusivity (3d nifti) | +| :code:`wmti_ias_da.nii` | intra-axonal intrinsic diffusivity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ -| :code:`wmti_ias_tort` | intra-axonal tortuosity (3d nifti) | +| :code:`wmti_ias_tort.nii` | intra-axonal tortuosity (3d nifti) | +-------------------------------------+----------------------------------------------------------+ All other files in folder :code:`/intermediate_nifti` are used by From c213f81bf460bb60b3cf33b1817602c592665edf Mon Sep 17 00:00:00 2001 From: Siddhartha Dhiman Date: Mon, 7 Dec 2020 09:40:28 -0500 Subject: [PATCH 5/6] Fiber Tracking: FBI tractography (#235) (#237) * Fix DTI protocol (#228) * Update reslicing to use new `mrgrid` command This also works with older `mrreslice` * Fix bad indent in tensorReorder() * Update documentation * Add bval scaling (#230) * Fix SNR plotting issues (#233) * Add try/except loop to SNR plot * Fix eddy path when `--noqc` is parsef * Fix a bad indent * Update CHANGELOG * Init tractography module (#234) * Init tractography module with DSI Studio * Update main to use tractography modules * Update version and MANIFEST * Update docs From f6a0c94511a5aab4b73faa0b58a70b3226021acf Mon Sep 17 00:00:00 2001 From: Siddhartha Dhiman Date: Mon, 7 Dec 2020 09:47:41 -0500 Subject: [PATCH 6/6] Change dki_ak fname (#238) --- designer/pydesigner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer/pydesigner.py b/designer/pydesigner.py index 3433b03a..8403872d 100644 --- a/designer/pydesigner.py +++ b/designer/pydesigner.py @@ -811,7 +811,7 @@ def main(): fn_dti_fe = 'dti_fe' fn_dki_mk = 'dki_mk' fn_dki_rk = 'dki_rk' - fn_dki_ak = 'dki_rk' + fn_dki_ak = 'dki_ak' fn_dki_kfa = 'dki_kfa' fn_dki_mkt = 'dki_mkt' if img.isdki():