3dBrickStat percentile


I have a nifti file (myfile.nii.gz) with values between 1.2326e-32 and 5.58214e-07.
I am interested in certain percentile values, but when I use for example 3dBrickStat -perclist 1 100 -perc_quiet myfile.nii.gz, it returns a value with only the first 6 decimals, which in this case would be all zeros (0.000000) while instead I would like to get 5.58214e-07. In this specific example since it’s the 100 percentile I guess I could use 3dBrickStat -max myfile.nii.gz and it will return 5.58214e-07, but I need also other percentile values and therefore I need to use the percentile options.

Is there any way to increase the number of decimals printed out or to obtain the whole decimal number with the option -perclist?

Thank you,

Hi, Giuseppe-

How about taking the log10(…) of the dataset before 3dBrickStat:

3dcalc -a DSET -expr 'log10(a)' -prefix DSET_LOG10

3dBrickStat -perclist 1 100 -perc_quiet DSET_LOG10

? That will just transform your range from [1.2326e-32, 5.58214e-07] → [-31.90917784, -6.25319928], but it should be a one-to-one mapping, hence fine? And exponentiation with 10**(…) will undo that?

When so many orders of magnitudes are being spanned with values, it seems nice to use logarithms, anyways.


Yes, that worked nicely. Thank you very much!