コード例 #1
0
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)
コード例 #2
0
def main():
    config = commandline()
    basedir = config.basedir
    dataset = config.dataset
    model_num = config.model_num
    nonlinear = config.nonlinear
    use_inplane = config.use_inplane
    smoothing = config.smoothing
    full_path = os.path.dirname(os.path.realpath(__file__))
    #outfile=open('mk_all_level1_%s.sh'%dataset,'w')
    if config.qsub:
        qsub_name = 'feat_level1_%s_qsub.sh' % dataset
        qsub_file = open(qsub_name, 'w')
        fsl_container = '/home/acp16sz/fsl.img'
    else:
        script_name = 'feat_level1_%s.sh' % dataset
        script_file = open(script_name, 'w')

    for subject in os.listdir(basedir + dataset):
        if subject[0:3] == 'sub':
            for bold in os.listdir('%s/%s/BOLD/' %
                                   (basedir + dataset, subject)):
                for image in os.listdir('%s/%s/BOLD/%s/' %
                                        (basedir + dataset, subject, bold)):
                    # TBD: add checking to handle case with no viable data
                    if image == 'bold_mcf_brain.nii.gz':
                        path = '%s/%s/BOLD/%s/' % (basedir + dataset, subject,
                                                   bold)
                        path_split = path.split('/')
                        scankey = basedir + dataset + '/scan_key.txt'
                        ds_id = dataset
                        for i in path_split:
                            if i[0:3] == 'sub':
                                sub_num = int(i.lstrip('sub'))
                            if i[0:4] == 'task':
                                task_run = i.split('_')
                                task_num = int(task_run[0].lstrip('task'))
                                if config.task_num != 0 and task_num != config.task_num:
                                    continue
                                run_num = int(task_run[1].lstrip('run'))
                        tr = float(load_scankey(scankey)['TR'])
                        inplane = basedir + dataset + '/anatomy/inplane001_brain.nii.gz'
                        if os.path.exists(inplane):
                            use_inplane = 1
                        else:
                            use_inplane = 0
                        feat_name = mk_level1_fsf(ds_id, sub_num, task_num,
                                                  run_num, smoothing,
                                                  use_inplane, basedir,
                                                  nonlinear, model_num)
                        if config.qsub:
                            sub_job_name = 'feat_level1_%s_sub00%s_task00%s_run00%s.sh' % (
                                ds_id, sub_num, task_num, run_num)
                            sub_job_file = open(sub_job_name, 'w')
                            sub_job_file.write('#!/bin/bash\n')
                            sub_job_file.write('#$ -l rmem=8G\n')
                            sub_job_file.write(
                                'singularity exec %s feat %s\n' %
                                (fsl_container, feat_name))
                            sub_job_file.close()
                            qsub_file.write('qsub %s\n' % sub_job_name)
                        else:
                            script_file.write('feat %s\n' % feat_name)

    if config.qsub:
        qsub_file.close()
        print 'run "bash %s/%s" to submit job to HPC' % (full_path, qsub_name)
    else:
        script_file.close()
        print 'now run: "bash %s/%s"' % (full_path, script_name)
コード例 #3
0
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)
コード例 #4
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)
コード例 #5
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)