Hi all,
Simple question about 3dClusterize — to my knowledge you can set a minimum cluster size using -clust_nvox but is there a way to restrict how big the clusters are? I feel that individual structures I'm trying to target are getting inaccurately grouped together.
Thanks!
Leela
Hi, Leela-
That's right, minimal cluster size only. If you mega clusters that don't seem right, then it's probably good to get to the root of those separately.
One thing to note---are you using -bisided ..
? That way, clusters in the right- and left-tails of a 2-sided hypothesis (which is nearly alllll hypotheses in neuroimaging and important to treat correctly) remain distinct rather than building together in a way that doesn't seem useful/correct.
--pt
1 Like
HI Paul,
Thank you for that suggestion, I've incorporated that change now. I'm still having trouble — I'm expecting clusters on the order of 2-150 voxels as perivascular spaces, and when the t1 (we are unfortunately using 3T) is a bit less clear, I'm getting a single massive cluster spanning about 30,000 voxels that blocks the possibility of detecting anything else in that area.
There certainly could be problems earlier in the pipeline, but I am wondering if anything stands out to you as a distinct error with these parameters
3dClusterize \
-inset gm_within_cerebral_wm.nii \
-NN 1 \
-bisided -2 2 \
-ithr 0 \
-idat 0 \
-within_range 0 1 \
-clust_nvox 2 \
-pref_map pvs_within_cerebral_wm.nii \
> pvs_within_cerebral_wm.txt
Thank you so much!
Best,
Leela
Hi, Leela-
Thanks for sharing the command.
I think you should be using either -bisided ..
or -within_range ..
. Those are two different ways of specifying the initial thresholding before clusterizing.
- -bisided A B: only keep values below A or above B
- -within range A B: only keep values that are both above A and below B
Which kind of initial thresholding is more appropriate for your dataset of interest---keeping tails or keeping a "core" chunk?
--pt
Hi Paul,
I'm realizing I forgot to mention something distinct. The input dataset/inset file is binary, so I'm only looking to restrict spatial grouping. I mistakenly thought that -bisided may be voxel count based, but I'm assuming now that it is intensity based? I had initially passed in -within_range 0 1 just to address the binary dataset.
If there is a better way of doing things please let me know! I'm not sure if clustering is really advised for a binary dataset but I'm not sure how else to attempt to spatially group my dataset.
Thanks again,
Leela
Hi, Leela-
OK, thanks for the further description. It looks like then you are using 3dClusterize to get rid of what we might call "singleton" voxels (the loners in the dset), and then also making maps/table entries of the remaining clusters. That is certainly fine. If the values are binary, you could use:
-1sided RIGHT 0.5
as well (instead of -bisided ..
or -within ..
), to find nonzero islands.
--pt
Hi Paul,
Thank you so much for your help! This definitely helped to use 3dClusterize properly and identify exactly where errors arose earlier in the pipeline. I appreciate it!
Hi, Leela-
Sure thing, and glad that is useful.
Note that you can also use 3dClusterize itself on non-binarized and non-integer-valued data, to do the thresholding then in ~flexible ways, if that is useful.
--pt