#!/bin/sh #{{{ copyright and script setup # # Copyright (C) Eugene Duff 2004 University of Oxford # # Part of FSL - FMRIB's Software Library # http://www.fmrib.ox.ac.uk/fsl # fsl@fmrib.ox.ac.uk # # Developed at FMRIB (Oxford Centre for Functional Magnetic Resonance # Imaging of the Brain), Department of Clinical Neurology, Oxford # University, Oxford, UK # # # LICENCE # # FMRIB Software Library, Release 5.0 (c) 2012, The University of # Oxford (the "Software") # # The Software remains the property of the University of Oxford ("the # University"). # # The Software is distributed "AS IS" under this Licence solely for # non-commercial use in the hope that it will be useful, but in order # that the University as a charitable foundation protects its assets for # the benefit of its educational and research purposes, the University # makes clear that no condition is made or to be implied, nor is any # warranty given or to be implied, as to the accuracy of the Software, # or that it will be suitable for any particular purpose or for use # under any specific conditions. Furthermore, the University disclaims # all responsibility for the use which is made of the Software. It # further disclaims any liability for the outcomes arising from using # the Software. # # The Licensee agrees to indemnify the University and hold the # University harmless from and against any and all claims, damages and # liabilities asserted by third parties (including claims for # negligence) which arise directly or indirectly from the use of the # Software or the sale of any products based on the Software. # # No part of the Software may be reproduced, modified, transmitted or # transferred in any form or by any means, electronic or mechanical, # without the express permission of the University. The permission of # the University is not required if the said reproduction, modification, # transmission or transference is done without financial return, the # conditions of this Licence are imposed upon the receiver of the # product, and all original and amended source code is included in any # transmitted product. You may be held legally responsible for any # copyright infringement that is caused or encouraged by your failure to # abide by these terms and conditions. # # You are not permitted under this Licence to use this Software # commercially. Use for which any financial return is received shall be # defined as commercial use, and includes (1) integration of all or part # of the source code or the Software into a product for sale or license # by or on behalf of Licensee to third parties or (2) use of the # Software or any derivative of it for research with the final aim of # developing software products for sale or license to a third party or # (3) use of the Software or any derivative of it for research with the # final aim of developing non-software products for sale or license to a # third party, or (4) use of the Software to provide any service to an # external organisation for which payment is received. If you are # interested in using the Software commercially, please contact Isis # Innovation Limited ("Isis"), the technology transfer company of the # University, to negotiate a licence. Contact details are: # innovation@isis.ox.ac.uk quoting reference DE/9564. export LC_NUMERIC=C Usage() { function=`basename $0` echo Command-line editing of FSL design .\*fsf files echo echo $function inputfsffile outputfsffile -option optionparam [-option optionparam] echo $function fsffiles -i fsffiles -option optionparam [-option optionparam] \*\* Replaces existing files echo echo -featwatcher x - set featwatcher off \(0\) or on \(1\) echo -replace x y - basic global replace x with y \( e.g. Subj10/run2 Subj11/run3 \) echo -analysis x - analysis type \(0 - reg/group 7 - full 1 - pre-stats 2 - stats 3 stats+post 4 post\) echo -overwrite x - overwrite old dir 0 - yes 1 - no echo -B0 x - B0 correction? 0 - no 1 - yes echo -EPIes x - EPI echo spacing? echo -EPIte x - EPI TE? echo -structural x - sets structural image echo -reg x - 0,1 turns registration on/off/ echo -outputdir x \( level directory only \) echo -outputfulldir x echo -inputdirs x \(not working\) echo -inputfulldir x y - sets input x echo -smooth x - sets spatial smooth levels echo -hpfilteron x - set highpass filter on/off \(1/0\) echo -hpfilter x - set highpass filter to x echo -motion x - add motion parameters to model echo -confoundevs x - add confound evs file to model echo -hilevel x - sets high level analysis to x \(3 - FE, 0 - ME OLS, 1 - ME FLAME, 2 - ME FLAME 1+2 \) echo -outlier x - sets FLAME outlier detection echo -highresdof x echo -set FEAT watcher x echo -MELODIC x echo echo -nevs_orig x - sets number of original EVs echo -nevs_real x - sets number of real EVs echo -tf x y temporal filtering for ev x on/off \(1/0\) echo -td x y temporal derivative for ev x on/off \(1/0\) \(does not update contrasts\) echo -evshape x y set shape of ev x to y 0: square 1: sinusoid 2: Custom \(1 entry per vol\) 3: Custom \(3 col\) 4: interaction 10: zeros echo -evcustom x set custom ev filename echo -evcustomfulldir x set custom ev full file location echo -evconv x y set ev convolution 0-none 1-Gauss 2-gamma 3-dbl gamma 4-gamma basis echo -evval x y z set higher level EV x val for input y to z echo -evorth x y z orthogonalise ev x wrt y? echo -evname x y set title for EV x to y echo -evskip x y skip ev x in web report on/off \(1/0\) echo echo -ncontrasts_orig x - sets number of original contrasts echo -ncontrasts_real x - sets number of real contrasts echo -contrast_mode x - sets contrast mode real/orig echo -contrast_orig x y z echo -contrast_real x y z echo -contrast_orig_name x y echo -contrast_real_name x y echo -contrast_orig_show x y echo -contrast_real_show x y echo echo -FNIRT x - sets FNIRT nonlinear reg on/off \(1/0\) echo -FNIRTwarpres x echo -bgim x - sts background image 1- mean highres 2 - first highres 3 - mean functional 4 - first functional 5 -std space echo -alt_example_func x - sets alternative example_func exit } shiftpos() { eval "pos=`echo $pos+1 | bc`" } [ "$1" = "" ] && Usage firstchar=`echo $1 | head -c 1` if [[ $firstchar == '-' ]] then shift firstchar=`echo $1 | head -c 1` while [[ $firstchar != '-' ]] && [[ $firstchar != '' ]] do inputdirs="$inputdirs $1" shift firstchar=`echo $1 | head -c 1` done outputdirs=$inputdirs else inputdirs=$1 outputdirs=$2 shift;shift fi opts=$@ fsffile=`tmpnam` cnt=1; for input in $inputdirs; do cp $input $fsffile fsffile=`cat $fsffile` outfsffile=`echo $outputdirs | awk '{print $'$cnt'}'` cnt=`echo $cnt + 1 | bc` tempname=`tmpnam` pos=1; pos2=2; pos3=3; pos4=4; in1=$(echo $opts | awk '{ print $'$pos'}') in2=$(echo $opts | awk '{ print $'$pos2'}') in3=$(echo $opts | awk '{ print $'$pos3'}') in4=$(echo $opts | awk '{ print $'$pos4'}') while [[ $in1 != '' ]]; do if [[ $in1 == '-replace' ]] then # convert "/" old=$(echo $in2 | sed 's/\//\\\//g') new=$(echo $in3 | sed 's/\//\\\//g') fsffile=$(echo "$fsffile" | sed 's/'$old'/'$new'/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-hilevel' ]] then if [[ ${in2} == 'FE' ]]; then fsffile=$(echo "$fsffile" | sed 's/mixed_yn) [0123]/mixed_yn) '3'/g') elif [[ ${in2} == 'ME' ]]; then fsffile=$(echo "$fsffile" | sed 's/mixed_yn) [0123]/mixed_yn) '2'/g') else fsffile=$(echo "$fsffile" | sed 's/mixed_yn) [0123]/mixed_yn) '$in2'/g') fi shiftpos; shiftpos elif [[ $in1 == '-reg' ]] then fsffile=$(echo "$fsffile" | sed 's/reghighres_yn) [0-9].*/(reghighres_yn) '$in2'/g') fsffile=$(echo "$fsffile" | sed 's/reg_yn) [0-9].*/(reg_yn) '$in2'/g') fsffile=$(echo "$fsffile" | sed 's/regstandard_yn) [0-9].*/(regstandard_yn) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-FNIRT' ]] then fsffile=$(echo "$fsffile" | sed 's/regstandard_nonlinear_yn) [0-9].*/(regstandard_nonlinear_yn) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-FNIRTwarpres' ]] then fsffile=$(echo "$fsffile" | sed 's/regstandard_nonlinear_warpres) [0-9].*/(regstandard_nonlinear_warpres) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-highresdof' ]] then fsffile=$(echo "$fsffile" | sed 's/reghighres_dof) ./reghighres_dof) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-bgim' ]] then fsffile=$(echo "$fsffile" | sed 's/bgimage) ./bgimage) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-FEATwatcher' ]] then fsffile=$(echo "$fsffile" | sed 's/watcher_yn) [0-9].*/watcher_yn) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-MELODIC' ]] then fsffile=$(echo "$fsffile" | sed 's/melodic_yn) [0-9].*/melodic_yn) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-nevs_orig' ]] then # determine original number of fsffile=$(echo "$fsffile" | sed 's/evs_orig) [0-9].*/evs_orig) '$in2'/g') npts=`echo "$fsffile" | grep -o 'npts).*' | sed 's/npts) //'` for a in `seq $in2`; do # Check if EVs exist if echo "$fsffile" | grep -q "EV $a title" ; # If exist, add extra bits then # Set orthogonalisation, EB for b in `seq $in2`;do # Check if orth exists: if echo "$fsffile" | grep -q "ortho$a.$b)" ; then : else txt=$txt"# Orthogonalise EV $a wrt EV $b\n\n" txt=$txt" set fmri(ortho$a.$b) 0\n\n" fi done # figure out where to put info if echo "$fsffile" | grep -q "fmri(evg.*\.$a)" ; then lineno=`echo "$fsffile" | grep -n "evg.*\.$a)" | tail -n 1 | sed 's/:.*//'` else lineno=`echo "$fsffile" | wc -l | sed 's/ .*//'` fi fsffile=$(echo "$fsffile" | sed ''$lineno'a '"$txt"'') txt='' # Set EV values to 0 for b in `seq $npts`;do # Check if EV exists if echo "$fsffile" | grep -q "fmri(evg$b.$a)" ; then : else txt=$txt"# Higher-level EV value for EV $a and input $b\n\n" txt=$txt"set fmri(evg$b.$a) 0\n\n" fi done # figure out where to put info if echo "$fsffile" | grep -q "fmri(evg.*\.$a)" ; then lineno=`echo "$fsffile" | grep -n "evg.*\.$a)" | tail -n 1 | sed 's/:.*//'` else lineno=`echo "$fsffile" | wc -l | sed 's/ .*//'` fi if [[ $txt != '' ]] then fsffile=$(echo "$fsffile" | sed ''$lineno'a '"$txt"'') fi else # If not exist create extra orthogonalisation files txt=$txt" # EV $a title\n" txt=$txt" set fmri(evtitle$a) \"\"\n" txt=$txt"\n" txt=$txt" # Basic waveform shape (EV $a)\n" txt=$txt" # 0 : Square\n" txt=$txt" # 1 : Sinusoid\n" txt=$txt" # 2 : Custom (1 entry per volume)\n" txt=$txt" # 3 : Custom (3 column format)\n" txt=$txt" # 4 : Interaction\n" txt=$txt" # 10 : Empty (all zeros)\n" txt=$txt" set fmri(shape$a) 2\n" txt=$txt"\n" txt=$txt" # Convolution (EV $a)\n" txt=$txt" # 0 : None\n" txt=$txt" # 1 : Gaussian\n" txt=$txt" # 2 : Gamma\n" txt=$txt" # 3 : Double-Gamma HRF\n" txt=$txt" # 4 : Gamma basis functions\n" txt=$txt" # 5 : Sine basis functions\n" txt=$txt" # 6 : FIR basis functions\n" txt=$txt" set fmri(convolve$a) 2\n" txt=$txt"\n" txt=$txt" # Convolve phase (EV $a)\n" txt=$txt" set fmri(convolve_phase$a) 0\n" txt=$txt"\n" txt=$txt" # Apply temporal filtering (EV $a)\n" txt=$txt" set fmri(tempfilt_yn$a) 0\n" txt=$txt"\n" txt=$txt" # Add temporal derivative (EV $a)\n" txt=$txt" set fmri(deriv_yn$a) 0\n" txt=$txt"\n" txt=$txt" # Custom EV file (EV $a)\n" txt=$txt" set fmri(custom$a) \"dummy\"\n" txt=$txt"\n" # Set orthogonalisation, EB for b in `seq $in2`;do txt=$txt"# Orthogonalise EV $a wrt EV $b\n\n" txt=$txt" set fmri(ortho$a.$b) 0\n\n" done # figure out where to put info lastev=`echo $a-1 | bc` if echo "$fsffile" | grep -q "fmri(evg.*\.$lastev)" ; then lineno=`echo "$fsffile" | grep -n "evg.*\.$lastev)" | tail -n 1 | sed 's/:.*//'` elif echo "$fsffile" | grep -q "confoundevs" ; then lineno=`echo "$fsffile" | grep -n "confoundevs" | tail -n 1 | sed 's/:.*//'` else lineno=`echo "$fsffile" | wc -l | sed 's/ .*//'` fi fsffile=$(echo "$fsffile" | sed ''$lineno'a '"$txt"'') fi txt='' # Set EV values to 0 for b in `seq $npts`;do txt=$txt"# Higher-level EV value for EV $a and input $b\n\n" txt=$txt"set fmri(evg$b.$a) 0\n\n" done # figure out where to put info lastev=`echo $a-1 | bc` if echo "$fsffile" | grep -q "fmri(evg.*\.$lastev)" ; then lineno=`echo "$fsffile" | grep -n "evg.*\.$lastev)" | tail -n 1 | sed 's/:.*//'` elif echo "$fsffile" | grep -q "confoundevs" ; then lineno=`echo "$fsffile" | grep -n "confoundevs" | tail -n 1 | sed 's/:.*//'` else lineno=`echo "$fsffile" | wc -l | sed 's/ .*//'` fi fsffile=$(echo "$fsffile" | sed ''$lineno'a '"$txt"'') shiftpos; shiftpos done elif [[ $in1 == '-analysis' ]] then fsffile=$(echo "$fsffile" | sed 's/analysis) ./analysis) '$in2'/g') if [[ $in2 == '1' ]]; then fsffile=$(echo "$fsffile" | sed 's/stats_yn) ./stats_yn) '0'/g' | sed 's/poststats_yn) ./poststats_yn) '0'/g') fi shiftpos; shiftpos elif [[ $in1 == '-featwatcher' ]] then fsffile=$(echo "$fsffile" | sed 's/featwatcher_yn) ./featwatcher_yn) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-overwrite' ]] then fsffile=$(echo "$fsffile" | sed 's/newdir_yn) ./newdir_yn) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-B0' ]] then fsffile=$(echo "$fsffile" | sed 's/regunwarp_yn) ./regunwarp_yn) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-EPIes' ]] then fsffile=$(echo "$fsffile" | sed 's/dwell) .*/dwell) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-EPIte' ]] then fsffile=$(echo "$fsffile" | sed 's/(te) .*/(te) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-nevs_real' ]] then fsffile=$(echo "$fsffile" | sed 's/evs_real) [0-9].*/evs_real) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-td' ]] then fsffile=$(echo "$fsffile" | sed 's/deriv_yn'$in2') [0-9].*/deriv_yn'$in2') '$in3'/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-tf' ]] then fsffile=$(echo "$fsffile" | sed 's/tempfilt_yn'$in2') [0-9].*/tempfilt_yn'$in2') '$in3'/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-evskip' ]] then fsffile=$(echo "$fsffile" | sed 's/skip'$in2') [0-9].*/skip'$in2') '$in3'/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-evshape' ]] then fsffile=$(echo "$fsffile" | sed 's/shape'$in2') [0-9].*/shape'$in2') '$in3'/g') # if 2 or 3, check if need to add lines to file if [[ $in3 == 2 ]] || [[ $in3 == 3 ]] then if echo "$fsffile" | grep -q "custom$in2)" ; then txt='' else txt=$txt"# Custom EV file (EV $in2)\n\n" txt=$txt"set fmri(custom$2) \"\"" # figure out where to put info if echo "$fsffile" | grep -q "deriv_yn$2)" ; then lineno=`echo "$fsffile" | grep -n "deriv_yn$2)" | tail -n 1 | sed 's/:.*//'` else lineno=`echo "$fsffile" | wc -l | sed 's/ .*//'` fi echo $lineno fsffile=$(echo "$fsffile" | sed ''$lineno'a '"$txt"'') fi fi shiftpos; shiftpos; shiftpos elif [[ $in1 == '-evname' ]] then fsffile=$(echo "$fsffile" | sed 's/evtitle'$in2') ".*"/evtitle'$in2') "'$in3'"/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-evcustom' ]] then newdir=$(echo $in3 | sed 's/\//\\\//g') fsffile=$(echo "$fsffile" | sed 's/custom'$in2') "\(.*\)"/custom'$in2') "\1\/'$newdir'"/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-evcustomfulldir' ]] then newdir=$(echo $in3 | sed 's/\//\\\//g') fsffile=$(echo "$fsffile" | sed 's/custom'$in2') ".*"/custom'$in2') "'$newdir'"/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-evval' ]] then fsffile=$(echo "$fsffile" | sed 's/evg'$in3'.'$in2') [0-9].*/evg'$in3'\.'$in2') '$in4'/g') shiftpos; shiftpos; shiftpos; shiftpos elif [[ $in1 == '-evconv' ]] then fsffile=$(echo "$fsffile" | sed 's/convolve'$in2').*/convolve'$in2') '$in3'/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-evorth' ]] then fsffile=$(echo "$fsffile" | sed 's/ortho'$in2'.'$in3') [0-9].*/ortho'$in2'\.'$in3') '$in4'/g') shiftpos; shiftpos; shiftpos; shiftpos elif [[ $in1 == '-contrast_mode' ]] then fsffile=$(echo "$fsffile" | sed 's/con_mode) [a-z].*/con_mode) '$in2'/g' | sed 's/con_mode_old) [a-z].*/con_mode_old) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-contrast_orig' ]] then fsffile=$(echo "$fsffile" | sed 's/con_orig'$in2'.'$in3') [0-9].*/con_orig'$in2'\.'$in3') '$in4'/g') shiftpos; shiftpos; shiftpos; shiftpos elif [[ $in1 == '-contrast_real' ]] then fsffile=$(echo "$fsffile" | sed 's/con_real'$in2'.'$in3') [0-9].*/con_real'$in2'\.'$in3') '$in4'/g') shiftpos; shiftpos; shiftpos; shiftpos elif [[ $in1 == '-contrast_orig_show' ]] then fsffile=$(echo "$fsffile" | sed 's/conpic_orig\.'$in2') [0-9].*/conpic_orig\.'$in2') '$in3'/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-contrast_orig_name' ]] then fsffile=$(echo "$fsffile" | sed 's/conname_orig\.'$in2') ".*"/conname_orig\.'$in2') "'$in3'"/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-contrast_real_show' ]] then fsffile=$(echo "$fsffile" | sed 's/conpic_real\.'$in2') [0-9].*/conpic_real\.'$in2') '$in3'/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-contrast_real_name' ]] then fsffile=$(echo "$fsffile" | sed 's/conname_real\.'$in2') ".*"/conname_real\.'$in2') "'$in3'"/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-smooth' ]] then fsffile=$(echo "$fsffile" | sed 's/smooth) [0-9].*/smooth) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-hpfilteron' ]] then fsffile=$(echo "$fsffile" | sed 's/temphp_yn) [0-9].*/temphp_yn) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-hpfilter' ]] then fsffile=$(echo "$fsffile" | sed 's/paradigm_hp) [0-9].*/paradigm_hp) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-motion' ]] then fsffile=$(echo "$fsffile" | sed 's/motionevs) [0-9].*/motionevs) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-confoundevs' ]] then if [[ $in3 == '' ]] then fsffile=$(echo "$fsffile" | sed 's/confound_evs) [0-9].*/confound_evs) '$in2'/g') shiftpos;shiftpos else newdir=$(echo $in3 | sed 's/\//\\\//g') fsffile=$(echo "$fsffile" | sed 's/\([^"]*confoundev_files(1) "\)\([^"]*\)"/\1'$newdir'"/g;s/confoundevs) [01].*/confoundevs) '$in2'/g' ) shiftpos; shiftpos; shiftpos fi elif [[ $in1 == '-outlier' ]] then fsffile=$(echo "$fsffile" | sed 's/robust_yn) [01].*/robust_yn) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-ncontrasts_orig' ]] then fsffile=$(echo "$fsffile" | sed 's/ncon_orig) [0-9].*/ncon_orig) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-ncontrasts_real' ]] then fsffile=$(echo "$fsffile" | sed 's/ncon_real) [0-9].*/ncon_real) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-outputfulldir' ]] then newdir=$(echo $in2 | sed 's/\//\\\//g') fsffile=$(echo "$fsffile" | sed 's/\([^"]*outputdir) "\)\([^"]*\)"/\1'$newdir'"/g' ) shiftpos; shiftpos elif [[ $in1 == '-outputdir' ]] then # dir=`echo "$fsffile" | grep outputdir | sed 's/[^"]*"\([^"]*\)"/\1/g'` dir=`echo "$fsffile" | grep outputdir | awk '{ print $NF }'` firstchar=`echo $dir | head -c 1` lastchar=`echo $dir | tail -c 1` if [[ $dir == '' ]] then newdir=$in2 elif [[ $lastchar == / ]] then newdir=$dir/$in2 else newdir=`dirname $dir`/$in2 newdir=`echo $newdir | sed 's/^.\//\//g'` fi newdir=$(echo $newdir | sed 's/\//\\\//g') fsffile=$(echo "$fsffile" | sed 's/\([^\"]*outputdir) "\)\([^\"]*\)\"/\1'$newdir'\"/g') shiftpos; shiftpos elif [[ $in1 == '-inputdirs' ]] then ## not working dir=`cat "$fsffile" | grep feat_files\(1\) | sed 's/[^"]*"\([^"]*\)"/\1/g'` firstchar=`echo $dir | head -c 1` lastchar=`echo $dir | tail -c 1` if [[ $dir == '' ]] then newdir=$in2 elif [[ $lastchar == / ]] then newdir=$dir/$in2 else newdir=`dirname $dir`/$in2 newdir=$(echo $newdir | sed 's/^.\///g') fi newdir=$(echo $newdir | sed 's/\//\\\//g') fsffile=$(echo "$fsffile" | sed 's/\([^\"]*feat_files(.) "\)\([^\"]*\)\"/\1'$newdir'\"/g') shiftpos; shiftpos elif [[ $in1 == '-inputfulldir' ]] then newdir=$(echo $in3 | sed 's/\//\\\//g') fsffile=$(echo "$fsffile" | sed 's/\([^"]*feat_files('$in2') "\)\([^"]*\)"/\1'$newdir'"/g' ) # adjust timepoints and TR npts=`fslval $in3 dim4 | grep -o "[0-9.]*"` TR=`fslval $in3 pixdim4 | grep -o "[0-9.]*"` fsffile=$(echo "$fsffile" | sed 's/tr) .*/tr) '$TR'/g') fsffile=$(echo "$fsffile" | sed 's/npts) .*/npts) '$npts'/g') shiftpos; shiftpos; shiftpos elif [[ $in1 == '-tr' ]] then fsffile=$(echo "$fsffile" | sed 's/tr) .*/tr) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-ncopeinputs' ]] then fsffile=$(echo "$fsffile" | sed 's/ncopeinputs) [0-9].*/ncopeinputs) '$in2'/g') shiftpos; shiftpos elif [[ $in1 == '-structural' ]] then newdir=$(echo $in2 | sed 's/\//\\\//g') fsffile=$(echo "$fsffile" | sed 's/\([^"]*highres_files(.) "\)\([^"]*\)"/\1'$newdir'"/g' ) shiftpos; shiftpos elif [[ $in1 == '-alt_example_func' ]] then newdir=$(echo $in2 | sed 's/\//\\\//g') fsffile=$(echo "$fsffile" | sed 's/\([^"]*alternative_example_func) "\)\([^"]*\)"/\1'$newdir'"/g' ) shiftpos; shiftpos else echo Error: no option $in1 exit fi pos2=$(echo $pos+1 | bc) pos3=$(echo $pos+2 | bc) pos4=$(echo $pos+3 | bc) in1=$(echo $opts | awk '{ print $'$pos' }') in2=$(echo $opts | awk '{ print $'$pos2' }') in3=$(echo $opts | awk '{ print $'$pos3' }') in4=$(echo $opts | awk '{ print $'$pos4' }') done echo "$fsffile" > $outfsffile done