[Neuroimaging] [dipy] Resampling in bundle registration with uneven stepsize

Eleftherios Garyfallidis garyfallidis at gmail.com
Tue Feb 9 10:04:32 EST 2016


Hello,

Great question. Thanks for asking.

Every streamline needs to have the same number of points. There is a theory
behind this. This is needed to calculate properly the MDF (minimum direct
flipped) distance which is then consequently used in the similarity metric
to drive the registration, the BMD (bunde-based minimum distance). If you
don't do that then the theory breaks and the algorithm will not do well.

So, yes you have to set the number of points in order to use the SLR for
streamlines. If you don't do it you will not have a good space to drive the
registration and find the optimum. For more info you look at the paper
http://www.ncbi.nlm.nih.gov/pubmed/25987367


On Tue, Feb 9, 2016 at 9:38 AM, Samuel St-Jean <stjeansam at gmail.com> wrote:

> While looking at the example over here [1], one important step is to
> resample everything to the same size. Unfortunately, the why is not
> mentioned in the example, so I was wondering if it is for performance
> reason (quickbundle needs that, and it is used internally or at least if
> uses the same distance metric) or for theoretical reasons?
>
> Would it still work well on uneven stepsize bundles (fancy
> tracking/compressed fibers) as long as they have the same number of points
> or would something break in the theory by doing that? Should one aim to
> resample to an even number of points and even stepsize or only the number
> of points matter for this algorithm?
>
>
Yes, as long as you have the same number of points, it should be good. It's
also more preferable to have equidistant points (all line-segments of equal
length also known as fixed-length representation).

So, every time you use the SLR with any streamlines
(compressed/uncompressed etc.) always use set_number_of_points first to
make sure all is good. This function will make sure that the streamlines
will have the same number of points for all streamlines and equal length of
segments per streamline. And then call StreamlineLinearRegistration.

This is shown in the example but indeed there is no explanation for why (I
should add a comment there)
http://nipy.org/dipy/examples_built/bundle_registration.html#example-bundle-registration

Cheers,
Eleftherios


>
> [1]
> http://nipy.org/dipy/examples_built/bundle_registration.html#example-bundle-registration
>
> _______________________________________________
> Neuroimaging mailing list
> Neuroimaging at python.org
> https://mail.python.org/mailman/listinfo/neuroimaging
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/neuroimaging/attachments/20160209/08b5b398/attachment.html>


More information about the Neuroimaging mailing list