PennLINC / xcpEngine

Official public repository for the XCP Engine. This tool is deprecated in favor of XCP-D and ASLPrep.
MIT License
66 stars 42 forks source link

SVG animations broken in the generated reports #492

Open iabraham opened 2 years ago

iabraham commented 2 years ago

Describe the bug There was no crash in this case. xcpEngine ran to completion. What happened though is that the animated svg files in the report didn't have all panels. Usually there are three rows for different values of z, x and y.

Cohort file Paste cohort file between the triple backticks

id0,id1,id2,img
sub-115,ses-B,run-1,derivatives/fmriprep/sub-115/ses-B/func/sub-115_ses-B_task-rest_run-1_space-MNI152NLin2009cAsym_desc-preproc_bold.nii.gz
sub-115,ses-B,run-2,derivatives/fmriprep/sub-115/ses-B/func/sub-115_ses-B_task-rest_run-2_space-MNI152NLin2009cAsym_desc-preproc_bold.nii.gz
sub-115,ses-A,run-3,derivatives/fmriprep/sub-115/ses-A/func/sub-115_ses-A_task-rest_run-3_space-MNI152NLin2009cAsym_desc-preproc_bold.nii.gz
sub-115,ses-A,run-2,derivatives/fmriprep/sub-115/ses-A/func/sub-115_ses-A_task-rest_run-2_space-MNI152NLin2009cAsym_desc-preproc_bold.nii.gz
sub-115,ses-A,run-1,derivatives/fmriprep/sub-115/ses-A/func/sub-115_ses-A_task-rest_run-1_space-MNI152NLin2009cAsym_desc-preproc_bold.nii.gz

Design File Paste your entire design (.dsn) file between the triple backticks

#!/usr/bin/env bash

###################################################################
#  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  ⊗  #
###################################################################

###################################################################
# This design file stores the values of all variables required to
# execute a complete neuroimage processing pipeline. You may
# execute the analysis specified in this design file by calling
# (in any v4 or higher bash terminal):
#
# xcpEngine -d <design> -c <cohort> -o <output> <options>
#
# Variables fall into five general categories:
# * ANALYSIS VARIABLES are used at all stages of this analysis.
# * PIPELINE specifies the modules that comprise the analysis.
# * MODULE VARIABLES are used during one stage of the analysis.
#                  These are typically array variables with array
#                  indices equal to the index of the module that
#                  calls them.
# * OUTPUT VARIABLES may be used at all stages of the analysis.
#                  These are typically array variables with array
#                  indices equal to the value of the primary
#                  subject identifier. They will appear only in
#                  localised design files.
###################################################################

###################################################################
# ANALYSIS VARIABLES
###################################################################

analysis=fc_$(whoami)
design=/data/fc-36p.dsn
sequence=anatomical
standard=MNI%2x2x2

###################################################################
# PIPELINE
###################################################################

pipeline=prestats,confound2,regress,fcon,reho,alff,roiquant,norm,qcfc

###################################################################
# 1 PRESTATS
###################################################################

prestats_rerun[1]=1
prestats_cleanup[1]=1
prestats_process[1]=FMP

###################################################################
# 2 CONFOUND2
###################################################################

confound2_rps[2]=1
confound2_rms[2]=0
confound2_wm[2]=1
confound2_csf[2]=1
confound2_gsr[2]=1
confound2_acompcor[2]=0
confound2_tcompcor[2]=0
confound2_aroma[2]=0
confound2_past[2]=0
confound2_dx[2]=1
confound2_sq[2]=2
confound2_custom[2]=
confound2_censor[2]=0
confound2_censor_contig[2]=0
confound2_rerun[2]=0
confound2_cleanup[2]=1

###################################################################
# 3  REGRESS
###################################################################

regress_tmpf[3]=butterworth
regress_hipass[3]=0.01
regress_lopass[3]=0.08
regress_tmpf_order[3]=1
regress_tmpf_pass[3]=2
regress_tmpf_ripple[3]=0.5
regress_tmpf_ripple2[3]=20
regress_dmdt[3]=2
regress_1ddt[3]=1
regress_smo[3]=6
regress_sptf[3]=susan
regress_usan[3]=default
regress_usan_space[3]=
regress_rerun[3]=0
regress_cleanup[3]=1
regress_process[3]=DMT-TMP-REG

###################################################################
# 4 FCON
###################################################################

fcon_atlas[4]=all
fcon_metric[4]=corrcoef
fcon_rerun[4]=0
fcon_cleanup[4]=1

###################################################################
# 5 REHO
###################################################################

reho_nhood[5]=vertices
reho_roikw[5]=0 # does nothing at the moment
reho_sptf[5]=susan
reho_smo[5]=6
reho_rerun[5]=0
reho_cleanup[5]=1

###################################################################
# 6 ALFF
###################################################################

alff_hipass[6]=0.01
alff_lopass[6]=0.08
alff_sptf[6]=susan
alff_smo[6]=6
alff_rerun[6]=0
alff_cleanup[6]=1

###################################################################
# 7 ROIQUANT
###################################################################

roiquant_atlas[7]=all
roiquant_globals[7]=1
roiquant_vol[7]=0
roiquant_rerun[7]=0
roiquant_cleanup[7]=1

###################################################################
# 8 NORM
###################################################################
norm_primary[8]=1
norm_rerun[8]=0
norm_cleanup[8]=1

##################################################################
# 9 QCFC
###################################################################
qcfc_atlas[9]=power264
qcfc_sig[9]=fdr
qcfc_rerun[9]=0
qcfc_cleanup[9]=1

Error message Paste your error message between the backticks

There were no errors. 

Runtime Information It was run through Singularity on the latest version of xcpEngine (1.2.4).

Additional context I traced the problem down to missing transform parameters in the <g> tag in the generated SVG file. I wrote the following shell script to add these back in for my case.

#!/bin/zsh
# First argument to script is SVG image to fix

gsed -i '0,/<g><metadata>/s/<g><metadata>/<g transform="translate(0, 0) scale(1.0)"><metadata>/1' $1
gsed -i '0,/<g><metadata>/s/<g><metadata>/<g transform="translate(0, 165.0) scale(0.8461538461538461)"><metadata>/1' $1
gsed -i '0,/<g><metadata>/s/<g><metadata>/<g transform="translate(0, 304.61538461538464) scale(1.0)"><metadata>/1' $1
gsed -i '0,/<g><metadata>/s/<g><metadata>/<g transform="translate(0, 0) scale(1.0)"><metadata>/1' $1
gsed -i '0,/<g><metadata>/s/<g><metadata>/<g transform="translate(0, 165.0) scale(0.8461538461538461)"><metadata>/1' $1
gsed -i '0,/<g><metadata>/s/<g><metadata>/<g transform="translate(0, 304.61538461538464) scale(1.0)"><metadata>/1' $1

I copied these transform and scale parameters from the output generated by an older version of xcpEngine (1.2.1).

Buggy SVG below: sub-115_ses-A_run-1_normalization

Fixed SVG below: After running it through the script above.

sub-115_ses-A_run-1_normalization