Hi Tyler
If your targets are surfaces, then probtrackx2 will allocate memory for each surface separately, hence the high RAM requirement. This is not the case for volume targets, where both probtrackx (recent versions) and probtrackx2 use a memory saving trick. So you shouldn't see such a difference in RAM needs if your targets are volumes.
If all your surfaces are, say, cortical patches, or subsets of the *same* surface (as I imagine they might be), then you can use the following trick:
- Use the --omatrix2 option instead of --os2t and set --mask2 to be the whole cortical surface
- The output matrix will be #Seeds X #SurfaceVertices, so you can extract the relevant values by adding the appropriate columns from the resulting matrix2 given your targets
The only issue is that, with this method, unlike with --os2t, a streamline that crosses the surface twice (at different locations within a target) will be counted twice. In order to avoid that, you can set the target surface (--mask2) to be a stopping mask as well.
Cheers
Saad
On 4 May 2012, at 05:58, Tyler Blazey wrote:
> Hello again,
>
> Sorry to post another question so soon. I have been trying to use probtrackx2 to run seeds_to_targets on a relatively large number of targets (~80). When I do this, it takes up a large amount of RAM (44.85 GB) and takes around 4 hours. I get similar performance when using surface based seeds/targets. When I run the same command with probtrackx it uses up 1.41 GB and takes a bit less than 2.5 hours. Is this difference in performance between the two versions to be expected?
>
> Thanks,
>
> -Tyler
>
--
Saad Jbabdi
University of Oxford, FMRIB Centre
JR Hospital, Headington, OX3 9DU, UK
(+44)1865-222466 (fax 717)
www.fmrib.ox.ac.uk/~saad
|