Print

Print


Hi Arushi

Unfortunately there is no way to do this at the moment in the released version.  We do have a new option that may solve your problem, but it is not released yet.  This new option can be used to specify a termination mask that only works as a termination the *second* time you enter it, which I think would solve your problem.
We will try to include this in the next release.

Cheers
Saad


On 10 Mar 2015, at 21:00, Arushi Garg <[log in to unmask]<mailto:[log in to unmask]>> wrote:

Dear experts,
For a problem in our project we need to obtain structural connectivity data for different spatial resolutions to then perform subsequent analysis with it. We have per subject pre-processed(bedpostx) data available to us. We have a mask that contains a little more than 50k voxels of the cortical surface we are interested in. As we want to have this data for different spatial resolutions, what we want to do is to run probtrackx2 on the data and get tractography information at the voxel to voxel level.We would be running the probtrackx2 using ssh and grid engine to run it for each of the >50k voxels  After this we would combine the voxels in the connectivity matrix obtained according to different spatial resolutions or different ranges of freesurfer masks as desired. As the variation that we want to see in spatial resolution is large( from a few voxels to hemispheric), having the voxel to voxel data would allow us to not have to run the probtrackx2 option again and again to do the subsequent analysis.

At this point we can and have run the algorithm and it gives us a high resolution output. However, this output is not as precise as it can be. This is because  some fibers are counted double, because they are not terminated as soon as they reach a target but continue on to other targets and are thus counted twice.

We already have an exclusion mask based on a thresholded FA value. But to overcome the current lack of precision(as mentioned above), we would also need to specify a termination mask for each voxel. This termination mask should include all other voxels except the seed voxel(as otherwise, no tracts are able to be sent out from the region - as they start and end there, being part of the termination masks). There are above 50k voxels in our data, so we would need to have above 50k termination masks. That would overly complicate the call to probtrackx which we would have to repeat 50000 times and would lead to small file clutter

So we have the following questions:
1. Is there an option we can choose or a parameter we can specify that would automatically exclude the corresponding seed voxel for that run from the termination mask?
2. How does sampvox work? Would we be able to use this for our particular problem? From what we imagine, this might be a good solution as in this case, the tracts would be sent out from outside of the voxel and so there would still be many tracts that would be able to go out in other directions.

Following is our run:
fsl/5.0/bin/probtrackx2
-x $maskfile -l
--onewaycondition
-c 0.2 -S 2000
--steplength=0.5 -P 5000
--fibthresh=0.01
--distthresh=0.0
--sampvox=0.0
--avoid=ca01_1_FA_thr0.12.nii.gz
--forcedir --opd
-s ca01_1_dti/bedpost.bedpostX/merged
-m ca01_1_dti/bedpost.bedpostX/nodif_brain_mask
--dir=freesurfer_SingleSeeds/$regionName
--targetmasks=freesurfer_masks.txt
--os2t
--omatrix2
--target2=compl_fs_mask.nii

------------------------------------------------------------------
Saad Jbabdi, PhD
MRC Career Development Fellow &
University Research Lecturer

FMRIB Centre, University of Oxford,
John Radcliffe Hospital, Oxford, OX3 9DU, UK.
tel (+44)1865-222466  (fax 717)
www.ndcn.ox.ac.uk/team/researchers/saad-jbabdi<http://www.ndcn.ox.ac.uk/team/researchers/saad-jbabdi>