daducci / COMMIT

Linear framework to combine tractography and tissue micro-structure estimation with diffusion MRI
Other
43 stars 33 forks source link

Peaks file requirement for COMMIT2 #107

Closed sidchop closed 2 years ago

sidchop commented 2 years ago

Hi,

We are applying commit2 to some data and noticed that the peaks.nii file is not explicitly used in the code provided in the commit2 wiki (https://github.com/daducci/COMMIT/wiki/COMMIT2), unlike the standard commit code where it is specified in trk2dictionary.run - we just wanted to confirm that the peaks file is still required to run commit2.

Thanks, Sid

daducci commented 2 years ago

Dear Sid,

COMMIT2 can be used with the very same signal models as of COMMIT, e.g. Sticks-Balls or Sticks-Zeppelins-Balls etc. However, COMMIT2 uses a regularization that penalizes the intra-axonal compartment (i.e., streamlines) to promote solutions with a small number of bundles. Thus, if you use a model that can explain the anisotropic part of the signal with both intra-axonal (sticks) and extra-axonal (zeppelins) compartments, then you are promoting solutions that explain the signal mainly with the extra-axonal component, as the contributions of intra-axonal one are demoted. This does not happen is you only use Sticks and Ball, as they explain the anisotropic and isotropic components of the signal, respectively, and there is no ambiguity.

Of course you can use COMMIT2 with the full model (IC, EC and ISO) but then you'll have to play with the corresponding regularization parameters (lambda1, lambda2 and lambda3), and this is quite tricky. Please note that, in the paper, we had used a model that fits the streamlines only to the intra-axonal compartment (as estimated by e.g. NODDI or SMT), and no extra-axonal or isotropic components were present. This was done exactly because of this, as we had only one free parameter to tune, i.e. lambda1.

One way to cope with this is to use a two-step procedure as follows:

  1. First, you fit your tractogram to the data using COMMIT2 and the Sticks-Balls model, so no extra-axonal compartment, and you only have to tune one free parameter, i.e. lambda1.
  2. Once you estimate the corresponding streamline contributions, i.e. streamline_weights.txt, then you can filter the tractogram using these values and create a pruned version. I mean, discarding those streamlines whose weight is smaller than a given threshold, typically 0. You can achieve this by using e.g. tckedit from MRtrix (https://mrtrix.readthedocs.io/en/latest/reference/commands/tckedit.html) via the -tck_weights_in and -minweight options.
  3. Finally, you fit the pruned tractogram you just created to the same dMRI data but using this time COMMIT and the full model (i.e. Sticks-Zeppelins-Balls), as in the wiki demo.

Hope this helps. Of course do not hesitate to write me back in case you need further assistance, I'm glad to help!

Best, Ale

sidchop commented 2 years ago

Thanks for your detailed response Ale. We are only using a Sticks and Ball model for our data - so if I've interpreted correctly, the peaks are not needed in this case.

daducci commented 2 years ago

Exact!