# 3dTsort¶

```
Usage: 3dTsort [options] dataset
Sorts each voxel and produces a new dataset.
Options:
-prefix p = use string 'p' for the prefix of the
output dataset [DEFAULT = 'tsort']
-inc = sort into increasing order [default]
-dec = sort into decreasing order
-rank = output rank instead of sorted values
ranks range from 1 to Nvals
-ind = output sorting index. (0 to Nvals -1)
See example below.
-val = output sorted values (default)
-random = randomly shuffle (permute) the time points in each voxel
* Each voxel is permuted independently!
* Why is this here? Someone asked for it :)
-ranFFT = randomize each time series by scrambling the FFT phase
* Each voxel is treated separately!
* Why is this here? cf. Matthew 7:7-8 :)
-ranDFT = Almost the same as above, but:
* In '-ranFFT', the FFT length is taken
to be the next integer >= data length
for which the FFT algorithm is efficient.
This will result in data padding unless
the data length is exactly 'nice' for FFT.
* In '-ranDFT', the DFT length is exactly
the data length. If the data length is
a large-ish prime number (say 997), this
operation can be slow.
* The DFT/FFT algorithm is reasonably fast
when the data length prime factors contain
only 2s, 3s, and/or 5s.
* Using '-ranDFT' can preserve the spectral
(temporal correlation) structure of the
original data a little better than '-ranFFT'.
* The only reason to use '-ranFFT' instead of
'-ranDFT' is for speed. For example, with
997 time points, '-ranFFT' was about 13 times
faster (FFT length=1000) than '-ranDFT'.
-datum D = Coerce the output data to be stored as
the given type D, which may be
byte, short, or float (default).
Notes:
* Each voxel is sorted (or processed) separately.
* Sub-brick labels are not rearranged!
* This program is useful only in limited cases.
It was written to sort the -stim_times_IM
beta weights output by 3dDeconvolve.
* Also see program 1dTsort, for sorting text files of numbers.
Examples:
setenv AFNI_1D_TIME YES
echo '8 6 3 9 2 7' > test.1D
3dTsort -overwrite test.1D
1dcat tsort.1D
3dTsort -overwrite -rank test.1D
1dcat tsort.1D
3dTsort -overwrite -ind test.1D
1dcat tsort.1D
3dTsort -overwrite -dec test.1D
1dcat tsort.1D
++ Compile date = Dec 7 2023 {AFNI_23.3.12:linux_ubuntu_16_64}
```