#! /bin/csh -f # # mkblockpar # # Original Author: Doug Greve # CVS Revision Info: # $Author: greve $ # $Date: 2011/01/27 16:18:51 $ # $Revision: 1.5 $ # # Copyright (C) 2002-2007, # The General Hospital Corporation (Boston, MA). # All rights reserved. # # Distribution, usage and copying of this software is covered under the # terms found in the License Agreement file named 'COPYING' found in the # FreeSurfer source code root directory, and duplicated here: # https://surfer.nmr.mgh.harvard.edu/fswiki/FreeSurferOpenSourceLicense # # General inquiries: freesurfer@nmr.mgh.harvard.edu # Bug reports: analysis-bugs@nmr.mgh.harvard.edu # set VERSION = '$Id: mkblockpar,v 1.5 2011/01/27 16:18:51 greve Exp $'; ##### Print out version info, if needed #### set n = `echo $argv | grep version | wc -l` if($n != 0) then echo $VERSION exit 0; endif set TR = (); set nepochs = (); set epoch_idlist = (); set nper_epoch = (); set nper_epoch_list = (); set parname = (); set t0 = 0; if($#argv == 0) then goto usage_exit; exit 1; endif goto parse_args; parse_args_return: goto check_params; check_params_return: # echo $epoch_idlist rm -f $parname touch $parname @ t = $t0; @ epoch = 1 while($epoch <= $nepochs) @ code = $epoch_idlist[$epoch]; if($#nper_epoch_list != 0) then set nper = $nper_epoch_list[$epoch]; else set nper = $nper_epoch; endif set tper = `echo "$TR*$nper" | bc -l` printf "%6.3f %3d %6.3f 1\n" $t $code $tper >> $parname @ ntr = 0; while($ntr < $nper) #printf "%6.3f %3d\n" $t $code >> $parname set t = `echo "$t + $TR" | bc -l`; @ ntr = $ntr + 1; end @ epoch = $epoch + 1; end echo "Completed successfully" exit 0; ############################################### ############--------------################## parse_args: set cmdline = "$argv"; while( $#argv != 0 ) set flag = $argv[1]; shift; switch($flag) case "-TR": if ( $#argv == 0) goto arg1err; set TR = $1; shift; breaksw case "-nepochs" case "-ne" if ( $#argv == 0) goto arg1err; set nepochs = $1; shift; breaksw case "-epochid" if($#nepochs == 0) then echo "ERROR: must specify number of epochs before id list" exit 1; endif if ( $#argv < $nepochs) goto arg1err; @ epoch = 0; while($epoch < $nepochs) set epoch_idlist = ($epoch_idlist $1); shift; @ epoch = $epoch + 1; end breaksw case "-nperepoch" case "-npe" if ( $#argv == 0) goto arg1err; set nper_epoch = $1; shift; breaksw case "-nperepochlist" case "-npel" if($#nepochs == 0) then echo "ERROR: must specify number of epochs before id list" exit 1; endif if ( $#argv < $nepochs) goto arg1err; @ epoch = 0; while($epoch < $nepochs) set nper_epoch_list = ($nper_epoch_list $1); shift; @ epoch = $epoch + 1; end breaksw breaksw case "-par": case "-paradigm": case "-parname": if ( $#argv == 0) goto arg1err; set parname = $1; shift; breaksw case "-umask": if ( $#argv == 0) goto arg1err; umask $1; shift; breaksw case "-verbose": set verbose = 1; breaksw case "-debug": set verbose = 1; set echo = 1; breaksw default: echo ERROR: Flag $flag unrecognized. echo $cmdline exit 1 breaksw endsw end goto parse_args_return; ############--------------################## ############--------------################## check_params: if($#TR == 0) then echo "ERROR: must specify a TR" exit 1; endif if($#nepochs == 0) then echo "ERROR: must specify number of epochs" exit 1; endif if($#epoch_idlist == 0) then echo "ERROR: must specify epoch id list" exit 1; endif if($#nper_epoch == 0 && $#nper_epoch_list == 0 ) then echo "ERROR: must specify number of TRs per epoch" exit 1; endif if($#parname == 0) then echo "ERROR: must specify a paradigm file name" exit 1; endif goto check_params_return; ############--------------################## ############--------------################## arg1err: echo "ERROR: flag $flag requires one argument" exit 1 ############--------------################## ############--------------################## usage_exit: echo "USAGE: mkblockpar" echo " -TR TR " echo " -parname name : name of paradigm file" echo " -nepochs n : number of epochs" echo " -epochid idlist : nepoch ids" echo " -nperepoch n : number TRs per epoch" echo " -umask umask : set unix file permission mask" echo " -version : print version and exit" exit 1;