Skip to content

Commit

Permalink
Multi TE support and FBI stability patches (#257)
Browse files Browse the repository at this point in the history
* Add `echotime` function

* Add TE awareness to DWIParser

* Add `dwiextract` function

Extracts DWI volumes from star:end index

* Add filename dictionary

* Adjust tensor type thresholds

* Add maxFBIBval() method

* Fine tune tensor type thresolhds

* Add fit regime function

Eases full automation of pipeline

* Fix #232 by mitigating large values

* Incorporate fit regime into main

* Fix #255 by introducing overflow mitigation

* Introduce proper indexing of b-value shells in FBI/FBWM

* Add more proper handling of b-value shells

* Add multi-TE support to main

* Minor documentation changes

* Disable B0 exclusion in IRLLS

* Update version to RC10

* Update filenaming algorithm

* Add doc files

* Update CHANGELOG

* Remove unused print statement

* Add `--no_rectify` flag

* Update CHANGELOG

* Update documentation
  • Loading branch information
TheJaeger authored Jun 29, 2021
1 parent ea7a3c4 commit 8f2ed59
Show file tree
Hide file tree
Showing 12 changed files with 630 additions and 275 deletions.
40 changes: 39 additions & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,43 @@ Changelog
All notable changes to this project will be documented in this file or
page

`v1.0-RC10`_
-----------

Jun 29, 2021

**Added**:

* Support for multi echo time (TE) datasets. PyDesigner will now
preprocess DWIs with multiple TEs together, but extract diffusion
metrics for each TE separately. Users need to parse :code:`-te`
flag to enable this feature.
* Added :code:`dwiextract` function to *mrpreproc.py* to allowing
splitting of *.mif* files.
* Added function :code:`fit_regime` to *dwipy.py* to automatically run
all tensor fitting steps in an appropriate manner.
* Added :code:`highprecisionpower` to *dwipy.py* to mitigate integer
overflow error when performing FBI fODF calculation.
* Flag :code:`--no_rectify` to disable rectification of FBI fODFs. In
some cases where FBI acquistion is excellent, rectification can
degrade fODFs instead. This flag is intended to disable
rectification of such datasets.


**Changed**

* Maximum DKI b-value threshold has been raised to 3,000 mm/s^2,
thereby enabling DKI support for researchers using b-values higher
than 2,000 mm/s^2 but less than 3,000 mm/s^2.
* IRLLS now also includes B0 volumes when evaluating goodness-of-fit
to make outlier detection more robust and accurate.
* Various stability patches for FBI and FBWM to ensure error-free
extraction of FBI/FBWM metrics.

**Removed**

* None

`v1.0-RC9`_
-----------

Expand All @@ -29,7 +66,7 @@ Feb 15, 2021

**Added**:

* Added missing Rician preprocessing to `-s, --standard`
* Added missing Rician preprocessing to :code:`-s, --standard`
preprocessing

**Changed**
Expand Down Expand Up @@ -331,6 +368,7 @@ Initial port of MATLAB code to Python. 200,000,000,000 BCE

.. Links
.. _v1.0-RC10: https://github.com/m-ama/PyDesigner/releases/tag/v1.0-RC10
.. _v1.0-RC9: https://github.com/m-ama/PyDesigner/releases/tag/v1.0-RC9
.. _v1.0-RC8: https://github.com/m-ama/PyDesigner/releases/tag/v1.0-RC8
.. _v1.0-RC7: https://github.com/m-ama/PyDesigner/releases/tag/v1.0-RC7
Expand Down
53 changes: 53 additions & 0 deletions designer/fitting/dwi_fnames.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

_dti_ = {
'md': 'dti_md',
'rd': 'dti_rd',
'ad': 'dti_ad',
'fa': 'dti_fa',
'fe': 'dti_fe',
'trace': 'dti_trace'
}

_dki_ = {
'mk': 'dki_mk',
'rk': 'dki_rk',
'ak': 'dki_ak',
'kfa': 'dki_kfa',
'mkt': 'dki_mkt',
'trace': 'dki_trace'
}

_wmti_ = {
'awf': 'wmti_awf',
'eas_ad': 'wmti_eas_ad',
'eas_rd': 'wmti_eas_rd',
'eas_tort': 'wmti_eas_tort',
'ias_da': 'wmti_ias_da'
}

_fbi_ = {
'zeta': 'fbi_zeta',
'faa': 'fbi_faa',
'sph': 'fbi_fodf',
'tract': 'fbi_tractography_dsi',
'awf': 'fbwm_awf',
'Da': 'fbwm_da',
'De_mean': 'fbwm_de_mean',
'De_ax': 'fbwm_de_ax',
'De_rad': 'fbwm_de_rad',
'fae': 'fbwm_fae',
'min_cost': 'fbwm_minCost',
'min_cost_fn': 'fbwm_minCost_FN'
}

_tensor_ = {
'DT': 'DT',
'KT': 'KT'
}

_outliers_ = {
'IRLLS': 'outliers_irlls',
'AKC': 'outliers_akc'
}
Loading

0 comments on commit 8f2ed59

Please sign in to comment.