Print

Print


Hi Nas, Hi Matt,

The idea (or hack..) behind the distance correction is the following: instead of calculating the probability p(A->B) which decreases when the distance from A to B increases, we multiply this probability by the expected length of the A->B connection E(length(A->B)). 

This expected length can be directly calculated from the samples within the probtrackx code: The product p(A->B)*E(length(A->B)) is simply the sum of the lengths (at B) of all sample tracts that depart from A and reach B (devided by the total number of samples). So in practice, all we need to do in the code is, instead of storing the number of samples reaching a voxel, we store the length that a sample has accumulated so far (added to the same quantity from previous samples).

[to be more precise, here p(A->B) is in fact #{samples}*p(A->B) which allows us to store counts (integers) rather than probabilities (floating points)]. So the result of the product above is also scaled by the total number of samples, which defaults to 5000].


Unfortunately, we do not store p(A->B) when the --pd option is on, so you will need to run probtrackx twice if you want both p(A->B) and E(length(A->B)).

Finally, I agree that the expected tract length is dependent on the size of the head, but so is p(A->B) [probabilities will decrease with distance]. The correction being applied within subject, it might be beneficial to use the --pd option for each individual. However, you need to keep in mind that it is just a hack with no particular theoretical foundation...


Cheers,
Saad.




On 3 Aug 2009, at 21:07, Nasim wrote:

Hello Matt,

I would like to ask 3 follow up questions on my previous question please:

1- How is 'the average distance to the target' calculated for each voxel?
2- Could I get the '#samples' and 'the average distance to the target values' separately rather than their product?
3- If I want to do some sort of group averaging of my results wouldn't it make more sense if I don't use --pd option for each individual object. My sense is that the average distance to the target scales with the head size and maybe combining measures of the number of samples would make more sense. What would you recommend?

Sincerely,
Nas



--- On Thu, 7/30/09, Matt Glasser <[log in to unmask]> wrote:

From: Matt Glasser <[log in to unmask]>
Subject: Re: [FSL] Connectivity-Based Seed Classification: >5000 results?
To: [log in to unmask]
Date: Thursday, July 30, 2009, 5:33 PM

Well, then the numbers in any voxel are #samples that reached the target X average distance to the target, which is why they are bigger than 5000.  

 

Peace,

 

Matt.

 

From: FSL - FMRIB's Software Library [mailto:[log in to unmask]] On Behalf Of Nasim
Sent: Thursday, July 30, 2009 4:03 PM
To: [log in to unmask]
Subject: Re: [FSL] Connectivity-Based Seed Classification: >5000 results?

 

Hi Matt,

 

Thanks for your note. Yes, I did use the --pd option. 

 

Thanks again,

Nas

--- On Thu, 7/30/09, Matt Glasser <[log in to unmask]> wrote:


From: Matt Glasser <[log in to unmask]>
Subject: Re: [FSL] Connectivity-Based Seed Classification: >5000 results?
To: [log in to unmask]
Date: Thursday, July 30, 2009, 1:44 PM

Did you use distance correction (the --pd option)?

 

Peace,

 

Matt.

 

From: FSL - FMRIB's Software Library [mailto:[log in to unmask]] On Behalf Of Nasim
Sent: Thursday, July 30, 2009 12:35 PM
To: [log in to unmask]
Subject: [FSL] Connectivity-Based Seed Classification: >5000 results?

 

Hi all,

 

I'm output f my connectivity-based seed classification results, there are voxels for which I have values above 5000 (Number of Samples in PROBTRCKX). How does this happen and what does it mean?

 

Thanks for your help,

Nas

 
 




--
Saad Jbabdi
University of Oxford, FMRIB Centre

JR Hospital, Headington, OX3 9DU, UK
+44 (0) 1865 222523  (fax 717)