Skip to content

Tracking parameter updates#1833

Merged
Lestropie merged 14 commits intodevfrom
tracking_parameters
Jan 11, 2020
Merged

Tracking parameter updates#1833
Lestropie merged 14 commits intodevfrom
tracking_parameters

Conversation

@Lestropie
Copy link
Copy Markdown
Member

This will become a central PR for multiple proposed changes to tracking parameters, due to the potential for interplay between them.

PR is to encapsulate:

Once I've written a script to generate output data for a range of prospective cutoffs for all possible algorithms & configurations, it'll go here for discussion.


Other points that we may want to consider in this context given we're performing "an overhaul of default tracking parameters":

  • Add some downsampling by default for first-order algorithms without RK4 to decrease file size.

  • Change iFOD2 power from (1/nsamples) to (1/(nsamples-1)). There may be a more appropriate derivation for such, but for the current derivation the arithmetic is nevertheless incorrect.

jdtournier and others added 7 commits June 21, 2019 16:15
For first-order algorithms for which 4th-order Runge-Kutta is available, make the default step size 1/4 of a voxel, rather than 1/10th.
Resolve divergence between #1630 and #1507. Use a single function Tractography::Shared::set_step_and_angle() that is responsible for setting up both the step size and maximum deviation angle per step. Remove calculation of maximum angle based on radius of curvature, in favour of a fixed angle for each algorithm. Use separate member variables for maximum angles and related quantities between first-order and higher-order integration as was introduced in #1507.

Conflicts:
	src/dwi/tractography/algorithms/fact.h
	src/dwi/tractography/algorithms/iFOD1.h
	src/dwi/tractography/algorithms/iFOD2.h
	src/dwi/tractography/algorithms/nulldist.h
	src/dwi/tractography/algorithms/sd_stream.h
	src/dwi/tractography/algorithms/seedtest.h
	src/dwi/tractography/algorithms/tensor_det.h
	src/dwi/tractography/tracking/shared.cpp
	src/dwi/tractography/tracking/shared.h
	src/dwi/tractography/tracking/tractography.cpp
Missed unused variable in the process of generating merge commit bc68b7d.
…tracking_parameters

Items that required manual resolution:
- For iFOD1 in conjunction with RK4, permit the standard 15 degrees sampling cone for each internal RK4 sampling step; don't enforce angle thresholds at all for the complete RK4 step.

Conflicts:
	src/dwi/tractography/algorithms/iFOD1.h
	src/dwi/tractography/algorithms/nulldist.h
	src/dwi/tractography/algorithms/sd_stream.h
	src/dwi/tractography/algorithms/tensor_det.h
@Lestropie Lestropie added this to the MRtrix3 3.0 release milestone Dec 5, 2019
@Lestropie Lestropie self-assigned this Dec 5, 2019
@Lestropie
Copy link
Copy Markdown
Member Author

Initial image dump; only a coarse parameter set right now, can generate more fine-grained results as we hone in on targets for particular algorithms.

Note that sh2peaks wth default parameters was used for FACT algorithm.

Full-resolution image link

Without ACT

FACT

compilation_None_FACT_small

iFOD1

compilation_None_iFOD1_small

iFOD2

compilation_None_iFOD2_small

SD_STREAM

compilation_None_SDSTREAM_small

With ACT (no back-tracking)

FACT

compilation_ACT_FACT_small

iFOD1

compilation_ACT_iFOD1_small

iFOD2

compilation_ACT_iFOD2_small

SD_STREAM

compilation_ACT_SDSTREAM_small

@Lestropie
Copy link
Copy Markdown
Member Author

  • For ACT, I've always wondered whether thresholds should simply be disabled outright. I think there's a decent case to be made for that for the deterministic algorithms. iFOD1 and iFOD2 get a bit messy with too low a threshold, though raising the iFOD2 power may mitigate some of that. Even if non-zero it's possible that the default threshold for these should be lower if ACT is used compared to if it is not. ACT already influences the default minimum length, so there is some precedent for it influencing tracking parameters.

  • I made -power work for iFOD1 in addition to iFOD2, thinking it might make sense for the power when RK4 is used to be 0.25. That produces absolute junk; but I think keeping the -power option operational for both iFOD1 and iFOD2 makes sense.

@Lestropie
Copy link
Copy Markdown
Member Author

Similar for targeted tracking.

Full-size images download

Without ACT

FACT

None_FACT_small

iFOD1

None_iFOD1_small

iFOD2

None_iFOD2_small

SD_STREAM

None_SDSTREAM_small

With ACT (no back-tracking)

FACT

ACT_FACT_small

iFOD1

ACT_iFOD1_small

iFOD2

ACT_iFOD2_small

SD_STREAM

ACT_SDSTREAM_small

Revert FOD amplitude & fixel size default cutoffs from 0.05 back to 0.1 (partial reversion of #1228) based on combination of #1715 and #1545.
In addition, halve the default cutoff for all algorithms when utilising ACT as investigated in #1833.
- Change all tracking default parameters from macros to constexprs.
- Fix description of default angle for nulldist1.
- Clarification of -trials option.
New data to reflect change to default angular threshold in #1833.
Note that code at this commit does reproduce the old reference data if the former default angular threshold is specified explicitly at the command-line.
@Lestropie Lestropie marked this pull request as ready for review January 11, 2020 07:00
@Lestropie Lestropie merged commit b4aa0d2 into dev Jan 11, 2020
@Lestropie Lestropie deleted the tracking_parameters branch January 11, 2020 09:20
@jdtournier
Copy link
Copy Markdown
Member

😱

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants