@@ -83,8 +83,8 @@ rename-phase(){
8383rename-epi-multiecho (){
8484 local outdir=" $1 " ; shift
8585 local outname=" $1 " ; shift
86- local rename_patt=' s/([^_-]+)_e (\d+).(json|nii.gz)/echo-$2_$1.$3/'
87- if [ -r " $outdir /${outname} _e1.nii.gz" ]; then
86+ local rename_patt=' s/([^_-]+)_[ie] (\d+).(json|nii.gz)/echo-$2_$1.$3/'
87+ if [ -r " $outdir /${outname} _e1.nii.gz" -o -r " $outdir / ${outname} _i00001.nii.gz " ]; then
8888 echo " # trying to rename multiecho seq $outname " ;
8989 _rename-recent " $rename_patt " " $outdir " " ${outname} _e*"
9090 fi
@@ -96,6 +96,7 @@ multiecho_exists(){
9696 # will have been caught earlier
9797 local nii_out=" $1 "
9898 for ME_name in " ${nii_out/ .nii.gz/ _e1.nii.gz} " \
99+ " ${nii_out/ .nii.gz/ _i00001.nii.gz} " \
99100 " ${nii_out/ magnitude.nii.gz/ magnitude1.nii.gz} " \
100101 " $( add_echo_name " $nii_out " ) " ; do
101102 verbose " # checking for multiecho like '$ME_name '"
@@ -143,6 +144,7 @@ add_json_task(){
143144main (){
144145 set -euo pipefail
145146 set_dcm2niix # DCM2NIIX might be dcm2niix_afni or given by user
147+ local unzip_tmp=" " # if input is zip file, track to rm tmp folder later
146148
147149 [ $# -ne 2 ] && usage
148150 nii_out=" $1 " ; shift
@@ -151,6 +153,16 @@ main(){
151153 [ ${nii_out: (-7)} != " .nii.gz" ] &&
152154 echo " ERROR: output must have .nii.gz extention!" >&2 && exit 1
153155
156+ if [[ $dcm_folder =~ .zip$ ]]; then
157+ unzip_tmp=$( mktemp -d ${TMPDIR:-/ tmp} /dcmzip_XXXX)
158+ zip_file=$dcm_folder
159+ [ ! -d " $unzip_tmp " ] && echo " ERROR: failed to create temporary folder for unzipping!" && return 1
160+ echo " # unzipping $zip_file to $unzip_tmp " >&2
161+ $DRYRUN unzip -d " $unzip_tmp " " $zip_file "
162+ # TODO: trap to cleanup zip file?
163+ dcm_folder=$unzip_tmp
164+ fi
165+
154166 test -z " $NOECHOCHECK " && multiecho_exists " $nii_out " && exit 0
155167
156168 # should let dcm2niix just fail instead of doing the work here?
@@ -226,5 +238,9 @@ main(){
226238 for nii_out_me in " ${nii_outs[@]} " ; do
227239 $DRYRUN 3dNotes -h " $0 $dcm_folder $nii_out " " $nii_out_me "
228240 done
241+
242+ # cleanup unziped file
243+ [[ -n " $unzip_tmp " && -d " $unzip_tmp " && " $unzip_tmp " =~ dcmzip_ ]] && rm -r " $unzip_tmp "
244+ return 0
229245}
230246[[ " $( caller) " != " 0 " * ]] && set +u || main " $@ "
0 commit comments