/ coverage_mask
coverage_mask
 1  #!/usr/bin/env bash
 2  set -eou pipefail
 3  usage(){
 4  cat <<HEREDOC
 5  USAGE: 
 6     coverage_mask outputmask.nii.gz input1.nii.gz [input2.nii.gz input3.nii.gz ....]
 7  
 8   make mask of coverage.
 9   1) idv masks: include any voxel with any non-zero value in the individual inputfiles
10   2) include only voxels in all idv masks.
11  
12   This is a wrapper for 3dTstat -absmax ...; 3dMean -mask_inter ...
13   You may want 3dTstat -absmax ..; 3dMean -count ... # for a more descriptive coverage map
14  
15   Input is expected to be timeseries. If you already have mask per run, you dont need this!
16   Consider:
17     3dMean -prefix \$outfile -count inputs*
18  HEREDOC
19  exit 1
20  }
21  
22  [ $# -lt 2 ] && usage
23  
24  outfile="$1"; shift
25  [ -r $outfile ] && echo -e "# already have output file.\n\t rm '$outfile' #to redo" && exit 0
26  tmpd=$(mktemp -d /tmp/mkmask_XXXX)
27  let i=1
28  for f in "$@"; do
29     3dTstat -absmax -prefix $tmpd/mask_$i.nii.gz $f
30     let ++i
31  done
32  3dMean -prefix $outfile -mask_inter $tmpd/mask_*.nii.gz
33  rm -r $tmpd