#!/usr/bin/python
import os, sys, string
import afni_base
from pydoc import help

test = 1

#define rules for options
oplist = []
op = afni_base.comopt('-areas', -2, \
   ["CA_N27_MPM", "area_6", "area_4a", "area_4p"])
oplist.append(op)
op = afni_base.comopt('-areas_2', -2, \
   ["CA_ZOUZOU", "areea_6", "areea_4a", "areea_4p"])
oplist.append(op)
op = afni_base.comopt('-dsets', -1, [])
oplist.append(op)
op = afni_base.comopt('-sides', -1, ['left', 'right'])
oplist.append(op)
op = afni_base.comopt('-command', -1, [])
oplist.append(op)


opts = afni_base.getopts2(sys.argv, oplist)
if opts == None:
   sys.exit()
afni_base.show_opts2(opts)

#find keys with -areas_
areas = []
for key in opts.keys():
   if key.find('-areas') > -1:  #here's one set of areas
      areas.append(key) 

#Now do the deed
for ak in areas:
   op = opts[ak]  #Get the areas_* option
   atlas = op.parlist[0]
   alist = op.parlist[1:]  #the areas
   for side in opts['-sides'].parlist:
      for ar in alist:
         com = "rm -f %s_%s* >& /dev/null" % (ar, side)
         if test == 0:
            so, se = afni_base.shell_exec(com)
         else:
            print com
         com = "3dcalc -a %s:%s:%s -expr 'step(a)' -prefix %s_%s" \
               % (atlas, side, ar, ar, side)
         if test == 0:
            so, se = afni_base.shell_exec(com)
         else:
            print com
         com = "3dresample -inset %s_%s+tlrc -master %s -rmode Li -prefix %s_%s_rtmp" \
                  % (ar, side, opts['-dsets'].parlist[0], ar, side)
         if test == 0:
            so, se = afni_base.shell_exec(com)
         else:
            print com
            
         #Remove mask interpolation artifacts
         com = "3dcalc -a %s_%s_rtmp+tlrc -expr (step(a-0.5)) -prefix %s_%s_resam " \
                  % ( ar, side, ar, side )
         if test == 0:
            so, se = afni_base.shell_exec(com)
         else:
            print com
         for dset in opts['-dsets'].parlist:
            #Mask the input dset and remove mask interpolation artifacts
            com = "3dcalc -b %s -a %s_%s_resam+tlrc -expr (b*a) -prefix %s_%s_mskd " \
                     % ( dset, ar, side, ar, side )
            if test == 0:
               so, se = afni_base.shell_exec(com)
            else:
               print com
            #Now run the user's command
            ucom = string.join(opts['-command'].parlist,' ')
            ucomr = ucom.replace('MASKED_DSET', dset)
            ucom = ucomr.replace('DSET', "%s_%s_mskd+tlrc" % (ar, side))
            ucomr = ucom.replace('ROI', "%s_%s_resam+tlrc" % (ar, side))
            if test == 0:
               so, se = afni_base.shell_exec(ucomr)
            else:
               print ucomr
            
#help(afni_base.getopts2)



syntax highlighted by Code2HTML, v. 0.9.1