Dear Rali,

Yes, your procedure should work for a mask. However, a procedure like this for the mean_FA will only give correct results if all chunks have the same number of subjects. If you are unfortunate and have a prime number of subjects, then there would be no solution except discard some of them... An alternative that doesn't require explicitly dividing the subjects into chunks would be to increment the mask and the mean_FA for each subject inside a loop. Below is a sketch, you can modify according to your needs (there are probably other solutions too):

1) Threshold the template (or the image of any subject) using a very high number, guaranteeing that nothing survives, so it contains only zeroes at the beginning of the loop:
fslmaths template.nii.gz -thr 20000 toincrement.nii.gz

2) Make a copy, now full of ones (intersection goes with multiplication, and 1 is neuter):
fslmaths toincrement.nii.gz -add 1 tomultiply.nii.gz

3) Start a counter in case you don't want to count how many subjects you have:
c=0

4) Loop over all subjects:
for i in ${list_images} ; do
   fslmaths ${i} -max 0 -bin -mul tomultiply.nii.gz tomultiply.nii.gz -odt char
   fslmaths ${i} -max 0 -add toincrement.nii.gz toincrement.nii.gz -odt double
   c=$(expr ${c} + 1)
done


5) At the end of the loop, the mask is simply the file named "tomultiply.nii.gz", and you can rename it (use immv for extension-free renaming):
mv tomultiply.nii.gz mask.nii.gz

6) The mean FA is the file named "toincrement.nii.gz" divided by the number of subjects (counter), with the mask applied:
fslmaths toincrement.nii.gz -div ${c} -mas mask.nii.gz mean_FA.nii.gz

Note that a for-loop is slower than averaging over the 4D (-Tmean), but the benefit is that you can operate in very large datasets without splitting the sample in subgroups all of the same size.

Hope this helps!

All the best,

Anderson


2013/1/13 Rali Dimitrova <[log in to unmask]>
Dear FSL users

Let say I was working on a large data set that would require to adjust the tbss_3 script to run chunk-wise. What I actually need as output is a study specific mask (mean_FA_mask). Would the following be correct:

1. Create a mean across all individual in chunk
 1.1. merging FA_to_target into n chunks -  fslmerge -t $chunk <input>
 1.2. creating a mask for each chunk -         fslmaths $chunk -max 0 -Tmin -bin mean_FA_mask_$chunk -odt char
 1.3. applying the mask to each chunk -       fslmaths $chunk -mas mean_FA_mask_$chunk $masked_chunk
 1.4. creating a mean_FA for each chunk-   fslmaths $masked_chunk -Tmean mean_FA_$chunk.nii.gz

2. Merging all chunks -                                   fslmerge -t mean_chunk  input<mean_FA_$chunk.nii.gz>

3. binarise the mean_chunk                         fslmaths mean_chunk -max 0 -Tmin -bin study_specific_mask -odt char

Considering that the study_specific mask is a binary file it should not be affected in any way by the order of my images in each chunk I am merging, am I right?

Your help will be greatly appreciated!!

Best wishes,
Rali