afni_proc hanging at "++ APQC create: qc_02_vorig_olap"

AFNI version info (afni -ver):
Precompiled binary linux_ubuntu_16_64: Apr 18 2024 (Version AFNI_24.1.03 'Publius Septimius Geta')

Hi,
As I would be interested in a systematic QC, I had a look and run some scripts from your latest publication and scripts on github. They are advanced and require the event timing for task fmri. I might try to run them systematically later but the expression "right out of the scanner" under the section "AP demo 1a. for QC" of the help of afni_proc caught my eyes.

After having tested the afni_proc script from "AP demo 1a. for QC" on AFNI's FT subject with success, I have tested it on some subjects from our scanner. It systematically hangs at the end during apqc_make_tcsh, more exactly during qc_02_vorig_olap. If I understood correctly, olap stands for overlap in "init EPI anat overlap"
So I have tested "AP demo 1b. for QC" and it worked well. If I were pragmatic I would go for 1b which already helps a lot (thank you a lot for sharing those scripts), but I really wonder why the script 1A works with FT but not with my subjects. I guess something is different with my structural scan. Initially converted with dcm2niix, I reconverted them to HEAD/BRIK format with Dimon. I have also run 3drefit -oblique_recenter and 3drefit -deoblique. It still hangs at "qc_02_vorig_olap". Is it a problem of dicom conversion?
I join as attachment the a screenshot of checkreg.

Howdy-

As a first check, to make sure all dependencies are present, what is the output of:

afni_system_check.py -check_all

?

Secondly, we can investigate in vivo what that QC block is executing, which is the following (please replace DSET_ANAT with your anatomical dset name and DSET_EPI with your EPI dataset name---and AMASK_FOCUS_ULAY is actually an option keyword that should stay there):

@djunct_overlap_check                                                    \
        -echo                                           \
        -ulay             DSET_ANAT                                   \
        -olay             DSET_EPI                                          \
        -box_focus_slices  AMASK_FOCUS_ULAY                                  \
        -opacity           4                                                 \
        -no_cor                                                              \
        -no_axi                                                              \
        -montx_cat         1                                                 \
        -monty_cat         1                                                 \
        -montx             7                                                 \
        -prefix           image_test

What is the output of running that and/or where does it hang? (I added an "-echo" option to make the output particularly verbose, so hopefully we can see exactly where it is being unhappy.)

--pt

Hi Paul,
Thank you for answering. As the script worked for the AFNI subject FT I did not check the installation. I apologize for that. The Flask and Flask_cors module were missing and they do seem to be needed for the interactivity of html reports. I rerun "apqc_make_tcsh.py -review_style pythonic -subj_dir . -uvar_json out.ss_review_uvars.json" and it still hangs at qc_02_vorig_olap.

Here is the result of afni_system_check after I installed flask.

afni_system_check.py -check_all
-------------------------------- general ---------------------------------
architecture:         64bit ELF
cpu type:             x86_64
system:               Linux
release:              6.5.0-41-generic
version:              #41~22.04.2-Ubuntu SMP PREEMPT_DYNAMIC Mon Jun  3 11:32:55 UTC 2
/home/jonathan/abin/afnipy/lib_system_check.py:2126: DeprecationWarning: distro.linux_distribution() is deprecated. It should only be used as a compatibility shim with Python's platform.linux_distribution(). Please use distro.id(), distro.version() and distro.name() instead.
  dtest = distro.linux_distribution(full_distribution_name=False)
distribution:         ubuntu 22.04 Jammy Jellyfish
number of CPUs:       16
apparent login shell: bash
shell RC file:        .bashrc (exists)

--------------------- AFNI and related program tests ---------------------
which afni           : /home/jonathan/abin/afni
afni version         : Precompiled binary linux_ubuntu_16_64: Apr 18 2024 
                     : AFNI_24.1.03 'Publius Septimius Geta'
AFNI_version.txt     : AFNI_24.1.03, linux_ubuntu_16_64, Apr 18 2024, official
which python         : /usr/bin/python
python version       : 3.8.6
which R              : /usr/bin/R
R version            : R version 4.1.2 (x86_64-pc-linux-gnu)

instances of various programs found in PATH:
    afni    : 1   (/home/jonathan/abin/afni)
    R       : 1   (/usr/bin/R)
    python  : 2 
      /usr/local/bin/python3.8
      /home/jonathan/qsmxt_6.4.0_20240209/python
    python2 : 0 
    python3 : 2 
      /usr/bin/python3.10
      /home/jonathan/qsmxt_6.4.0_20240209/python3

** have python3 but not python2

testing ability to start various programs...
    afni                 : success
    suma                 : success
    3dSkullStrip         : success
    3dAllineate          : success
    3dRSFC               : success
    SurfMesh             : success
    3dClustSim           : success
    uber_subject.py      : success
    3dMVM                : success

------------------------ dependent program tests -------------------------
checking for dependent programs...

which tcsh           : /usr/bin/tcsh
which Xvfb           : /usr/bin/Xvfb

checking for R packages...
    rPkgsInstall -pkgs ALL -check : success

R RHOME : /usr/lib/R

------------------------------ python libs -------------------------------

++ module loaded: matplotlib.pyplot
   module file : /home/jonathan/.local/lib/python3.8/site-packages/matplotlib/pyplot.py
   matplotlib version : 3.7.5

++ module loaded: flask
   module file : /home/jonathan/.local/lib/python3.8/site-packages/flask/__init__.py
/home/jonathan/abin/afnipy/module_test_lib.py:355: DeprecationWarning: The '__version__' attribute is deprecated and will be removed in Flask 3.1. Use feature detection or 'importlib.metadata.version("flask")' instead.
  if hasattr(mod, vfield):
/home/jonathan/abin/afnipy/module_test_lib.py:356: DeprecationWarning: The '__version__' attribute is deprecated and will be removed in Flask 3.1. Use feature detection or 'importlib.metadata.version("flask")' instead.
  return getattr(mod, vfield)
   flask version : 3.0.3

++ module loaded: flask_cors
   module file : /home/jonathan/.local/lib/python3.8/site-packages/flask_cors/__init__.py
   flask_cors version : 4.0.1

-- python binaries under /usr/local/bin:
    /usr/local/bin/python3.8
    /usr/local/bin/python3.6

-------------------------------- env vars --------------------------------
PATH                       = /usr/local/fsl/share/fsl/bin:/usr/local/fsl/share/fsl/bin:/home/jonathan/neurodesktop-storage:/usr/local/go/bin:/usr/local/cuda/bin:/home/jonathan/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/jonathan/abin:/home/jonathan/abin:/home/jonathan/qsmxt_6.4.0_20240209:/home/jonathan/abin

PYTHONPATH                 = 
R_LIBS                     = /home/jonathan/R
LD_LIBRARY_PATH            = 
DYLD_LIBRARY_PATH          = 
DYLD_FALLBACK_LIBRARY_PATH = 
CONDA_SHLVL                = 
CONDA_DEFAULT_ENV          = 

----------------------------- eval dot files -----------------------------

----------- AFNI $HOME files -----------

    .afnirc                   : found
    .sumarc                   : found
    .afni/help/all_progs.COMP : found

--------- shell startup files ----------

   -- good: .tcshrc seems to contain 'source .cshrc'
   -- considered operations: path, apsearch
   
   -- note: followers should not need edits, so edit flags should be 0
      (have 1 follower(s), which can be ignored)
   
   dot file test : want 1 modifications across 3 files:
   
      file             path  flatdir  apsearch        follower
      ---------------  ----  -------  --------        --------
      .cshrc           0     0        1               0     
      .tcshrc          0     0        0               1     
      .bashrc          0     0        0               0     
   
------------------------------ data checks -------------------------------
data dir : found AFNI_data6   under $HOME (350187M Avail)
           top history: ... 2024 [rickr]: 3drefit -newid FT/SUMA/FT_SurfVol.nii
data dir : found AFNI_demos   under $HOME
           top history: ...ct 2020 [taylorp]: updated scripts under FATCAT_DEMO
data dir : found suma_demo    under $HOME
           top history: ...s_New/data/Build_tmp on Mon Mar  4 11:56:45 EST 2013
data dir : found afni_handouts under $HOME
atlas    : found TT_N27+tlrc  under /home/jonathan/abin

------------------------------ OS specific -------------------------------
which apt-get        : /usr/bin/apt-get
apt-get version      : apt 2.4.11 (amd64)

have Ubuntu system: ubuntu 22.04 Jammy Jellyfish
have Ubuntu afni  : Precompiled binary linux_ubuntu_16_64: Apr 18 2024 

=========================  summary, please fix:  =========================
*  just be aware: login shell 'bash', but our code examples use 'tcsh'
*  dot file test : want 1 modifications across 3 files:

The only difference before I installed the module was instead of loading flask it was standing:
"Failed to load module flask".

< -- flask is not required, but is desirable
< 
< ** failed to load module flask_cors
< -- flask_cors is not required, but is desirable

After that I run @djunct_overlap_check as you suggested.

@djunct_overlap_check                                                    \
        -echo                                           \
        -ulay             mysub/mysub_anat+orig                                   \
        -olay             mysub/mysub_epi+orig                                          \
        -box_focus_slices  AMASK_FOCUS_ULAY                                  \
        -opacity           4                                                 \
        -no_cor                                                              \
        -no_axi                                                              \
        -montx_cat         1                                                 \
        -monty_cat         1                                                 \
        -montx             7                                                 \
        -prefix           image_test
set more_echo = -echo
else if ( -echo == -prefix ) then
@ ac += 1
end
while ( 2 < = 19 )
if ( ( -ulay == -h ) || ( -ulay == -help ) ) then
if ( -ulay == -ver ) then
if ( -ulay == -ulay ) then
if ( 2 > = 19 ) goto FAIL_MISSING_ARG
@ ac += 1
set ulay = mysub/mysub_anat+orig
else if ( mysub/mysub_anat+orig == -olay ) then
@ ac += 1
end
while ( 4 < = 19 )
if ( ( -olay == -h ) || ( -olay == -help ) ) then
if ( -olay == -ver ) then
if ( -olay == -ulay ) then
if ( -olay == -olay ) then
if ( 4 > = 19 ) goto FAIL_MISSING_ARG
@ ac += 1
set olay = mysub/mysub_epi+orig
else if ( mysub/mysub_epi+orig == -echo ) then
@ ac += 1
end
while ( 6 < = 19 )
if ( ( -box_focus_slices == -h ) || ( -box_focus_slices == -help ) ) then
if ( -box_focus_slices == -ver ) then
if ( -box_focus_slices == -ulay ) then
if ( -box_focus_slices == -olay ) then
if ( -box_focus_slices == -echo ) then
if ( -box_focus_slices == -prefix ) then
if ( -box_focus_slices == -box_focus_slices ) then
if ( 6 > = 19 ) goto FAIL_MISSING_ARG
@ ac += 1
set refbox_add[1] = -box_focus_slices
set refbox_add[2] = AMASK_FOCUS_ULAY
set DO_USE_REFBOX = 1
else if ( AMASK_FOCUS_ULAY == -montgap ) then
@ ac += 1
end
while ( 8 < = 19 )
if ( ( -opacity == -h ) || ( -opacity == -help ) ) then
if ( -opacity == -ver ) then
if ( -opacity == -ulay ) then
if ( -opacity == -olay ) then
if ( -opacity == -echo ) then
if ( -opacity == -prefix ) then
if ( -opacity == -box_focus_slices ) then
if ( -opacity == -montgap ) then
if ( -opacity == -montcolor ) then
if ( -opacity == -ulay_range ) then
if ( -opacity == -ulay_range_nz ) then
if ( -opacity == -cbar ) then
if ( -opacity == -zerocolor ) then
if ( -opacity == -pbar_posonly_off ) then
if ( -opacity == -montx ) then
if ( -opacity == -monty ) then
if ( -opacity == -opacity ) then
if ( 8 > = 19 ) goto FAIL_MISSING_ARG
@ ac += 1
set opacity = 4
else if ( 4 == -label_mode ) then
@ ac += 1
end
while ( 10 < = 19 )
if ( ( -no_cor == -h ) || ( -no_cor == -help ) ) then
if ( -no_cor == -ver ) then
if ( -no_cor == -ulay ) then
if ( -no_cor == -olay ) then
if ( -no_cor == -echo ) then
if ( -no_cor == -prefix ) then
if ( -no_cor == -box_focus_slices ) then
if ( -no_cor == -montgap ) then
if ( -no_cor == -montcolor ) then
if ( -no_cor == -ulay_range ) then
if ( -no_cor == -ulay_range_nz ) then
if ( -no_cor == -cbar ) then
if ( -no_cor == -zerocolor ) then
if ( -no_cor == -pbar_posonly_off ) then
if ( -no_cor == -montx ) then
if ( -no_cor == -monty ) then
if ( -no_cor == -opacity ) then
if ( -no_cor == -label_mode ) then
if ( -no_cor == -edgy_ulay ) then
if ( -no_cor == -set_dicom_xyz ) then
if ( -no_cor == -set_dicom_xyz_off ) then
if ( -no_cor == -montx_cat ) then
if ( -no_cor == -monty_cat ) then
if ( -no_cor == -no_cor ) then
set no_cor = -no_cor
else if ( -no_cor == -no_axi ) then
@ ac += 1
end
while ( 11 < = 19 )
if ( ( -no_axi == -h ) || ( -no_axi == -help ) ) then
if ( -no_axi == -ver ) then
if ( -no_axi == -ulay ) then
if ( -no_axi == -olay ) then
if ( -no_axi == -echo ) then
if ( -no_axi == -prefix ) then
if ( -no_axi == -box_focus_slices ) then
if ( -no_axi == -montgap ) then
if ( -no_axi == -montcolor ) then
if ( -no_axi == -ulay_range ) then
if ( -no_axi == -ulay_range_nz ) then
if ( -no_axi == -cbar ) then
if ( -no_axi == -zerocolor ) then
if ( -no_axi == -pbar_posonly_off ) then
if ( -no_axi == -montx ) then
if ( -no_axi == -monty ) then
if ( -no_axi == -opacity ) then
if ( -no_axi == -label_mode ) then
if ( -no_axi == -edgy_ulay ) then
if ( -no_axi == -set_dicom_xyz ) then
if ( -no_axi == -set_dicom_xyz_off ) then
if ( -no_axi == -montx_cat ) then
if ( -no_axi == -monty_cat ) then
if ( -no_axi == -no_cor ) then
if ( -no_axi == -no_axi ) then
set no_axi = -no_axi
else if ( -no_axi == -no_sag ) then
@ ac += 1
end
while ( 12 < = 19 )
if ( ( -montx_cat == -h ) || ( -montx_cat == -help ) ) then
if ( -montx_cat == -ver ) then
if ( -montx_cat == -ulay ) then
if ( -montx_cat == -olay ) then
if ( -montx_cat == -echo ) then
if ( -montx_cat == -prefix ) then
if ( -montx_cat == -box_focus_slices ) then
if ( -montx_cat == -montgap ) then
if ( -montx_cat == -montcolor ) then
if ( -montx_cat == -ulay_range ) then
if ( -montx_cat == -ulay_range_nz ) then
if ( -montx_cat == -cbar ) then
if ( -montx_cat == -zerocolor ) then
if ( -montx_cat == -pbar_posonly_off ) then
if ( -montx_cat == -montx ) then
if ( -montx_cat == -monty ) then
if ( -montx_cat == -opacity ) then
if ( -montx_cat == -label_mode ) then
if ( -montx_cat == -edgy_ulay ) then
if ( -montx_cat == -set_dicom_xyz ) then
if ( -montx_cat == -set_dicom_xyz_off ) then
if ( -montx_cat == -montx_cat ) then
if ( 12 > = 19 ) goto FAIL_MISSING_ARG
@ ac += 1
set Nx_cat = 1
else if ( 1 == -monty_cat ) then
@ ac += 1
end
while ( 14 < = 19 )
if ( ( -monty_cat == -h ) || ( -monty_cat == -help ) ) then
if ( -monty_cat == -ver ) then
if ( -monty_cat == -ulay ) then
if ( -monty_cat == -olay ) then
if ( -monty_cat == -echo ) then
if ( -monty_cat == -prefix ) then
if ( -monty_cat == -box_focus_slices ) then
if ( -monty_cat == -montgap ) then
if ( -monty_cat == -montcolor ) then
if ( -monty_cat == -ulay_range ) then
if ( -monty_cat == -ulay_range_nz ) then
if ( -monty_cat == -cbar ) then
if ( -monty_cat == -zerocolor ) then
if ( -monty_cat == -pbar_posonly_off ) then
if ( -monty_cat == -montx ) then
if ( -monty_cat == -monty ) then
if ( -monty_cat == -opacity ) then
if ( -monty_cat == -label_mode ) then
if ( -monty_cat == -edgy_ulay ) then
if ( -monty_cat == -set_dicom_xyz ) then
if ( -monty_cat == -set_dicom_xyz_off ) then
if ( -monty_cat == -montx_cat ) then
if ( -monty_cat == -monty_cat ) then
if ( 14 > = 19 ) goto FAIL_MISSING_ARG
@ ac += 1
set Ny_cat = 1
else if ( 1 == -no_cor ) then
@ ac += 1
end
while ( 16 < = 19 )
if ( ( -montx == -h ) || ( -montx == -help ) ) then
if ( -montx == -ver ) then
if ( -montx == -ulay ) then
if ( -montx == -olay ) then
if ( -montx == -echo ) then
if ( -montx == -prefix ) then
if ( -montx == -box_focus_slices ) then
if ( -montx == -montgap ) then
if ( -montx == -montcolor ) then
if ( -montx == -ulay_range ) then
if ( -montx == -ulay_range_nz ) then
if ( -montx == -cbar ) then
if ( -montx == -zerocolor ) then
if ( -montx == -pbar_posonly_off ) then
if ( -montx == -montx ) then
if ( 16 > = 19 ) goto FAIL_MISSING_ARG
@ ac += 1
set Nx = 7
else if ( 7 == -monty ) then
@ ac += 1
end
while ( 18 < = 19 )
if ( ( -prefix == -h ) || ( -prefix == -help ) ) then
if ( -prefix == -ver ) then
if ( -prefix == -ulay ) then
if ( -prefix == -olay ) then
if ( -prefix == -echo ) then
if ( -prefix == -prefix ) then
if ( 18 > = 19 ) goto FAIL_MISSING_ARG
@ ac += 1
set opref = `basename "$argv[$ac]"`
basename image_test
set odir = `dirname  "$argv[$ac]"`
dirname image_test
else if ( image_test == -box_focus_slices ) then
@ ac += 1
end
while ( 20 < = 19 )
echo ++ Prepare for running @djunct_overlap_check (ver = 0.46)
++ Prepare for running @djunct_overlap_check (ver = 0.46)
if ( mysub/mysub_anat+orig ==  ) then
if ( mysub/mysub_epi+orig ==  ) then
if ( 1 ) then
set user_coors = -pass
endif
mkdir -p .
set wdir = ./__workdir_olap_v5iVdbwyae0
mkdir -p ./__workdir_olap_v5iVdbwyae0
if ( 1 ) then
if ( AMASK_FOCUS_ULAY == AMASK_FOCUS_ULAY || AMASK_FOCUS_ULAY == AMASK_FOCUS_OLAY ) then
echo ++ Using refbox keyword AMASK_FOCUS_ULAY for box_focus_slices
++ Using refbox keyword AMASK_FOCUS_ULAY for box_focus_slices
else
endif
set idx = 0
set uin = mysub/mysub_anat+orig
set uout = olapch_0_cp_ulay.nii
3dcalc -a mysub/mysub_anat+orig -expr a -prefix ./__workdir_olap_v5iVdbwyae0/olapch_0_cp_ulay.nii
++ 3dcalc: AFNI version=AFNI_24.1.03 (Apr 18 2024) [64-bit]
++ Authored by: A cast of thousands
++ Output dataset ././__workdir_olap_v5iVdbwyae0/olapch_0_cp_ulay.nii
@ idx += 1
echo ++ Just copy olay, bc ulay will get regridded
++ Just copy olay, bc ulay will get regridded
set fin = mysub/mysub_epi+orig
set fout = olapch_1_cp_olay.nii
3dcalc -a mysub/mysub_epi+orig -expr a -prefix ./__workdir_olap_v5iVdbwyae0/olapch_1_cp_olay.nii
++ 3dcalc: AFNI version=AFNI_24.1.03 (Apr 18 2024) [64-bit]
++ Authored by: A cast of thousands
++ Output dataset ././__workdir_olap_v5iVdbwyae0/olapch_1_cp_olay.nii
@ idx += 1
cd ./__workdir_olap_v5iVdbwyae0
set newsp = `3dinfo -space "${fout}"`
3dinfo -space olapch_1_cp_olay.nii
echo ++ Quietly run: 3drefit -space ORIG olapch_0_cp_ulay.nii
++ Quietly run: 3drefit -space ORIG olapch_0_cp_ulay.nii
3drefit -space ORIG olapch_0_cp_ulay.nii
@chauffeur_afni -ulay olapch_0_cp_ulay.nii -box_focus_slices AMASK_FOCUS_ULAY -olay olapch_1_cp_olay.nii -ulay_range 0% 98% -func_range_perc_nz 98 -cbar Reds_and_Blues -pbar_posonly -set_subbricks 0 0 0 -olay_alpha No -olay_boxed No -opacity 4 -zerocolor black -prefix img00 -montx 7 -monty 1 -montgap 1 -montcolor black -save_ftype JPEG -set_xhairs OFF -label_mode 1 -label_size 4 -do_clean -no_cor -no_axi -pass -pass
++ olay_alpha has known value: No


++ My command:
   @chauffeur_afni -ulay olapch_0_cp_ulay.nii -box_focus_slices AMASK_FOCUS_ULAY -olay olapch_1_cp_olay.nii -ulay_range 0% 98% -func_range_perc_nz 98 -cbar Reds_and_Blues -pbar_posonly -set_subbricks 0 0 0 -olay_alpha No -olay_boxed No -opacity 4 -zerocolor black -prefix img00 -montx 7 -monty 1 -montgap 1 -montcolor black -save_ftype JPEG -set_xhairs OFF -label_mode 1 -label_size 4 -do_clean -no_cor -no_axi -pass -pass

++ Using AFNI ver : AFNI_24.1.03
++ chauffeur ver  : 6.7

------------------ start of optionizing ------------------

++ Found input file:   olapch_0_cp_ulay.nii
++ Found input file:   olapch_1_cp_olay.nii
++ Using blowup factor: 2
++ Using opacity:  4
++ Making temporary work directory to copy vis files: ./__tmp_chauf_EBL5gTkvuvb
++ Converted 0 to labels
++ Final subbrick indices: 0 0 0
++ Copy ulay to visualize (volumetric) within user's range:
++ Ulay to be visualized within user range:
  [0%, 98%] -> [0.000000, 576.000000]
++ 3dcalc: AFNI version=AFNI_24.1.03 (Apr 18 2024) [64-bit]
++ Authored by: A cast of thousands
++ Output dataset ././__tmp_chauf_EBL5gTkvuvb/tmp_ulay.nii
++ 3dcalc: AFNI version=AFNI_24.1.03 (Apr 18 2024) [64-bit]
++ Authored by: A cast of thousands
++ Output dataset ././__tmp_chauf_EBL5gTkvuvb/tmp_olay.nii
*+ WARNING:   If you are performing spatial transformations on an oblique dset,
  such as /home/jonathan/projects/thdc/Principal_Investigator/MR0000_Test/__workdir_olap_v5iVdbwyae0/__tmp_chauf_EBL5gTkvuvb/tmp_olay.nii,
  or viewing/combining it with volumes of differing obliquity,
  you should consider running: 
     3dWarp -deoblique 
  on this and  other oblique datasets in the same session.
 See 3dWarp -help for details.
++ Oblique dataset:/home/jonathan/projects/thdc/Principal_Investigator/MR0000_Test/__workdir_olap_v5iVdbwyae0/__tmp_chauf_EBL5gTkvuvb/tmp_olay.nii is 13.409355 degrees from plumb.
++ For olay, the 98%ile value leads to
   --> upper range value: 1528.000000
++ Dimensions (xyzt): 240 256 208 1
++ (initial) Slice spacing ordered (x,y,z) is:  29 34 36
++ 3dAutomask: AFNI version=AFNI_24.1.03 (Apr 18 2024) [64-bit]
++ Authored by: Emperor Zhark
++ 3dAutobox: AFNI version=AFNI_24.1.03 (Apr 18 2024) [64-bit]
++ Auto bbox: x=1..231  y=25..255  z=20..189
++ 3dAutobox: output dataset = ./__tmp_chauf_EBL5gTkvuvb/ulay_box_0.nii
++ 3dmaskdump: AFNI version=AFNI_24.1.03 (Apr 18 2024) [64-bit]
++ Executing 3dcalc()
 argv[0]=3dcalc argv[1]=-a argv[2]=./__tmp_chauf_EBL5gTkvuvb/ulay_box_0.nii[0] argv[3]=-expr argv[4]=a argv[5]=-byte argv[6]=-session argv[7]=/tmp argv[8]=-prefix argv[9]=3dcalc_AFN_P8RA3EPlJo_CCqsf-Rs1TQ argv[10]=-verbose
++ 3dcalc: AFNI version=AFNI_24.1.03 (Apr 18 2024) [64-bit]
++ Authored by: A cast of thousands
++ Computing sub-brick 0
++ Scaling output to type byte brick(s)
++ Sub-brick 0: no scale factor
++ Computing output statistics
++ 9071370 voxels in the entire dataset (no mask)
++ 1 voxels in the boxes and/or balls
++ Using only the boxes+balls mask
++ How many coors? 3
++ Will have the ref box central coors : SET_DICOM_XYZ -4 -29 -21
++ Will have the ref box central gapord: 24 33 33

------------------- end of optionizing -------------------

 -- trying to start Xvfb :554 
[1] 581991

+++ Command Echo:
   afni -q -no1D -noplugins -no_detach -com SWITCH_UNDERLAY tmp_ulay.nii -com SWITCH_OVERLAY  tmp_olay.nii -com SEE_OVERLAY     + -com OPEN_WINDOW sagittalimage opacity=4 mont=7x1:24:1:black crop=0:0,0:0  -com OPEN_WINDOW coronalimage  opacity=4 mont=7x1:33:1:black crop=0:0,0:0  -com OPEN_WINDOW axialimage    opacity=4 mont=7x1:33:1:black crop=0:0,0:0  -com SET_PBAR_ALL    +99 1 Reds_and_Blues -com DO_NOTHING -com SET_SUBBRICKS   0 0 0 -com SET_ULAY_RANGE A.all 0.000000 576.000000 -com SET_FUNC_RANGE  1528.000000 -com SET_THRESHNEW   0 * -com SET_FUNC_ALPHA  No -com SET_FUNC_BOXED  No -com SET_FUNC_RESAM  NN.NN -com SET_XHAIRS      OFF -com SET_XHAIR_GAP   -1 -com SET_DICOM_XYZ -4 -29 -21 -com SAVE_JPEG sagittalimage ./img00.sag blowup=2 -com QUITT ./__tmp_chauf_EBL5gTkvuvb 

+/home/jonathan/projects/thdc/Principal_Investigator/MR0000_Test/__workdir_olap_v5iVdbwyae0/__tmp_chauf_EBL5gTkvuvb

Jonathan

Hi, Jonathan-

Indeed, Flask and Flask_cors are needed so the APQC HTML buttons work, for saving QC ratings and comments, and running AFNI and NiiVue from the webpages. Glad that is sorted now.

I'm not sure what is causing the freezing. Your afni_system_check.py output seems fine to me.

I am not sure what about these datasets might cause an issue here. I will send you a PM about possibly sharing the data if possible, so I can take a look.

--pt

Hi-

Thanks for sharing the data. I was able to run:

ap_run_simple_rest.tcsh \
   -subjid TEST001 \
   -epi sub-001/sub-001_task-it_bold.nii.gz \
   -anat sub-001/sub-001_T1w.nii.gz \
   -run_ap \
   -run_proc

and

ap_run_simple_rest.tcsh \
   -subjid TEST001 \
   -epi sub-001/sub-001_task-do_bold.nii.gz \
   -anat sub-001/sub-001_T1w.nii.gz \
   -run_ap \
   -run_proc

on the different datasets, and each ran through to completion.

The data is somewhat high-res EPI, and I am not sure if computational resources were an issue. I don't see why that would lead it to hang at the overlap-image stage, though.

I'm a bit puzzled. I don't see why it would hang at the spot it did in the overlap image creation, either. I guess you could try updating your code base:

@update.afni.binaries -d

... and see if that helps resolve it? You shouldn't need to re-run the full afni_proc.py command again, just this from the AP results directory, replacing <subj> with the subject ID:

apqc_make_tcsh.py -review_style pythonic -subj_dir . \
   -uvar_json out.ss_review_uvars.json
apqc_make_html.py -qc_dir QC_<subj>

-pt

Hi Paul,
Thank you for running the test data. Since it was successful, something had to be wrong with either my old (2018) but performant (xeon 256+GB RAM) hardware or my installation. So I started by updating the binaries as you mentioned. But the result was the same. Then I remembered that I edited the config file for setting up real time afni. The setting that made apqc crash was the layout file that was intended for a double display:


***LAYOUT
  A geom=+1196+308
  A.axialimage geom=536x536+2530+73 ifrac=0.8
  A.sagittalimage geom=768x384+3070+75 ifrac=0.8
  A.coronalimage geom=593x296+2528+646 ifrac=0.8
  A.axialgraph geom=693x437+3138+643 matrix=3 pinnum=100

I should have thought of checking the .afnirc file before, sorry for that and thanks again.
Jonathan

Hi, Jonathan-

Oh, cool, thanks for digging into that. It isn't something I would have suspected! I will play around a bit with detecting (and then ignoring) any layout file that might exists.

To be doubly sure: did you alias afni to have a -layout .. option always provided? Or did you setup your file, and provide it through the AFNI_LAYOUT_FILE environment variable?

thanks,
pt

It was through the AFNI_LAYOUT_FILE environment variable. What I don't understand is why it worked for FT but not for my subjects.
What I did this morning was to test all differences of my own .afnirc config file one by one until it worked. The differences were the following:

< AFNI_graph_matrix        =  3   // initial number of sub-graphs
---
> // AFNI_graph_matrix        =  3   // initial number of sub-graphs
45d44
< AFNI_LAYOUT_FILE	    = /home/jonathan/myConfigFile
67d65
< // AFNI_NIFTI_VIEW               = orig
80,82c78,80
<    AFNI_HINTS               = KILL  // YES==turns on popup hints
< // AFNI_COMPRESSOR          = GZIP // force all .BRIK output to be compressed
<    AFNI_AUTOGZIP            = YES  // gzip .BRIK files if it's a good idea
---
>    AFNI_HINTS               = YES  // YES==turns on popup hints
>    AFNI_COMPRESSOR          = GZIP // force all .BRIK output to be compressed
> // AFNI_AUTOGZIP            = YES  // gzip .BRIK files if it's a good idea
207c205,206
< AFNI_ONE_OBLIQUE_WARNING      = YES // In afni GUI, just one oblique warning
---
> // AFNI_ONE_OBLIQUE_WARNING   = YES // In afni GUI, just one oblique warning
> AFNI_NO_OBLIQUE_WARNING       = YES // Turn off obliquity warnings completely
211d209
< //AFNI_1DPLOT_BOXSIZE		= 0.02

I reverted the value of hints, compressor and autogzip one by one but apqc always blocked at olap. Then it worked when I clear the AFNI_LAYOUT_FILE variable. I haven't tested the other variables.

Then I did a test for reprocity and added the AFNI_LAYOUT_FILE variable to a clean .afnirc file and curiously apqc worked. It worked as well when adding other variables. But when I added AFNI_HINTS = KILL the VNC session crashed. I am afraid I have to come back later to the thread when I get access to the workstation.
Jonathan

Wow, thanks for the further investigations on this.

I'm not sure about the FT vs other subjects aspect.

One thing to note (separate from this, I think), is that in general we would recommend not using AFNI_AUTOGZIP, because of the unpredictability about whether a BRIK file would be zipped or not. It can probably lead to some odd edge cases. Having AFNI_COMPRESSOR on seems to make sense; in fact we have recently changed the default behavior of the code to compress if AFNI_COMPRESSOR has not been specified (that is, default to compressing BRIK files unless the user asks otherwise).

We have also returned a previous default of having AFNI_NIFTI_VIEW be orig if the user doesn't specify anything. It is unfortunate to have the ambiguous "2" in the [qs]form_code values, but in most cases where it arises from other software that seems to make the most sense as a best guess of how to interpret it.

Anyways, these are just ramblings. Thanks again for the further details and for solving what the underlying issue was.

--pt