3dXClustsim issue?

Hi. I’m running into an issue with the new -ETAC flag in 3dttest++ and was hoping you might be able to provide some insight. From the source code, it looks like 3dXClustsim is supposed to have 4 steps, but everytime I have tried it so far it has died at the beginning of the 2nd step. I’ve tried this both with AFNI_COMPRESSOR as GZIP and NONE, so it doesn’t seem to be an issue with how the files are compressed. I’m running this on a machine with 32G of ram. Thanks for your time.

++ 3dttest++: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
++ Authored by: Zhark++
++ 1342305 voxels in -mask dataset
++ option -setA :: processing as SHORT form (all values are datasets)
++ option -setB :: processing as SHORT form (all values are datasets)
++ Number of 3dXClustSim threads set to 8

  • Default -ETAC prefix set to ‘TT.dVrqurAdvdH’
    ++ 2-sample test: ‘-AminusB’ option is assumed
    ++ 2-sample test: results will be mTBI - HC
    ++ loading -setA datasets
    ++ loading -setB datasets
    ++ Memory usage now = 833,427,680 (833 million [mega])
    ++ t-testing:0123456789.0123456789.0123456789.0123456789.0123456789.!
    ++ ---------- End of analyses – freeing workspaces ----------
    ++ Memory usage now = 1,455,296,476 (1.5 billion [giga])
    ++ Creating FDR curves in output dataset
    *+ WARNING: Smallest FDR q [1 mTBI-HC_Zscr] = 0.482721 ==> few true single voxel detections
    ++ Smallest FDR q [3 mTBI_Zscr] = 3.92401e-16
    ++ Smallest FDR q [5 HC_Zscr] = 3.50924e-16
  • Added 3 FDR curves to dataset
    ++ Output dataset /export/research/analysis/human/amayer/laptop_20753/cbf.analysis/results//ttest_CBF_mTBIvHC_ETAC+tlrc.BRIK
    ++ Output dataset ./TT.dVrqurAdvdH.resid.nii
    ++ Command to compute ACF from residuals now running:
    3dFWHMx -input TT.dVrqurAdvdH.resid.nii -acf TT.dVrqurAdvdH.resid.ACF.out -mask /export/research/analysis/human/amayer/laptop_20753/cbf.analysis/data/masks/TT_N27.vent_exclusion.mask+tlrc | tail -1 > TT.dVrqurAdvdH.resid.ACFparam.txt
    ++ 3dFWHMx: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: The Bob
    ++ Number of voxels in mask = 1342305
    ++ start FWHM calculations
  • FWHM done (0.00 CPU s thus far)
    ++ start ACF calculations out to radius = 20.53 mm
  • ACF done (0.00 CPU s thus far)
    ++ ACF 1D file [radius ACF mixed_model gaussian_NEWmodel] written to TT.dVrqurAdvdH.resid.ACF.out
    ++ 1dplot: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: RWC et al.
    pnmtopng: 41 colors found
  • and 1dplot-ed to file TT.dVrqurAdvdH.resid.ACF.out.png
    ++ ACF parameters output in TT.dVrqurAdvdH.resid.ACFparam.txt
  • 2-sample test: results are mTBI - HC
    ++ ================ Starting -ETAC calculations ================
  • === temporary files will have prefix TT.dVrqurAdvdH ===
  • === running 8 -randomsign jobs (4500 iterations per job) ===
  • #0 jobs command:
    3dttest++ -DAFNI_AUTOMATIC_FDR=NO -DAFNI_DONT_LOGFILE=YES -RANDOMSIGN 4500 -nomeans -toz
    -no1sam -permute -dofsub -7 -mask /export/research/analysis/human/amayer/laptop_20753/cbf.analysis/data/masks/TT_N27.vent_exclusion.mask+tlrc
    -setA TT.dVrqurAdvdH.resid.nii’[0…35]’ -setB TT.dVrqurAdvdH.resid.nii’[36…$]’
    -prefix .//TT.dVrqurAdvdH.000.sdat
    ++ 3dttest++: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: Zhark++
    ++ 3dttest++: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: Zhark++
    ++ 1342305 voxels in -mask dataset
    ++ 1342305 voxels in -mask dataset
    ++ option -setA :: processing as SHORT form (all values are datasets)
    ++ option -setA :: processing as SHORT form (all values are datasets)
    ++ option -setB :: processing as SHORT form (all values are datasets)
    ++ option -setB :: processing as SHORT form (all values are datasets)
    ++ 2-sample test: ‘-AminusB’ option is assumed
    ++ 2-sample test: results will be SetA - SetB
    ++ 2-sample test: ‘-AminusB’ option is assumed
    ++ 2-sample test: results will be SetA - SetB
    ++ opened file .//TT.dVrqurAdvdH.000.sdat for output
    ++ opened file .//TT.dVrqurAdvdH.001.sdat for output
    ++ loading -setA datasets
    ++ loading -setA datasets
    ++ 3dttest++: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: Zhark++
    ++ 1342305 voxels in -mask dataset
    ++ option -setA :: processing as SHORT form (all values are datasets)
    ++ option -setB :: processing as SHORT form (all values are datasets)
    ++ 2-sample test: ‘-AminusB’ option is assumed
    ++ 2-sample test: results will be SetA - SetB
    ++ opened file .//TT.dVrqurAdvdH.002.sdat for output
    ++ loading -setA datasets
    ++ 3dttest++: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: Zhark++
    ++ 1342305 voxels in -mask dataset
    ++ option -setA :: processing as SHORT form (all values are datasets)
    ++ option -setB :: processing as SHORT form (all values are datasets)
    ++ 2-sample test: ‘-AminusB’ option is assumed
    ++ 2-sample test: results will be SetA - SetB
    ++ opened file .//TT.dVrqurAdvdH.003.sdat for output
    ++ loading -setA datasets
    ++ loading -setB datasets
    ++ loading -setB datasets
    ++ 3dttest++: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: Zhark++
    ++ 1342305 voxels in -mask dataset
    ++ option -setA :: processing as SHORT form (all values are datasets)
    ++ option -setB :: processing as SHORT form (all values are datasets)
    ++ 2-sample test: ‘-AminusB’ option is assumed
    ++ 2-sample test: results will be SetA - SetB
    ++ opened file .//TT.dVrqurAdvdH.004.sdat for output
    ++ loading -setA datasets
    ++ loading -setB datasets
    ++ 3dttest++: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: Zhark++
    ++ 1342305 voxels in -mask dataset
    ++ option -setA :: processing as SHORT form (all values are datasets)
    ++ option -setB :: processing as SHORT form (all values are datasets)
    ++ 2-sample test: ‘-AminusB’ option is assumed
    ++ 2-sample test: results will be SetA - SetB
    ++ opened file .//TT.dVrqurAdvdH.005.sdat for output
    ++ loading -setA datasets
    ++ 3dttest++: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: Zhark++
    ++ 1342305 voxels in -mask dataset
    ++ option -setA :: processing as SHORT form (all values are datasets)
    ++ option -setB :: processing as SHORT form (all values are datasets)
    ++ 2-sample test: ‘-AminusB’ option is assumed
    ++ 2-sample test: results will be SetA - SetB
    ++ opened file .//TT.dVrqurAdvdH.006.sdat for output
    ++ loading -setA datasets
    ++ loading -setB datasets
    ++ 3dttest++: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: Zhark++
    ++ 1342305 voxels in -mask dataset
    ++ option -setA :: processing as SHORT form (all values are datasets)
    ++ option -setB :: processing as SHORT form (all values are datasets)
    ++ 2-sample test: ‘-AminusB’ option is assumed
    ++ 2-sample test: results will be SetA - SetB
    ++ Memory usage now = 428,837,133 (429 million [mega])
    ++ t-test randomsign:++ opened file .//TT.dVrqurAdvdH.007.sdat for output
    ++ Memory usage now = 428,837,133 (429 million [mega])
    ++ t-test randomsign:++ loading -setA datasets
    ++ loading -setB datasets
    ++ Memory usage now = 428,837,133 (429 million [mega])
    ++ t-test randomsign:++ loading -setB datasets
    ++ loading -setB datasets
    ++ Memory usage now = 428,837,133 (429 million [mega])
    ++ t-test randomsign:++ Memory usage now = 428,837,133 (429 million [mega])
    ++ t-test randomsign:++ loading -setB datasets
    ++ Memory usage now = 428,837,133 (429 million [mega])
    ++ t-test randomsign:++ Memory usage now = 428,837,133 (429 million [mega])
    ++ t-test randomsign:++ Memory usage now = 428,837,133 (429 million [mega])
    ++ t-test randomsign:0000000011111111222222223333333344444444555555556666666677777777888888889.9.9.9.9.9.9.9.0000000011111111222222223333333344444444555555556666666677777777888888889.9.9.9.9.9.9.9.0000000011111111222222223333333344444444
    555555556666666677777777888888889.9.9.9.9.9.9.9.0000000011111111222222223333333344444444555555556666666677777777888888889.9.9.9.9.9.9.9.0000000011111111222222223333333344444444555555556666666677777777888888889.9.9.9.9.9.9.9.!
    ++ saving main effect t-stat MIN/MAX values in .//TT.dVrqurAdvdH.001.minmax.1D
    ++ output short-ized file .//TT.dVrqurAdvdH.001.sdat
    !
    ++ saving main effect t-stat MIN/MAX values in .//TT.dVrqurAdvdH.005.minmax.1D
    ++ output short-ized file .//TT.dVrqurAdvdH.005.sdat
    !
    ++ saving main effect t-stat MIN/MAX values in .//TT.dVrqurAdvdH.004.minmax.1D
    ++ output short-ized file .//TT.dVrqurAdvdH.004.sdat
    !
    ++ saving main effect t-stat MIN/MAX values in .//TT.dVrqurAdvdH.007.minmax.1D
    ++ output short-ized file .//TT.dVrqurAdvdH.007.sdat
    !
    ++ saving main effect t-stat MIN/MAX values in .//TT.dVrqurAdvdH.000.minmax.1D
    ++ output short-ized file .//TT.dVrqurAdvdH.000.sdat
  • ===== all jobs have finished (32461.8 s elapsed) =====
    ** ERROR: Can’t read file .//TT.dVrqurAdvdH.002.minmax.1D
    ** ERROR: Can’t read file .//TT.dVrqurAdvdH.003.minmax.1D
    ** ERROR: Can’t read file .//TT.dVrqurAdvdH.006.minmax.1D
  • ===== starting 3dXClustSim =====
    3dXClustSim -DAFNI_DONT_LOGFILE=YES -noFARvox -prefix TT.dVrqurAdvdH.default.CsimX.nii
    -hpow 0
    -insdat /export/research/analysis/human/amayer/laptop_20753/cbf.analysis/data/masks/TT_N27.vent_exclusion.mask+tlrc .//TT.dVrqurAdvdH.000.sdat .//TT.dVrqurAdvdH.001.sdat .//TT.dVrqurAdvdH.002.sdat .//TT.dVrqurAdvdH.003.sdat .//TT.dVr
    qurAdvdH.004.sdat .//TT.dVrqurAdvdH.005.sdat .//TT.dVrqurAdvdH.006.sdat .//TT.dVrqurAdvdH.007.sdat
    ++ 3dXClustSim: AFNI version=AFNI_17.1.01 (Apr 12 2017) [64-bit]
    ++ Authored by: Lamont Cranston
    ++ Loading -insdat datasets
    ++ using 35981/35981 volumes from -inset; mask has 1342305 points
    ++ 3dXClustSim: Using 8 OpenMP threads
    ++ STEP 1a: start 2-sided clustering with NN=2
    !
    ++ saving main effect t-stat MIN/MAX values in .//TT.dVrqurAdvdH.006.minmax.1D
    ++ output short-ized file .//TT.dVrqurAdvdH.006.sdat
    !
    ++ saving main effect t-stat MIN/MAX values in .//TT.dVrqurAdvdH.003.minmax.1D
    ++ output short-ized file .//TT.dVrqurAdvdH.003.sdat
    !
    ++ saving main effect t-stat MIN/MAX values in .//TT.dVrqurAdvdH.002.minmax.1D
    ++ output short-ized file .//TT.dVrqurAdvdH.002.sdat
  • STEP 1b: merge cluster lists
  •  pthr=0.01000 found 4815018 total clusters
    
  •  pthr=0.00560 found 3375229 total clusters
    
  •  pthr=0.00310 found 2275076 total clusters
    
  •  pthr=0.00180 found 1549488 total clusters
    
  •  pthr=0.00100 found 1001931 total clusters
    
  • STEP 1c: compute minimum thresholds
  •  pthr=0.01000 h=0 min threshold 6501.0
    
  •  pthr=0.00560 h=0 min threshold 3576.0
    
  •  pthr=0.00310 h=0 min threshold 2058.0
    
  •  pthr=0.00180 h=0 min threshold 1282.0
    
  •  pthr=0.00100 h=0 min threshold 796.0
    

++ STEP 2: start cluster dilation
Killed

  • ===== deleting -ETAC temp files =====
  • =============== -ETAC work is finished :slight_smile: ===============

The first suggestion I would have is to update your binaries. There have been a few tweaks to 3dXClustSim since April 12th.

I suggest you also use the ‘-prefix_clustsim’ option.

I looked at these messages again last night. There are 3 issues here:

[ol]
[li] Your version of AFNI needs updating. ETAC was updated in late May 2017.
[/li][li] For some reason, all the .minmax.1D files didn’t get read. That is the substance of the ERROR messages. These are minor errors, and the program continues without further comment. If this problem re-occurs with an updated version of AFNI, I’d like to know about it.
[/li][li] ETAC (3dXClustSim) ends up “killed”. This is a message from Unix that the operating system itself deleted the job. In principal, there are many reasons this could happen. In practice, there is only 1 reason – the program used up all available memory. The updated version of 3dxClustSim should use somewhat less memory, but you may still run into such problems. If that happens, you’ll just need to run on a system with more memory available.
[/li][/ol]
Other points are[ul]

[li] You really should provide a -prefix_clustsim option, instead of letting the program generate a prefix randomly. It will make the messages and files more readable.
[/li][li] If you are running from a networked RAID or other attached storage, then it would be better to use the -tempdir option to provide a temprorary directory name on a local drive – the *.sdat files created can be huge, and reading/writing them over a network drive will slow 3dttest++ and 3dXClustSim down a lot.
[/li][/ul]