Print

Print


Hi Paul and Niels,
           This is the code for WINSORIZATION  with I have pulled up from
initial comments and later write up. Thanks all for the help.

Please see the code and write your feedback. Is this look ok?

#############extracting the mean and STD##############

fslmaths all_OD_skeletonised.nii.gz -mas ROI_01_mas.nii.gz -thr 0
all_OD_skeletonised_ROI_01.nii.gz

fslstats all_OD_skeletonised_ROI_01.nii.gz -M > ROI_01_OD_M.txt

fslstats all_OD_skeletonised_ROI_01.nii.gz -S > ROI_01_OD_S.txt

mu=`more ROI_01_OD_M.txt`
sd=`more ROI_01_OD_S.txt`

3sd_low=`echo "mu - 3*(sd)" | bc -l`
3sd_high=`echo "mu + 3*(sd)" | bc -l`

#######generation of WINSORIZED ROI ################

fslmaths all_OD_skeletonised_ROI_01.nii.gz -thr 3sd_low -uthr 3sd_high
all_OD_skeletonised_ROI_01_thr.nii.gz

fslmaths all_OD_skeletonised_ROI_01.nii.gz -uthr 3sd_low
all_OD_skeletonised_ROI_01_lthr.nii.gz -bin -mul 3sd_low
all_OD_skeletonised_ROI_01_lthr.nii.gz

fslmaths all_OD_skeletonised_ROI_01.nii.gz -thr 3sd_high
all_OD_skeletonised_ROI_01_lthr.nii.gz -bin -mul 3sd_high
all_OD_skeletonised_ROI_01_uthr.nii.gz

fslmaths 3sd_high all_OD_skeletonised_ROI_01_thr.nii.gz -add
all_OD_skeletonised_ROI_01_lthr.nii.gz -add
all_OD_skeletonised_ROI_01_uthr.nii.gz all_OD_skeletonised_ROI_01_win.nii.gz

########################Extracting mean and std from WINSORIZED ROI

fslstats all_OD_skeletonised_ROI_01_win.nii.gz -M > ROI_01_OD_M_win.txt

fslstats all_OD_skeletonised_ROI_01_win.nii.gz -M > ROI_01_OD_S_win.txt

###################END#####################

Please see to it, and give your comments

Kind regards
sourajit




On Thu, Sep 29, 2016 at 3:18 PM, Niels Bergsland <[log in to unmask]>
wrote:

> You could alternatively modify your previous command and use -min and -max
> options instead.
>
>
> On Thursday, September 29, 2016, Paul Robinson <[log in to unmask]>
> wrote:
>
>> 'lo again.
>>
>> Sorry, it occurs to me that the code above simply truncates your roi
>> which is not really Winsorization. However, it should remove those voxels
>> which are 3 sds more or less than the mean, which is an okay first step. I
>> would use fslmaths to create separate images of those voxels which exceed
>> mu+/-3sd (-thr/-uthr), binarize them (-bin), and then multiply them by the
>> appropriate constraint (-mul). Then you can simply add these three rois
>> together.
>>
>> Best,
>> Paul
>>
>>
>> On Thu, Sep 29, 2016 at 9:57 AM, Paul Robinson <[log in to unmask]>
>> wrote:
>>
>>> Hi, Sourajit
>>>
>>> Something like this?
>>>
>>> ### Or however you want to get the mean and sd
>>> mu=`more ROI_01_OD_M.txt`
>>> sd=`more ROI_01_OD_S.txt`
>>>
>>> 3sd_low=`echo "mu - 3*(sd)" | bc -l`
>>> 3sd_high=`echo "mu + 3*(sd)" | bc -l`
>>>
>>> fslmaths all_OD_skeletonised_ROI_01.nii.gz -thr 3sd_low -uthr 3sd_high
>>> all_OD_skeletonised_ROI_01_win.nii.gz
>>>
>>> Hope this helps,
>>> Paul
>>>
>>> On Thu, Sep 29, 2016 at 9:44 AM, Sourajit Mitra Mustafi <
>>> [log in to unmask]> wrote:
>>>
>>>> Dear admin,
>>>>                                    I have extracted an ROI image in FSL
>>>> and computed its mean, median and standard deviation for non-zero voxel
>>>> using
>>>> the following option.
>>>>
>>>> fslmaths all_OD_skeletonised.nii.gz -mas ROI_01_mas.nii.gz -thr 0
>>>> all_OD_skeletonised_ROI_01.nii.gz
>>>>
>>>> fslstats -t all_OD_skeletonised_ROI_01.nii.gz -M > ROI_01_OD_M.txt
>>>>
>>>> fslstats -t all_OD_skeletonised_ROI_01.nii.gz -S > ROI_01_OD_S.txt
>>>>
>>>> fslstats -t all_OD_skeletonised_ROI_01.nii.gz -P 50 > ROI_01_OD_P.txt
>>>>
>>>> Is there is any way to WINSORIZE an image for non-zero voxel in FSL. I
>>>> am trying a method based on ROI analysis and for that reason winsorization
>>>> of image is important. fslstats doesn't provide that option. Please help me
>>>> out.
>>>>
>>>> Kind regards
>>>> sourajit
>>>>
>>>
>>>
>>
>
> --
> Niels Bergsland
> Integration Director
> Buffalo Neuroimaging Analysis Center
> 100 High St. Buffalo NY 14203
> [log in to unmask]
>