3dMVM -residuals error

Hi again Gang!

I wanted to try this. We are using a different dataset but again, it is quite large (7450 dual-regression maps). I’m using MVM and to find out significant cluster sizes vs per-voxel-pvalues. I need the residuals to be able to run 3dclustsim. 3dMVM finishes but fails at creating the the residuals (could not map memory).

I wanted to split the the images, like you suggested, using 3dZcutup.

I can’t get it to work though. My idea was to loop through all the input files and create sub01_cut0.nii.gz, sub01_cut1.nii.gz and sub01_cut2.nii.gz and run 3 separate 3dMVMs and then glue them together.

When looking at the documentation I would think this is the way to do it:


3dZcutup -prefix test0 -keep 0 16 1017436_20227_2_0_25_dr_stage2.nii.gz

This, however, gives me:


++ 3dZcutup: AFNI version=AFNI_21.3.01 (Oct 12 2021) [64-bit]
*** Nonsense values after -keep!

It works when I just want it to give me one slice:


3dZcutup -prefix test0 -keep 5 5 1017436_20227_2_0_25_dr_stage2.nii.gz 
++ 3dZcutup: AFNI version=AFNI_21.3.01 (Oct 12 2021) [64-bit]
++ Output dataset ./test0+tlrc.BRIK

When looking at examples, I don’t see why the first command would fail. The only thing I can think of is that these are 3D volumes, not 4D volumes. They are 3D correlation maps from a dual regression process.

I can solve this by looping through all 91 slices and merging them into 3 chunks but that is a lot of for-looping for 7450 subjects with 91 slices each.
3dinfo on the data:


Dataset File:    1017436_20227_2_0_25_dr_stage2.nii.gz
Identifier Code: NII_F-0DxhtkHnSPAt0_jFec6Q  Creation Date: Wed May  4 13:38:28 2022
Template Space:  MNI
Dataset Type:    Anat Bucket (-abuc)
Byte Order:      LSB_FIRST {assumed} [this CPU native = LSB_FIRST]
Storage Mode:    NIFTI
Storage Space:   3,610,516 (3.6 million) bytes
Geometry String: "MATRIX(2,0,0,-90,0,-2,0,126,0,0,2,-72):91,109,91"
Data Axes Tilt:  Plumb
Data Axes Orientation:
  first  (x) = Right-to-Left
  second (y) = Posterior-to-Anterior
  third  (z) = Inferior-to-Superior   [-orient RPI]
R-to-L extent:   -90.000 [R] -to-    90.000 [L] -step-     2.000 mm [ 91 voxels]
A-to-P extent:   -90.000 [A] -to-   126.000 [P] -step-     2.000 mm [109 voxels]
I-to-S extent:   -72.000 [I] -to-   108.000 [S] -step-     2.000 mm [ 91 voxels]
Number of values stored at each pixel = 1
  -- At sub-brick #0 '?' datum type is float

Thanks!