Exemple #1
0
def label_fusion(target_path, atlas_img_path_list, atlas_lab_path_list, out_file, probabilities, params_list):

    out_dir = os.path.dirname(out_file)
    out_name = os.path.basename(out_file).split(os.extsep, 1)[0]

    if params_list[0] == 'Joint':

        jointfusion_path = os.path.join(os.environ['ANTSPATH'], 'jointfusion')

        prob_dir =  os.path.join(out_dir, out_name)
        prob_path = os.path.join(prob_dir, 'prob%d.nii.gz')

        cmdline = [jointfusion_path, '3', '1']
        cmdline += ['-g'] + atlas_img_path_list
        cmdline += ['-tg', target_path]
        cmdline += ['-l'] + atlas_lab_path_list
        cmdline += ['-m', 'Joint']
        cmdline += [item for sublist in zip(['-rp', '-rs'], params_list[1:]) for item in sublist]
        if probabilities:
            os.makedirs(prob_dir)
            cmdline += ['-p', prob_path]
        cmdline += [out_file]

    else:

        python_path = os.path.join(os.environ['HOME'], 'anaconda', 'envs', 'sitkpy', 'bin', 'python')
        mod_path = os.path.join(os.environ['HOME'], 'CODE', 'mod_py')
        nlwv_path = os.path.join(mod_path, 'pblf_py.py')

        cmdline = [python_path, '-u', nlwv_path]

        cmdline += ['--atlas_img_list'] + atlas_img_path_list
        cmdline += ['--target_img', target_path]
        cmdline += ['--atlas_lab_list'] + atlas_lab_path_list
        cmdline += ['--method'] + params_list[:2]
        cmdline += [item for sublist in zip(['--patch_radius', '--search_radius', '--fusion_radius', '--struct_sim', '--normalization',], params_list[2:]) for item in sublist]
        if probabilities:
            cmdline += ['--probabilities']
        cmdline += ['--out_file', out_file]

    # launch
    qsub_launcher = Launcher(' '.join(cmdline))
    qsub_launcher.name = "{}_joint".format(out_name)
    qsub_launcher.folder = out_dir
    # qsub_launcher.queue = 'short.q'
    qsub_launcher.queue = 'default.q'

    return qsub_launcher.run()
                '--metric',
                'MeanSquares[{},{},{}]'.format(args.use_labels[2], lab_path,
                                               w_lab)
            ])

        cmdline.extend(
            ['--convergence', '[{},1e-9,15]'.format('x'.join(its_syn))])
        cmdline.extend(['--smoothing-sigmas', smooth_sig])
        cmdline.extend(['--shrink-factors', shrink_fac])

    #
    # mask

    if args.template_mask is not None:
        cmdline.extend(['--masks', args.template_mask[0]])

    #
    # launch

    print "Launching registration of file {}".format(img_file)

    name_list.append(img_file.split(os.extsep, 1)[0])
    launcher.add(name_list[-1], ' '.join(cmdline), args.out_dir[0])
    launcher.run(name_list[-1])

print "Waiting for registration jobs to finish..."

launcher.wait()

print "Registration finished."
Exemple #3
0
for i_img in range(Nimg):

    est_path = os.path.join(args.est_dir[0], est_files[i_img])
    gtr_path = os.path.join(args.gtr_dir[0], gtr_files[i_img])
    out_path = os.path.join(tmp_dir, est_names[i_img])
    out_paths.append(out_path)

    cmdline = "%s 3 %s DiceAndMinDistSum %s %s" % (imagemath_path, out_path,
                                                   est_path, gtr_path)

    qsub_launcher = Launcher(cmdline)

    print("Launching Dice evaluation job for labels %s" % est_names[i_img])

    launcher.add(est_names[i_img], cmdline, tmp_dir)
    launcher.run(est_names[i_img])

print "Waiting for Dice evaluation jobs to finish..."

launcher.wait()

print "Dice evaluation finished."

subj_dices = dict([])
label_dices = dict([])

for i, out_path in enumerate(out_paths):

    # Read per-label Dice
    check_file_repeat(out_path + '.csv')
    f = open(out_path + '.csv', 'r')
                        args.reg_dir[0], file_name + args.in_deform_intfix[0] +
                        '1InverseWarp.nii.gz')
                ]

        cmdline += [
            '--output',
            os.path.join(args.out_dir[0],
                         file.split('.nii.gz')[0] + args.out_suffix[0])
        ]

        #
        # launch

        print "Launching warping of file {}".format(file)

        qsub_launcher = Launcher(' '.join(cmdline))
        qsub_launcher.name = file.split('.nii.gz')[0]
        qsub_launcher.folder = args.out_dir[0]
        qsub_launcher.queue = 'short.q'
        job_id = qsub_launcher.run()

        if is_hpc:
            wait_jobs += [job_id]

# Wait for the jobs to finish (in cluster)
if is_hpc:
    print "Waiting for warping jobs to finish..."
    call(wait_jobs)

print "Warping finished."
                        args.target_deform_intfix[0] + '1Warp.nii.gz')
                ]
            cmdline += [
                '--transform',
                os.path.join(
                    args.target_reg_dir[0], target_name +
                    args.target_linear_intfix[0] + '0GenericAffine.mat')
            ]

        cmdline += [
            '--output',
            os.path.join(
                args.out_dir[0],
                atlas_file.split(os.extsep, 1)[0] + args.out_suffix[0])
        ]

        #
        # launch

        job_name = atlas_file.split(os.extsep, 1)[0]
        print "Launching warping of file {}".format(job_name)

        launcher.add(job_name, ' '.join(cmdline), args.out_dir[0])
        launcher.run(job_name)

# Wait for the jobs to finish (in cluster)
print "Waiting for warping jobs to finish..."
launcher.wait()

print "Warping finished."