ANTs
ANTs copied to clipboard
DIffusion tensor processing upgrades
Is your feature request related to a problem? Please describe.
@ntustison @dorianps and i have repeatedly encountered barriers to doing basic processing of DWI to DTI. we've encountered limitations of both mrtrix and dipy and are loathe to depend on FSL. more or less, its license and style are restrictive. i recall @hjmjohnson contributed something a while back, perhaps for similar reasons. not sure what he is doing now for DTI.
in summary, we would like to be able to use ANTs to reconstruct DTI and get motion correction parameters etc. we are sitting on some datasets that we would like to reprocess with a more standardized approach.
Describe the solution you'd like
we would like to have a documented "best practice" for reconstructing DTI from DWI and producing QC measures like framewise displacement along the way. as a first pass, we dont want to worry about reorienting gradient tables and such. we may instead avoid interpolation and include nuisance regressors in the reconstruction as a work around.
we are happy to write code to achieve this.
Describe alternatives you've considered
We have considered using dipy and/or mrtrix for this but have stumbled with limitations of both. Eg for dipy, i could not see any approach beyond basic reconstruction.
Additional context
a potential set of steps ( first pass )
(1) extract brain from each dwi (2) motion correct resulting brainExtractionMask*DWI => save params (3) compute nuisance variables ( eg FD ) (4) reconstruct the dti while covarying for motion ( either FD or motion parameters directly ) (5) provide an example dataset + github repo with documentation of whatever it is we are recommending --- and its limitations, which some of us may be willing to accept just to be able to move forward knowingly.
potential regression approaches shown here:
http://pfeifer.phas.ubc.ca/refbase/files/Kingsley-ConceptsInMagnetic-2006-28a-155.pdf
ANTsR/PyDTI package?
detailed questions:
- do we just reorient and assume small rotations?
- do we keep the original orientation of the data ( no resampling ) and then covary for motion?
- do we use robust regression ( like we use in the CBF from ASL recon )?
- do we perform distortion correction?
- what is our current best practice in ANTs or ANTsR with minimal dependencies on FSL?
related recent issue:
https://github.com/ANTsX/ANTs/issues/642
I have been a bit out of DWI analyses lately but I agree with @stnava. But I think the need is more for DWI data preprocessing than DTI computations itself. If DTI is included, maybe some robust regression would be helpful (ExploreDTI used the RESTORE approach a while back).
I hope the tool can reorient gradients as well. Not sure to what degree gradient reorientation is equivalent to motion regression (the above paper is 14 years old). We could ask around some DWI people/mailing lists. In addition, proper preprocessing normally requires eddy + motion + EPI distortion correction. Probably @stnava didn't want to go that far with all preprocessing steps, but just saying, it would be great to have a full preprocessing routine under ANTs's environment/licence.
Dorian
I have some very basic DWI/DTI extensions for ANTsR at https://github.com/jeffduda/DANTsR. Most of the focus there has just been on building simple tools that make it easier to deal with DTI and tractography (i.e. just making sure you can read and write the various formats correctly, simple scalar calculations, etc). If there is interest, I'm happy to add any interested developers, alternatively, feel free to take a look and see if there are any pieces that can be pulled out and incorporated elsewhere
@jeffduda thanks for the reminder ... i forgot about this! anyway, i am sure @ntustison would agree that we'd be happy to stick with this framework that you have, if you welcome contributions and feedback. i just have a couple of preliminary requests that should be easy to address:
-
can you add .travis.yml and install / test ? you can base on https://github.com/ANTsX/ANTsRNet/blob/master/.travis.yml
-
perhaps run https://pkgdown.r-lib.org/ and push to github ?
following on suggestions in my original issue, "would be nice" to have:
- brain masking for DWI
- motion correction + FD possibly based on masked DWI - dipy seems to have some simple approach that appears to work well though ive not tested extensively
- a regression based approach to DTI from DWI that can factor in nuisance variables ...
anyway, if people agree, i am happy to close this issue here and move to tracking at https://github.com/jeffduda/DANTsR .... i am not sure how much of this would be in ANTs anyway.
maybe one more question: have you thought about using anything from here?: https://cran.r-project.org/web/packages/dti/index.html
i guess one more q: is there a working example of deforming DTI to a template via (D)ANTsR ? or ANTs? i know @cookpa had something at one point .....
https://github.com/ANTsX/ANTs/wiki/Warp-and-reorient-a-diffusion-tensor-image
For pre-processing of multi-shell data, check out QSIprep.
@stnava I definitely welcome suggestions and contributions. It's already setup with a .travis.yml file and install testing. Will look into pkgdown. I'll go ahead and add you guys as contributors. I will be nice to have more focused development as thus far I've just been adding things piecemeal asI need them.
Jeff, I noticed you mention the package being on Cran but it doesn't seem listed in Cran. I was actually surprised that an ANTsR dependent package would be on Cran.
On Wed, Apr 10, 2019, 2:51 PM Jeffrey Duda [email protected] wrote:
@stnava https://github.com/stnava I definitely welcome suggestions and contributions. It's already setup with a .travis.yml file and install testing. Will look into pkgdown. I'll go ahead and add you guys as contributors. I will be nice to have more focused development as thus far I've just been adding things piecemeal asI need them.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ANTsX/ANTs/issues/752#issuecomment-481817629, or mute the thread https://github.com/notifications/unsubscribe-auth/AIqafS2msK5npvniYc2_a8rrQcf04KUIks5vfjLPgaJpZM4ckS12 .
That's definitely a mistake as it is not on cran
On Wed, Apr 10, 2019 at 3:13 PM dorianps [email protected] wrote:
Jeff, I noticed you mention the package being on Cran but it doesn't seem listed in Cran. I was actually surprised that an ANTsR dependent package would be on Cran.
On Wed, Apr 10, 2019, 2:51 PM Jeffrey Duda [email protected] wrote:
@stnava https://github.com/stnava I definitely welcome suggestions and contributions. It's already setup with a .travis.yml file and install testing. Will look into pkgdown. I'll go ahead and add you guys as contributors. I will be nice to have more focused development as thus far I've just been adding things piecemeal asI need them.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ANTsX/ANTs/issues/752#issuecomment-481817629, or mute the thread < https://github.com/notifications/unsubscribe-auth/AIqafS2msK5npvniYc2_a8rrQcf04KUIks5vfjLPgaJpZM4ckS12
.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ANTsX/ANTs/issues/752#issuecomment-481825033, or mute the thread https://github.com/notifications/unsubscribe-auth/AAfWiH2vaDB0x8uMtZ7EaX4HFOCNvRMsks5vfjf3gaJpZM4ckS12 .