Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DOC: Revise *dMRIPrep*'s road-map #147

Merged
merged 4 commits into from
Jan 21, 2021
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
137 changes: 97 additions & 40 deletions docs/roadmap.rst
Original file line number Diff line number Diff line change
@@ -1,70 +1,127 @@
.. include:: links.rst

--------------------
Development road map
--------------------
Development road-map
====================
This road-map serves as a guide for developers as well as a way for us to
communicate to users and other stake-holders aboout the expectations they should
have about the current functionality of the software and future developments.
communicate to users and other stake-holders about the expectations they should
have for the current functionality of the software and future developments.

Version 0.3 (Targetted for March 1st, 2020)
-------------------------------------------
This version should be considered an early alpha of the software, but will
contain a full pipeline of processing from a raw BIDS dataset to analyzable data.
If you would like to be part of the team developing this road-map, please be sure to
read our `Contributors Guidelines <https://www.nipreps.org/community/CONTRIBUTING>`__.
Then, please write one of the developers to be invited to our bi-weekly meetings.
josephmje marked this conversation as resolved.
Show resolved Hide resolved
oesteban marked this conversation as resolved.
Show resolved Hide resolved

At this point, the processing pipeline will include the following major steps:
This road-map proposes a :abbr:`RERO (release early, release often)` philosophy, scheduling
a monthly release until the first stable 1.0 release is reached.

#. Susceptibility distortion correction.
Using `SDCFlows <https://github.com/poldracklab/sdcflows>`__
.. important::

#. Signal drift estimation
Leveraging the :math:`b=0` extraction, rescaling and averaging that was merged in `#50 <https://github.com/nipreps/dmriprep/pull/50>`__
Updated: Dec 18, 2020
Latest release: `0.3.0 (October 13, 2020) <changes.html#october-13-2020>`__.

Version 0.4 (April 1st, 2020)
-----------------------------
Version 0.4 (Before end of 2020)
--------------------------------
Version 0.4 will condense all the outcomes of our sprint towards ISMRM's 2021 abstracts deadline.
This mostly includes house-keeping work, and most prominently, the integration of the *SDCFlows* 2.0
alpha releases, which makes *dMRIPrep* go ahead of *fMRIPrep* in addressing distortions caused by
:math:`B_0` inhomogeneity.

This release will also include Salim's efforts in `#144 <https://github.com/nipreps/dmriprep/pull/144>`__
to provide a temporary implementation of head-motion and eddy-currents correction using
FSL's ``eddy``.
This temporary solution will be replaced by our 3dSHORE-based algorithm ported from QSIPREP,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we go ahead and name it yet? I thought Eddy Motion Correction is pretty good...

and left in place for researchers who prefer this option.

Version 0.5 (January, 2021)
---------------------------
#. Continue with the *SDCFlows 2.0* integration:

- Cover more complex fieldmap specifications
- Automatically set up "*fieldmap-less*" estimations

#. Framewise-displacement (or equivalent) calculation

We will identify volumes that are outliers in terms of head-motion, or other
severe artifacts that make them likely candidates for exclusion from further
analysis.
Regarding the *or equivalent* note above: following with `this conversation
<https://neurostars.org/t/head-motion-parameters-different-when-using-fmriprep-and-spm/17386/4>`__,
it could be interesting to calculate some sort of average displacement of voxels
within the white-matter mask instead.

#. Finalize ongoing PRs about reporting number of shells

- `#73 <https://github.com/nipreps/dmriprep/pull/73>`__
- `#129 <https://github.com/nipreps/dmriprep/pull/129>`__

#. First draft of ISBI 2021 tutorial:

- Accept the design for our ISBI 2021 tutorial and document it on the notebooks repo.
- First draft
- Start development
- Plan for supporting Derek and Ariel in taking the head-motion correction to the finish line.

Version 0.6 (February, 2021)
----------------------------
#. Head motion correction.

A SHOREline-based approach, ported from QSIPREP. In cases where the data are
"shelled", 3dSHORE will be used as the diffusion model. If the data are
single-shell, we will use SFM as the diffusion model.

#. Eddy current correction.
#. :math:`B_1` inhomogeneity correction

We will explore the possible adaptations of the HMC based on SHOREline above.
In cases where the data are "shelled", 3dSHORE will be
used as the diffusion model. If the data are single-shell, we will use SFM
as the diffusion model.
- Decide whether it can be brought around from estimation on T1w images
- Decide whether it should be a default-off option that can be enabled with
a flag, or else, generate both conversions always.

#. Framewise-displacement calculation
#. Initiate Phase I of testing

We will identify volumes that are outliers in terms of head motion, or other
severe artifacts that make them likely candidates for exclusion from further
analysis.
- Compose our test-bed dataset
- Document Phase I testing and reporting protocols
- Start execution

Version 0.5 (May 1st, 2020)
----------------------------
#. Registration between dMRI and T1w image.
# Continue with the development of ISBI 2021 tutorial

Version 0.7 (March, 2021)
-------------------------
The *noisy month*. This is not a musical event, but a development cycle where we will
focus on the implementation of steps addressing noise in DWI:

#. Identification of outlier measurements (+ imputation?)

If we get around to doing thesee steps earlier, they can also be included in
earlier releases.
#. Implementation of component-based noise identification techniques
oesteban marked this conversation as resolved.
Show resolved Hide resolved

#. Gibbs-ringing: investigate whether it should be estimated if other techniques
are in place (i.e., component-based above), and ordering of steps.

josephmje marked this conversation as resolved.
Show resolved Hide resolved
Version 1.0 (Targetted for September 2020)
------------------------------------------
After integrating the above steps, we will spend the time leading to a 1.0
testing the software on various datasets, evaluating and validating the
resulting derivatives.
#. Rician bias modeling.

#. DWI carpet-plot and confounds collation.

#. Testing Phase I execution

#. Final release of the ISBI 2021 tutorial

Version 0.8 (April, 2021)
-------------------------
This release will only address bugfixes conducive to finishing evaluation Phase I,
which should conform a pretty solid ensemble ready for premiere in ISMRM 2021.

Version 0.9 (May, 2021)
-----------------------
#. First official presentation at ISMRM 2021 (should the abstract be accepted)
#. Evaluation Phase II starts.

- Determine an appropriate dataset
- Plan for benchmarking experiments (`#121 <https://github.com/nipreps/dmriprep/issues/121>`__)
- Start with addressing issues as they are reported

Version 1.0 (Targetted for September 2021)
------------------------------------------
Wrap-up evaluation Phase II with the first stable release of *dMRIPrep*.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it might be helpful to clarify that dmriprep is both dataset-adaptive (i.e. to heterogeneous acquisition/encoding schemes, available metadata) and user-configurable (i.e. providing the option to run denoising or not if associated compute cost would be too high, susceptibility distortion correction or not if the available data doesn't support it).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

user-configurable (i.e. providing the option to run denoising or not if associated compute cost would be too high, susceptibility distortion correction or not if the available data doesn't support it).

I would prefer it were not very configurable - and that requires a lot of solid heuristics. But the less human intervention, the better.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair enough.

Though I think at least the former (i.e. dataset adaptive) is a key selling point since there are good reasons to think that the same steps are not optimal for all types of dMRI data...

Long-term plans
---------------
In the long run we would like to explore the following processing steps:

- Gibbs ringing (using DIPY's image-based implementation).
- Denoising (e.g., MP-PCA)
- Rician bias correction
- Gradient non-linearity correction
- B1 inhomogeneity field estimation and :abbr:`INU (intensity non-uniformity) correction`
- Signal drift correction