Example #1
0
def main():

    if len(sys.argv)>1:
        ds=sys.argv[1]
    else:
        usage()

    if len(sys.argv)>2:
        basedir=sys.argv[2]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!'%basedir
            sys.exit(1)
    else:

        basedir='/scratch/01329/poldrack/openfmri/staged/'
        
    outfile=open('run_betfunc_%s.sh'%ds,'w')
    found_files=0
    for d in os.listdir(basedir+ds):
        if d[0:3]=='sub':
            for bd in os.listdir('%s/%s/BOLD/'%(basedir+ds,d)):
                for m in os.listdir('%s/%s/BOLD/%s/'%(basedir+ds,d,bd)):
                  if m=='bold_mcf.nii.gz':
                    root='%s/%s/BOLD/%s/'%(basedir+ds,d,bd)
                    outfile.write('bet %s/%s %s/%s -F\n'%(root,m,root,m.replace('mcf','mcf_brain')))
                    found_files=1
    outfile.close()

    if found_files>0:
        print 'now launching using:'
        print 'launch -s run_betfunc_%s.sh -n betfunc -r 00:10:00'%ds
        launch_qsub.launch_qsub(script_name='run_betfunc_%s.sh'%ds,runtime='00:10:00',jobname='%sbf'%ds,email=False)
    else:
        print 'no files found to process'
Example #2
0
def main():

    if len(sys.argv)>1:
        ds=sys.argv[1]
    else:
        usage()

    if len(sys.argv)>2:
        basedir=sys.argv[2]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!'%basedir
            sys.exit(1)
    else:
        basedir='/corral-repl/utexas/poldracklab/openfmri/staged'
        

    sk=load_scankey(os.path.join(basedir,ds,'scan_key.txt'))
    TR=sk['TR']
    
    outfile=open('run_qa_%s.sh'%ds,'w')
    dsdir=os.path.join(basedir,ds)
    for d in os.listdir(dsdir):
        if d[0:3]=='sub':
            for bd in os.listdir('%s/%s/BOLD/'%(dsdir,d)):
                for m in os.listdir('%s/%s/BOLD/%s/'%(dsdir,d,bd)):
                  if m=='bold_mcf.nii.gz':
                      root='%s/%s/BOLD/%s/'%(dsdir,d,bd)
                      outfile.write('fmriqa.py %s/%s %s\n'%(root,m,sk['TR']))

    outfile.close()


    print 'now launching using:'
    print 'launch -s run_qa_%s.sh -n qa -r 00:30:00'%ds
    launch_qsub.launch_qsub(script_name='run_qa_%s.sh'%ds,runtime='00:30:00',jobname='%sqa'%ds,email=False)
Example #3
0
def main():

    if len(sys.argv)>1:
        ds=sys.argv[1]
    else:
        usage()

    if len(sys.argv)>2:
        basedir=sys.argv[2]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!'%basedir
            sys.exit(1)
    else:

        basedir='/scratch/01329/poldrack/openfmri/staged/'
    if len(sys.argv)>3:
        wait_process=int(sys.argv[3])
    else:
        wait_process=[]
    
    outfile=open('run_betfunc_%s.sh'%ds,'w')
    found_files=0
    dsdir=os.path.join(basedir,ds)
    for d in glob.glob(os.path.join(dsdir,'sub*/BOLD/*/bold.nii.gz')):
                    outfile.write('bet %s %s -F\n'%(d.replace('.nii','_mcf.nii'),d.replace('.nii','_mcf_brain.nii')))
                    found_files=1
    outfile.close()

    if found_files>0:
        print 'now launching using:'
        print 'launch -s run_betfunc_%s.sh -n betfunc -r 00:10:00'%ds

        launch_qsub.launch_qsub(script_name='run_betfunc_%s.sh'%ds,runtime='00:10:00',jobname='%sbf'%ds,email=False,hold=wait_process)
    else:
        print 'no files found to process'
Example #4
0
def main():

    if len(sys.argv)>1:
        ds=sys.argv[1]
    else:
        usage()

    if len(sys.argv)>2:
        basedir=sys.argv[2]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!'%basedir
            sys.exit(1)
    else:
        basedir='/corral-repl/utexas/poldracklab/openfmri/staged/'
        
    outfile=open('run_mcflirt_%s.sh'%ds,'w')

    boldfiles=glob.glob(os.path.join(basedir,ds,'sub*/BOLD/*/bold.nii.gz'))
    if len(boldfiles)==0:
        print 'no bold files found!'
        return
    
    for d in boldfiles:
        outfile.write('mcflirt -in %s -sinc_final -plots\n'%d)

    outfile.close()


    print 'now launching using:'
    print 'launch -s run_mcflirt_%s.sh -n mcflirt -r 00:30:00'%ds
    launch_qsub.launch_qsub(script_name='run_mcflirt_%s.sh'%ds,runtime='00:30:00',jobname='%smcf'%ds,email=False)
Example #5
0
def main():

    if len(sys.argv)>1:
        ds=sys.argv[1]
    else:
        usage()

    if len(sys.argv)>2:
        basedir=sys.argv[2]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!'%basedir
            sys.exit(1)
    else:
        basedir='/scratch/01329/poldrack/openfmri/staged/'
        
    outfile=open('run_mcflirt_%s.sh'%ds,'w')

    for d in os.listdir(basedir+ds):
        if d[0:3]=='sub':
            for bd in os.listdir('%s/%s/BOLD/'%(basedir+ds,d)):
                for m in os.listdir('%s/%s/BOLD/%s/'%(basedir+ds,d,bd)):
                  if m=='bold.nii.gz':
                      root='%s/%s/BOLD/%s/'%(basedir+ds,d,bd)
                      outfile.write('mcflirt -in %s/%s -sinc_final -plots\n'%(root,m))

    outfile.close()


    print 'now launching using:'
    print 'launch -s run_mcflirt_%s.sh -n mcflirt -r 00:30:00'%ds
    launch_qsub.launch_qsub(script_name='run_mcflirt_%s.sh'%ds,runtime='00:30:00',jobname='%smcf'%ds,email=False)
Example #6
0
def main():

    if len(sys.argv) > 1:
        ds = sys.argv[1]
    else:
        usage()

    if len(sys.argv) > 2:
        basedir = sys.argv[2]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!' % basedir
            sys.exit(1)
    else:
        basedir = '/corral-repl/utexas/poldracklab/openfmri/staged/'

    outfile = open('run_mcflirt_%s.sh' % ds, 'w')

    boldfiles = glob.glob(os.path.join(basedir, ds, 'sub*/BOLD/*/bold.nii.gz'))
    if len(boldfiles) == 0:
        print 'no bold files found!'
        return

    for d in boldfiles:
        outfile.write('mcflirt -in %s -sinc_final -plots\n' % d)

    outfile.close()

    print 'now launching using:'
    print 'launch -s run_mcflirt_%s.sh -n mcflirt -r 00:30:00' % ds
    #launch_qsub.launch_qsub(script_name='run_mcflirt_%s.sh'%ds,runtime='00:30:00',jobname='%smcf'%ds,projname='Analysis_Lonestar',email=False)
    launch_qsub.launch_qsub(script_name='run_mcflirt_%s.sh' % ds,
                            runtime='00:30:00',
                            jobname='%smcf' % ds,
                            email=False)
Example #7
0
def main():

    if len(sys.argv)>2:
        taskid=sys.argv[1]
        modelnum=int(sys.argv[2])
    else:
        usage()


    if len(sys.argv)>3:
        basedir=sys.argv[3]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!'%basedir
            sys.exit(1)
    else:
        basedir=os.path.abspath(os.curdir)

    if len(sys.argv)>4:
        tasknum=int(sys.argv[4])
    else:
        tasknum=0


    if not basedir[-1]=='/':
        basedir=basedir+'/'

    if not os.path.exists(os.path.join(basedir,taskid,'group')):
        os.mkdir(os.path.join(basedir,taskid,'group'))
    if not os.path.exists(os.path.join(basedir,taskid,'group/model%03d'%modelnum)):
        os.mkdir(os.path.join(basedir,taskid,'group/model%03d'%modelnum))
        
    featdirs=[]
    subdirs={}


    cond_key=load_condkey(basedir+taskid+'/models/model%03d/condition_key.txt'%modelnum)

    ntasks=len(cond_key)
    print 'found %d tasks'%ntasks

    fsfnames=[]
    if tasknum==0:
        tasks=range(1,ntasks+1)
    else:
        tasks=[tasknum]
        
    for t in tasks:
        f=mk_level3_fsf(taskid,t,modelnum,basedir)
        for i in f:
            fsfnames.append(i)

    outfile=open('run_all_level3_%s.sh'%taskid,'w')
    for f in fsfnames:
          outfile.write('feat %s\n'%f)
    outfile.close()

    print 'now launching using:'
    print 'launch -s run_all_level3_%s.sh -n %sl3 -r 01:00:00'%(taskid,taskid)
    launch_qsub.launch_qsub(script_name='run_all_level3_%s.sh'%taskid,runtime='01:00:00',jobname='%sl3'%taskid,email=False)
Example #8
0
def main():

    artimes = ['08:00:00', '12:00:00', '24:00:00']

    if len(sys.argv) > 1:
        dataset = sys.argv[1]
    else:
        usage()

    if len(sys.argv) > 2:
        arlevel = int(sys.argv[2])
    else:
        arlevel = 1
        print 'assuming autorecon 1 (skullstrip)'

    if len(sys.argv) > 3:
        basedir = sys.argv[3]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!' % basedir
            sys.exit(1)
    else:
        basedir = '/corral-repl/utexas/poldracklab/openfmri/staged/'

    if len(sys.argv) > 4:
        subdir = sys.argv[4]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!' % basedir
            sys.exit(1)
    else:
        subdir = '/corral-repl/utexas/poldracklab/openfmri/subdir/'
        print 'assuming subdir: %s' % subdir

    outfile = open('run_autorecon%d_%s.sh' % (arlevel, dataset), 'w')
    cmdctr = 0
    for d in glob.glob(
            os.path.join(basedir, dataset, 'sub*/anatomy/highres001.nii.gz')):
        subnum = int(d.split('/')[-3].replace('sub', ''))
        outfile.write('recon-all -autorecon%d -subjid %s_sub%03d -sd %s\n' %
                      (arlevel, dataset, subnum, subdir))
        cmdctr += 1

    outfile.close()

    print 'now launch using:'
    print 'launch -s run_autorecon%d_%s.sh -n %sar%d -r %s' % (
        arlevel, dataset, dataset, arlevel, artimes[arlevel - 1])
    launch_qsub.launch_qsub(script_name='run_autorecon%d_%s.sh' %
                            (arlevel, dataset),
                            runtime=artimes[arlevel - 1],
                            jobname='%sar%d' % (dataset, arlevel),
                            email=False,
                            parenv='1way',
                            ncores=cmdctr * 12)
Example #9
0
def main():

    if len(sys.argv)>2:
        taskid=sys.argv[1]
        modelnum=int(sys.argv[2])
    else:
        usage()


    if len(sys.argv)>3:
        basedir=sys.argv[3]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!'%basedir
            sys.exit(1)
    else:
        basedir=os.path.abspath(os.curdir)

    if not basedir[-1]=='/':
        basedir=basedir+'/'

    outfile=open('run_all_level2_%s.sh'%taskid,'w')

    featdirs=[]
    subdirs={}

    
    for d in os.listdir(basedir+taskid):
        if d[0:3]=='sub':
            for m in os.listdir('%s/%s/model/model%03d/'%(basedir+taskid,d,modelnum)):
                if m[-5:]=='.feat':
                    featdirs.append(m)
                    fs=featdirs[-1]
                    subnum=int(d.replace('sub',''))
                    if not subdirs.has_key(subnum):
                        subdirs[subnum]={}
                    runnum=int(fs.split('_')[1].split('.')[0].replace('run',''))
                    tasknum=int(fs.split('_')[0].replace('task',''))
                    if not subdirs[subnum].has_key(tasknum):
                        subdirs[subnum][tasknum]=[]
                    subdirs[subnum][tasknum].append(runnum)

    for s in subdirs.iterkeys():
              for t in subdirs[s].iterkeys():
                fname=mk_level2_fsf(taskid,s,t,subdirs[s][t],basedir,modelnum)
                outfile.write('feat %s\n'%fname)
                
    outfile.close()

    print 'now launching using:'
    print 'launch -s run_all_level2_%s.sh -n %sl2 -r 02:00:00'%(taskid,taskid)
    launch_qsub.launch_qsub(script_name='run_all_level2_%s.sh'%taskid,runtime='02:00:00',jobname='%sl2'%taskid,email=False)
Example #10
0
def main():

    artimes=['08:00:00','12:00:00','24:00:00']

    if len(sys.argv)>1:
        dataset=sys.argv[1]
    else:
        usage()
 
    if len(sys.argv)>2:
        arlevel=int(sys.argv[2])
    else:
        arlevel=1
        print 'assuming autorecon 1 (skullstrip)'

    if len(sys.argv)>3:
        basedir=sys.argv[3]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!'%basedir
            sys.exit(1)
    else:
        basedir='/corral-repl/utexas/poldracklab/openfmri/staged/'

    if len(sys.argv)>4:
        subdir=sys.argv[4]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!'%basedir
            sys.exit(1)
    else:
        subdir='/corral-repl/utexas/poldracklab/openfmri/subdir/'
        print 'assuming subdir: %s'%subdir
 

    outfile=open('run_autorecon%d_%s.sh'%(arlevel,dataset),'w')
    cmdctr=0
    for d in os.listdir(os.path.join(basedir,dataset)):
        if d[0:3]=='sub':
            for m in os.listdir('%s/%s/anatomy/'%(os.path.join(basedir,dataset),d)):
                if m=='highres001.nii.gz':
                    subnum=int(d.replace('sub',''))
                    outfile.write('recon-all -autorecon%d -subjid %s_sub%03d -sd %s\n'%(arlevel,dataset,subnum,subdir))
                    cmdctr+=1

    outfile.close()


    print 'now launch using:'
    print 'launch -s run_autorecon%d_%s.sh -n %sar%d -r %s'%(arlevel,dataset,dataset,arlevel,artimes[arlevel-1])
    launch_qsub.launch_qsub(script_name='run_autorecon%d_%s.sh'%(arlevel,dataset),runtime=artimes[arlevel-1],jobname='%sar%d'%(dataset,arlevel),email=False,parenv='1way',ncores=cmdctr*12)
Example #11
0
def main():

    if len(sys.argv) > 1:
        ds = sys.argv[1]
    else:
        usage()

    if len(sys.argv) > 2:
        basedir = sys.argv[2]
        if not os.path.exists(basedir):
            print "basedir %s does not exist!" % basedir
            sys.exit(1)
    else:
        basedir = "/corral-repl/utexas/poldracklab/openfmri/staged"

    sk = load_scankey(os.path.join(basedir, ds, "scan_key.txt"))
    TR = sk["TR"]

    outfile = open("run_qa_%s.sh" % ds, "w")
    dsdir = os.path.join(basedir, ds)
    for d in glob.glob(os.path.join(dsdir, "sub*/BOLD/*/bold_mcf.nii.gz")):
        outfile.write("fmriqa.py %s %s\n" % (d, sk["TR"]))

    outfile.close()
    if float(sk["TR"]) < 2:
        queue = "largemem"
        ncores = 24
        print "using largemem queue"
    else:
        queue = "normal"
        ncores = 12
    print "now launching using:"
    print "launch -s run_qa_%s.sh -n qa -r 00:30:00" % ds
    launch_qsub.launch_qsub(
        script_name="run_qa_%s.sh" % ds,
        runtime="00:30:00",
        jobname="%sqa" % ds,
        email=False,
        queue=queue,
        ncores=ncores,
    )
Example #12
0
def main():

    if len(sys.argv) > 1:
        ds = sys.argv[1]
    else:
        usage()

    if len(sys.argv) > 2:
        basedir = sys.argv[2]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!' % basedir
            sys.exit(1)
    else:

        basedir = '/scratch/01329/poldrack/openfmri/staged/'
    if len(sys.argv) > 3:
        wait_process = int(sys.argv[3])
    else:
        wait_process = []

    outfile = open('run_betfunc_%s.sh' % ds, 'w')
    found_files = 0
    dsdir = os.path.join(basedir, ds)
    for d in glob.glob(os.path.join(dsdir, 'sub*/BOLD/*/bold.nii.gz')):
        outfile.write('bet %s %s -F\n' % (d.replace(
            '.nii', '_mcf.nii'), d.replace('.nii', '_mcf_brain.nii')))
        found_files = 1
    outfile.close()

    if found_files > 0:
        print 'now launching using:'
        print 'launch -s run_betfunc_%s.sh -n betfunc -r 00:10:00' % ds

        launch_qsub.launch_qsub(script_name='run_betfunc_%s.sh' % ds,
                                runtime='00:10:00',
                                jobname='%sbf' % ds,
                                email=False,
                                hold=wait_process)
    else:
        print 'no files found to process'
Example #13
0
def main():

    if len(sys.argv) > 1:
        ds = sys.argv[1]
    else:
        usage()

    if len(sys.argv) > 2:
        basedir = sys.argv[2]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!' % basedir
            sys.exit(1)
    else:
        basedir = '/corral-repl/utexas/poldracklab/openfmri/staged'

    sk = load_scankey(os.path.join(basedir, ds, 'scan_key.txt'))
    TR = sk['TR']

    outfile = open('run_qa_%s.sh' % ds, 'w')
    dsdir = os.path.join(basedir, ds)
    for d in glob.glob(os.path.join(dsdir, 'sub*/BOLD/*/bold_mcf.nii.gz')):
        outfile.write('fmriqa.py %s %s\n' % (d, sk['TR']))

    outfile.close()
    if float(sk['TR']) < 2:
        queue = 'largemem'
        ncores = 24
        print 'using largemem queue'
    else:
        queue = 'normal'
        ncores = 12
    print 'now launching using:'
    print 'launch -s run_qa_%s.sh -n qa -r 00:30:00' % ds
    launch_qsub.launch_qsub(script_name='run_qa_%s.sh' % ds,
                            runtime='00:30:00',
                            jobname='%sqa' % ds,
                            email=False,
                            queue=queue,
                            ncores=ncores)
Example #14
0
def main():

    if len(sys.argv) > 1:
        ds = sys.argv[1]
    else:
        usage()

    if len(sys.argv) > 2:
        basedir = sys.argv[2]
        if not os.path.exists(basedir):
            print "basedir %s does not exist!" % basedir
            sys.exit(1)
    else:

        basedir = "/scratch/01329/poldrack/openfmri/staged/"

    outfile = open("run_betfunc_%s.sh" % ds, "w")
    found_files = 0
    dsdir = os.path.join(basedir, ds)
    for d in os.listdir(dsdir):
        if d[0:3] == "sub":
            for bd in os.listdir("%s/%s/BOLD/" % (dsdir, d)):
                for m in os.listdir("%s/%s/BOLD/%s/" % (dsdir, d, bd)):
                    if m == "bold_mcf.nii.gz":
                        root = "%s/%s/BOLD/%s/" % (dsdir, d, bd)
                        outfile.write("bet %s/%s %s/%s -F\n" % (root, m, root, m.replace("mcf", "mcf_brain")))
                        found_files = 1
    outfile.close()

    if found_files > 0:
        print "now launching using:"
        print "launch -s run_betfunc_%s.sh -n betfunc -r 00:10:00" % ds
        launch_qsub.launch_qsub(
            script_name="run_betfunc_%s.sh" % ds, runtime="00:10:00", jobname="%sbf" % ds, email=False
        )
    else:
        print "no files found to process"
Example #15
0
def main():

    if len(sys.argv) > 2:
        dataset = sys.argv[1]
        modelnum = int(sys.argv[2])
    else:
        usage()

    if len(sys.argv) > 3:
        basedir = sys.argv[3]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!' % basedir
            sys.exit(1)
    else:
        basedir = os.path.abspath(os.curdir)

    if not basedir[-1] == '/':
        basedir = basedir + '/'

    nonlinear = 1
    if len(sys.argv) > 4:
        nonlinear = int(sys.argv[4])
        if nonlinear == 0:
            print 'using linear registration'

    outfile = open('mk_all_level1_%s.sh' % dataset, 'w')

    smoothing = 0
    if len(sys.argv) > 5:
        smoothing = int(sys.argv[5])

    tasknum_spec = 0
    if len(sys.argv) > 6:
        tasknum_spec = int(sys.argv[6])

    use_inplane = 1

    for d in os.listdir(basedir + dataset):
        if d[0:3] == 'sub':
            for bd in os.listdir('%s/%s/BOLD/' % (basedir + dataset, d)):
                for m in os.listdir('%s/%s/BOLD/%s/' %
                                    (basedir + dataset, d, bd)):
                    # TBD: add checking to handle case with no viable data
                    if m == 'bold_mcf_brain.nii.gz':
                        root = '%s/%s/BOLD/%s/' % (basedir + dataset, d, bd)
                        f_split = root.split('/')
                        scankey = '/' + '/'.join(
                            f_split[1:7]) + '/scan_key.txt'
                        taskid = f_split[6]
                        subnum = int(f_split[7].lstrip('sub'))
                        taskinfo = f_split[9].split('_')
                        tasknum = int(taskinfo[0].lstrip('task'))
                        if (tasknum_spec > 0) and not (tasknum
                                                       == tasknum_spec):
                            continue
                        runnum = int(taskinfo[1].lstrip('run'))
                        tr = float(load_scankey(scankey)['TR'])
                        # check for inplane
                        inplane = '/' + '/'.join(
                            f_split[1:8]) + '/anatomy/inplane001_brain.nii.gz'
                        if os.path.exists(inplane):
                            use_inplane = 1
                        else:
                            use_inplane = 0
                        print 'mk_level1_fsf("%s",%d,%d,%d,%d,%d,"%s",%d)' % (
                            taskid, subnum, tasknum, runnum, smoothing,
                            use_inplane, basedir, modelnum)
                        fname = mk_level1_fsf(taskid, subnum, tasknum, runnum,
                                              smoothing, use_inplane, basedir,
                                              nonlinear, modelnum)
                        outfile.write('feat %s\n' % fname)
    outfile.close()

    print 'now launching all feats:'
    print "find %s/sub*/model/*.fsf |sed 's/^/feat /' > run_all_feats.sh; sh run_all_feats.sh" % taskid
    f = open('mk_all_level1_%s.sh' % dataset)
    l = f.readlines()
    f.close()
    njobs = len(l)
    ncores = (njobs / 2) * 12
    launch_qsub.launch_qsub(script_name='mk_all_level1_%s.sh' % dataset,
                            runtime='04:00:00',
                            jobname='%sl1' % dataset,
                            email=False,
                            parenv='2way',
                            ncores=ncores)
Example #16
0
def main():

    if len(sys.argv) > 2:
        taskid = sys.argv[1]
        modelnum = int(sys.argv[2])
    else:
        usage()

    if len(sys.argv) > 3:
        basedir = sys.argv[3]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!' % basedir
            sys.exit(1)
    else:
        basedir = os.path.abspath(os.curdir)

    if len(sys.argv) > 4:
        tasknum = int(sys.argv[4])
    else:
        tasknum = 0

    if not basedir[-1] == '/':
        basedir = basedir + '/'

    if not os.path.exists(os.path.join(basedir, taskid, 'group')):
        os.mkdir(os.path.join(basedir, taskid, 'group'))
    if not os.path.exists(
            os.path.join(basedir, taskid, 'group/model%03d' % modelnum)):
        os.mkdir(os.path.join(basedir, taskid, 'group/model%03d' % modelnum))

    featdirs = []
    subdirs = {}

    cond_key = load_condkey(basedir + taskid +
                            '/models/model%03d/condition_key.txt' % modelnum)

    ntasks = len(cond_key)
    print 'found %d tasks' % ntasks

    fsfnames = []
    if tasknum == 0:
        tasks = range(1, ntasks + 1)
    else:
        tasks = [tasknum]

    for t in tasks:
        f = mk_level3_fsf(taskid, t, modelnum, basedir)
        for i in f:
            fsfnames.append(i)

    outfile = open('run_all_level3_%s.sh' % taskid, 'w')
    for f in fsfnames:
        outfile.write('feat %s\n' % f)
    outfile.close()

    print 'now launching using:'
    print 'launch -s run_all_level3_%s.sh -n %sl3 -r 01:00:00' % (taskid,
                                                                  taskid)
    launch_qsub.launch_qsub(script_name='run_all_level3_%s.sh' % taskid,
                            runtime='01:00:00',
                            jobname='%sl3' % taskid,
                            email=False)
Example #17
0
def main():

    if len(sys.argv) > 2:
        taskid = sys.argv[1]
        modelnum = int(sys.argv[2])
    else:
        usage()

    if len(sys.argv) > 3:
        basedir = sys.argv[3]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!' % basedir
            sys.exit(1)
    else:
        basedir = os.path.abspath(os.curdir)

    if len(sys.argv) > 4:
        task_spec = int(sys.argv[4])
        print 'setting task spec to %d' % task_spec
    else:
        task_spec = 0

    if not basedir[-1] == '/':
        basedir = basedir + '/'

    outfile = open('run_all_level2_%s.sh' % taskid, 'w')

    featdirs = []
    subdirs = {}

    for d in os.listdir(basedir + taskid):
        if d[0:3] == 'sub':
            #print 'testing %s/%s/model/model%03d/'%(basedir+taskid,d,modelnum)
            if os.path.exists('%s/%s/model/model%03d/' %
                              (basedir + taskid, d, modelnum)):
                for m in os.listdir('%s/%s/model/model%03d/' %
                                    (basedir + taskid, d, modelnum)):
                    if m[-5:] == '.feat':
                        featdirs.append(m)
                        fs = featdirs[-1]
                        print fs
                        subnum = int(d.replace('sub', ''))
                        if not subdirs.has_key(subnum):
                            subdirs[subnum] = {}
                        runnum = int(
                            fs.split('_')[1].split('.')[0].replace('run', ''))
                        tasknum = int(fs.split('_')[0].replace('task', ''))
                        if (task_spec > 0) and (not task_spec == tasknum):
                            print 'skipping tasknum %d (task_spec %d)' % (
                                tasknum, task_spec)
                            continue
                        if not subdirs[subnum].has_key(tasknum):
                            subdirs[subnum][tasknum] = []
                        subdirs[subnum][tasknum].append(runnum)
    #print subdirs

    for s in subdirs.iterkeys():
        for t in subdirs[s].iterkeys():
            #print 'testing %s/%s/sub%03d/model/model%03d/'%(basedir,taskid,s,modelnum)
            if os.path.exists('%s/%s/sub%03d/model/model%03d/' %
                              (basedir, taskid, s, modelnum)):
                fname = mk_level2_fsf(taskid, s, t, subdirs[s][t], basedir,
                                      modelnum)
                outfile.write('feat %s\n' % fname)

    outfile.close()

    print 'now launching using:'
    print 'launch -s run_all_level2_%s.sh -n %sl2 -r 02:00:00' % (taskid,
                                                                  taskid)
    launch_qsub.launch_qsub(script_name='run_all_level2_%s.sh' % taskid,
                            runtime='02:00:00',
                            jobname='%sl2' % taskid,
                            email=False)
def main():

    args = parse_command_line()
    print args

    smoothing = args.smoothing
    use_inplane = args.use_inplane
    basedir = os.path.abspath(args.basedir)
    nonlinear = args.nonlinear
    modelnum = args.modelnum

    if not args.confound:
        print 'omitting confound modeling'

    dataset = args.taskid

    if not args.test:
        outfile = open('mk_all_level1_%s.sh' % dataset, 'w')

    tasknum_spec = 'task*'
    if not args.tasknum == None:
        tasknum_spec = 'task%03d*' % args.tasknum

    dsdir = os.path.join(basedir, dataset)
    bolddirs = glob.glob(os.path.join(dsdir, 'sub*/BOLD/%s' % tasknum_spec))
    print bolddirs
    for root in bolddirs:
        #print 'ROOT:',root
        for m in glob.glob(os.path.join(root, 'bold_mcf_brain.nii.gz')):
            #print 'BOLDFILE:',m
            f_split = root.split('/')
            #print f_split
            scankey = '/' + '/'.join(f_split[1:7]) + '/scan_key.txt'
            taskid = f_split[6]
            subnum = int(f_split[7].lstrip('sub'))
            taskinfo = f_split[9].split('_')
            tasknum = int(taskinfo[0].lstrip('task'))

            runnum = int(taskinfo[1].lstrip('run'))
            #tr=float(load_scankey(scankey)['TR'])
            # check for inplane
            inplane = '/' + '/'.join(
                f_split[1:8]) + '/anatomy/inplane001_brain.nii.gz'
            ##             if args.nobbr:
            ##                  print 'using nobbr option'
            ##                  print 'mk_level1_fsf("%s",%d,%d,%d,%d,%d,"%s",%d)'%(taskid,subnum,tasknum,runnum,smoothing,use_inplane,basedir,modelnum)
            ##             else:
            ##                  print 'mk_level1_fsf_bbr("%s",%d,%d,%d,%d,%d,"%s",%d)'%(taskid,subnum,tasknum,runnum,smoothing,use_inplane,basedir,modelnum)
            if not args.test:
                if args.nobbr:
                    fname = mk_level1_fsf(taskid, subnum, tasknum, runnum,
                                          smoothing, use_inplane, basedir,
                                          nonlinear, modelnum)
                else:
                    fname = mk_level1_fsf_bbr(taskid, subnum, tasknum, runnum,
                                              smoothing, use_inplane, basedir,
                                              nonlinear, modelnum,
                                              args.anatimg, args.confound,
                                              args.hpf, args.whiten)
                    #print 'CMD: mk_level1_fsf_bbr(taskid,subnum,tasknum,runnum,smoothing,use_inplane,basedir,nonlinear,modelnum,args.anatimg,args.confound)'
                outfile.write('feat %s\n' % fname)
    if not args.test:
        outfile.close()

    if not args.test:
        print 'now launching all feats:'
        print "find %s/sub*/model/*.fsf |sed 's/^/feat /' > run_all_feats.sh; sh run_all_feats.sh" % args.taskid
        f = open('mk_all_level1_%s.sh' % dataset)
        l = f.readlines()
        f.close()
        njobs = len(l)

        if args.parenv == '':
            args.parenv = '6way'

        way = float(args.parenv.replace('way', ''))

        if args.ncores == 0:
            ncores = (njobs / way) * 12.0
        else:
            ncores = args.ncores

        if args.launch:
            launch_qsub.launch_qsub(script_name='mk_all_level1_%s.sh' %
                                    dataset,
                                    runtime='04:00:00',
                                    jobname='%sl1' % dataset,
                                    email=False,
                                    parenv=args.parenv,
                                    ncores=ncores)
def main():

    args=parse_command_line()
    print args
    

    smoothing=args.smoothing
    use_inplane=args.use_inplane
    basedir=os.path.abspath(args.basedir)
    nonlinear=args.nonlinear
    modelnum=args.modelnum

    if not args.confound:
        print 'omitting confound modeling'
        
    dataset=args.taskid
    
    if not args.test:
        outfile=open('mk_all_level1_%s.sh'%dataset,'w')

 
    tasknum_spec='task*'
    if not args.tasknum==None:
        tasknum_spec='task%03d*'%args.tasknum
 



    dsdir=os.path.join(basedir,dataset)
    bolddirs=glob.glob(os.path.join(dsdir,'sub*/BOLD/%s'%tasknum_spec))
    print bolddirs
    for root in bolddirs:
        #print 'ROOT:',root
        for m in glob.glob(os.path.join(root,'bold_mcf_brain.nii.gz')):
            #print 'BOLDFILE:',m
            f_split=root.split('/')
            #print f_split
            scankey='/'+'/'.join(f_split[1:7])+'/scan_key.txt'
            taskid=f_split[6]
            subnum=int(f_split[7].lstrip('sub'))
            taskinfo=f_split[9].split('_')
            tasknum=int(taskinfo[0].lstrip('task'))

            runnum=int(taskinfo[1].lstrip('run'))
            tr=float(load_scankey(scankey)['TR'])
            # check for inplane
            inplane='/'+'/'.join(f_split[1:8])+'/anatomy/inplane001_brain.nii.gz'
##             if args.nobbr:
##                  print 'using nobbr option'
##                  print 'mk_level1_fsf("%s",%d,%d,%d,%d,%d,"%s",%d)'%(taskid,subnum,tasknum,runnum,smoothing,use_inplane,basedir,modelnum)
##             else:
##                  print 'mk_level1_fsf_bbr("%s",%d,%d,%d,%d,%d,"%s",%d)'%(taskid,subnum,tasknum,runnum,smoothing,use_inplane,basedir,modelnum)
            if not args.test:
                if args.nobbr:
                     fname=mk_level1_fsf(taskid,subnum,tasknum,runnum,smoothing,use_inplane,basedir,nonlinear,modelnum)
                else:
                    fname=mk_level1_fsf_bbr(taskid,subnum,tasknum,runnum,smoothing,use_inplane,basedir,nonlinear,modelnum,args.anatimg,args.confound,args.hpf,args.whiten)
                    #print 'CMD: mk_level1_fsf_bbr(taskid,subnum,tasknum,runnum,smoothing,use_inplane,basedir,nonlinear,modelnum,args.anatimg,args.confound)'
                outfile.write('feat %s\n'%fname)
    if not args.test:
        outfile.close()

    if not args.test:
        print 'now launching all feats:'
        print "find %s/sub*/model/*.fsf |sed 's/^/feat /' > run_all_feats.sh; sh run_all_feats.sh"%args.taskid
        f=open('mk_all_level1_%s.sh'%dataset)
        l=f.readlines()
        f.close()
        njobs=len(l)
        
        if args.parenv=='':
            args.parenv='6way'

        way=float(args.parenv.replace('way',''))
            
        if args.ncores==0:
            ncores=(njobs/way)*12.0
        else:
            ncores=args.ncores

        if args.launch:
            launch_qsub.launch_qsub(script_name='mk_all_level1_%s.sh'%dataset,runtime='04:00:00',jobname='%sl1'%dataset,email=False,parenv=args.parenv,ncores=ncores)
Example #20
0
def main():

    if len(sys.argv)>2:
        dataset=sys.argv[1]
        modelnum=int(sys.argv[2])
    else:
        usage()


    if len(sys.argv)>3:
        basedir=sys.argv[3]
        if not os.path.exists(basedir):
            print 'basedir %s does not exist!'%basedir
            sys.exit(1)
    else:
        basedir=os.path.abspath(os.curdir)

    if not basedir[-1]=='/':
        basedir=basedir+'/'
        
    nonlinear=1
    if len(sys.argv)>4:
        nonlinear=int(sys.argv[4])
        if nonlinear==0:
            print 'using linear registration'


    outfile=open('mk_all_level1_%s.sh'%dataset,'w')

    smoothing=0
    if len(sys.argv)>5:
        smoothing=int(sys.argv[5])
 
    tasknum_spec=0
    if len(sys.argv)>6:
        tasknum_spec=int(sys.argv[6])
 


    use_inplane=1

    for d in os.listdir(basedir+dataset):
        if d[0:3]=='sub':
            for bd in os.listdir('%s/%s/BOLD/'%(basedir+dataset,d)):
                for m in os.listdir('%s/%s/BOLD/%s/'%(basedir+dataset,d,bd)):
                    # TBD: add checking to handle case with no viable data
                  if m=='bold_mcf_brain.nii.gz':
                    root='%s/%s/BOLD/%s/'%(basedir+dataset,d,bd)
                    f_split=root.split('/')
                    scankey='/'+'/'.join(f_split[1:7])+'/scan_key.txt'
                    taskid=f_split[6]
                    subnum=int(f_split[7].lstrip('sub'))
                    taskinfo=f_split[9].split('_')
                    tasknum=int(taskinfo[0].lstrip('task'))
                    if (tasknum_spec>0) and not (tasknum==tasknum_spec):
                        continue
                    runnum=int(taskinfo[1].lstrip('run'))
                    tr=float(load_scankey(scankey)['TR'])
                    # check for inplane
                    inplane='/'+'/'.join(f_split[1:8])+'/anatomy/inplane001_brain.nii.gz'
                    if os.path.exists(inplane):
                        use_inplane=1
                    else:
                        use_inplane=0
                    print 'mk_level1_fsf("%s",%d,%d,%d,%d,%d,"%s",%d)'%(taskid,subnum,tasknum,runnum,smoothing,use_inplane,basedir,modelnum)
                    fname=mk_level1_fsf(taskid,subnum,tasknum,runnum,smoothing,use_inplane,basedir,nonlinear,modelnum)
                    outfile.write('feat %s\n'%fname)
    outfile.close()

    print 'now launching all feats:'
    print "find %s/sub*/model/*.fsf |sed 's/^/feat /' > run_all_feats.sh; sh run_all_feats.sh"%taskid
    f=open('mk_all_level1_%s.sh'%dataset)
    l=f.readlines()
    f.close()
    njobs=len(l)
    ncores=(njobs/2)*12
    launch_qsub.launch_qsub(script_name='mk_all_level1_%s.sh'%dataset,runtime='04:00:00',jobname='%sl1'%dataset,email=False,parenv='2way',ncores=ncores)