ANTsX / ANTs

Advanced Normalization Tools (ANTs)
Apache License 2.0
1.18k stars 378 forks source link

DIffusion tensor processing upgrades #752

Open stnava opened 5 years ago

stnava commented 5 years ago

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:

related recent issue:

https://github.com/ANTsX/ANTs/issues/642

dorianps commented 5 years ago

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

jeffduda commented 5 years ago

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

stnava commented 5 years ago

@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:

following on suggestions in my original issue, "would be nice" to have:

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 .....

cookpa commented 5 years ago

https://github.com/ANTsX/ANTs/wiki/Warp-and-reorient-a-diffusion-tensor-image

cookpa commented 5 years ago

For pre-processing of multi-shell data, check out QSIprep.

jeffduda commented 5 years ago

@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.

dorianps commented 5 years ago

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 notifications@github.com 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 .

jeffduda commented 5 years ago

That's definitely a mistake as it is not on cran

On Wed, Apr 10, 2019 at 3:13 PM dorianps notifications@github.com 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 notifications@github.com 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 .