Exemplo n.º 1
0
def status_results(input_dir, verbose):

    cenc_dirs = cenc.directories(input_dir)

    result_files = [
        os.path.join(cenc_dirs['results']['dirs']['labels'],
                     'gm.cerebral_cortex.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['labels'],
                     'gm.cerebellum.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['labels'],
                     'wm.cerebral.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['labels'],
                     'wm.cerebellum.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['labels'],
                     'ventricles.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['labels'], 'nu.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['images'], 'nu.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['images'], 'nu_brain.nii.gz')
    ]

    freesurfer_status_results = util.check_files(result_files, False)

    if verbose:
        print(cenc_dirs['cenc']['id'] + ', cenc_freesurfer, results, ' +
              str(freesurfer_status_results))

    return freesurfer_status_results
Exemplo n.º 2
0
def status_results( ants_lct_info, verbose=False, debug=False ):

     result_files =  [ value for key, value in ants_lct_info['results'].items() ]
        
     ants_lct_status = util.check_files(result_files, debug)

     if verbose:
          print( ants_lct_info['base']['input'] + ', ants_lct, ' + 'results' + ', ' + str(ants_lct_status) )

     return ants_lct_status
Exemplo n.º 3
0
def status_run(fsinfo, verbose):

    result_files = [fsinfo['output']['volume']['wmparc']]
    freesurfer_status_run = util.check_files(result_files, False)

    if verbose:
        print(fsinfo['base']['subject_id'] + ', ' +
              fsinfo['base']['subject_dir'] + ', run, ' +
              str(freesurfer_status_run))

    return freesurfer_status_run
Exemplo n.º 4
0
def status_run(input_dir, verbose):

    cenc_dirs = cenc.directories(input_dir)

    result_files = [os.path.join(cenc_dirs['freesurfer']['mri'], 'wmparc.mgz')]
    freesurfer_status_run = util.check_files(result_files, False)

    if verbose:
        print(cenc_dirs['cenc']['id'] + ', cenc_freesurfer,     run, ' +
              str(freesurfer_status_run))

    return freesurfer_status_run
Exemplo n.º 5
0
def status_prepare(input_dir, verbose=False):

    cenc_dirs = cenc.directories(input_dir)

    input_files = cenc_dirs['swi']['inputs']
    label_files = cenc_dirs['swi']['labels']

    swi_status = util.check_files(input_files + label_files, False)

    if verbose:
        print(cenc_dirs['cenc']['id'] + ', cenc_swi, ' + 'prepare' + ', ' +
              str(swi_status))

    return swi_status
Exemplo n.º 6
0
def status_inputs(input_dir, stdout=False, verbose=False):

    cenc_dirs = cenc.directories(input_dir)

    input_files = cenc_dirs['mt']['inputs']
    label_files = cenc_dirs['mt']['labels']

    mt_status = util.check_files(input_files + label_files, verbose)

    if stdout:
        print(cenc_dirs['cenc']['id'] + ', cenc_mt, ' + 'input' + ', ' +
              str(mt_status))

    return mt_status
Exemplo n.º 7
0
def status_methods_02_stats(input_dir, verbose=False):

    cenc_dirs = cenc.directories(input_dir)

    result_files = [
        os.path.join(cenc_dirs['swi']['dirs']['results'], 'magtrans.json')
    ]

    swi_status = util.check_files(result_files, False)

    if verbose:
        print(cenc_dirs['cenc']['id'] + ', cenc_swi, ' + 'methods_02_stats' +
              ', ' + str(swi_status))

    return swi_status
Exemplo n.º 8
0
def status_results(input_dir, verbose=False):
     cenc_dirs = cenc.directories( input_dir)

     result_files =   [ os.path.join( cenc_dirs['wmlesions']['dirs']['results'],  'wmlesions_lpa_t2flair.nii.gz'),
                        os.path.join( cenc_dirs['wmlesions']['dirs']['results'],  'nu.nii.gz'),
                        os.path.join( cenc_dirs['wmlesions']['dirs']['results'],  'wmlesions_lpa_pmap.nii.gz'),
                        os.path.join( cenc_dirs['wmlesions']['dirs']['results'],  'wmlesions_lpa_labels.nii.gz')
                        ]

     wmlesions_status = util.check_files(result_files, False)

     if verbose:
          print( cenc_dirs['cenc']['id'] + ', cenc_wmlesions, results,' + str(wmlesions_status) )

     return wmlesions_status
Exemplo n.º 9
0
def status_methods_01_register(input_dir, verbose=False):
    cenc_dirs = cenc.directories(input_dir)

    result_files = [
        os.path.join(cenc_dirs['mt']['dirs']['register'],
                     'mt_Affine_nu__mt_m0_Warped.nii.gz'),
        os.path.join(cenc_dirs['mt']['dirs']['register'],
                     'mt_Affine_nu__mt_m1_Warped.nii.gz'),
        os.path.join(cenc_dirs['mt']['dirs']['register'], 'mtr.nii.gz')
    ]

    mt_status = util.check_files(result_files, False)

    if verbose:
        print(cenc_dirs['cenc']['id'] + ', cenc_mt, ' + 'methods_01_register' +
              ', ' + str(mt_status))

    return mt_status
Exemplo n.º 10
0
def status_results(input_dir, verbose=False):

    cenc_dirs = cenc.directories(input_dir)

    result_files = [
        os.path.join(cenc_dirs['swi']['dirs']['results'],
                     'swi_Affine_nu__swi_m0.nii.gz'),
        os.path.join(cenc_dirs['swi']['dirs']['results'],
                     'swi_Affine_nu__swi_m1.nii.gz'),
        os.path.join(cenc_dirs['swi']['dirs']['results'], 'swir.nii.gz'),
        os.path.join(cenc_dirs['swi']['dirs']['results'], 'nu.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['images'], 'swir.nii.gz')
    ]

    swi_status = util.check_files(result_files, False)

    if verbose:
        print(cenc_dirs['cenc']['id'] + ', cenc_swi, ' + 'results' + ', ' +
              str(swi_status))

    return swi_status
Exemplo n.º 11
0
def status_methods_01_register(config, verbose=False):

    input_dir = config['dirs']['input']

    cenc_dirs = cenc.directories(input_dir)

    result_files = [
        os.path.join(cenc_dirs['swi']['dirs']['register'],
                     'swi_Affine_nu__swi_magnitude.nii.gz'),
        os.path.join(cenc_dirs['swi']['dirs']['register'],
                     'swi_Affine_nu__swi_phase.nii.gz'),
        os.path.join(cenc_dirs['swi']['dirs']['register'],
                     'swi_Affine_nu__swi.nii.gz')
    ]

    swi_status = util.check_files(result_files, False)

    if verbose:
        print(cenc_dirs['cenc']['id'] + ', cenc_swi, ' +
              'methods_01_register' + ', ' + str(swi_status))

    return swi_status
Exemplo n.º 12
0
def results(input_dir, verbose):

    cenc_dirs = cenc.directories(input_dir)
    cenc_freesurfer_dir = cenc_dirs['freesurfer']['mri']

    util.mkcd_dir([
        cenc_dirs['results']['dirs']['root'],
        cenc_dirs['results']['dirs']['images'],
        cenc_dirs['results']['dirs']['labels']
    ], True)

    files_to_convert = [
        os.path.join(cenc_freesurfer_dir, 'nu.mgz'),
        os.path.join(cenc_freesurfer_dir, 'aseg.mgz'),
        os.path.join(cenc_freesurfer_dir, 'brainmask.mgz'),
        os.path.join(cenc_freesurfer_dir, 'aparc.a2009s+aseg.mgz'),
        os.path.join(cenc_freesurfer_dir, 'wmparc.mgz')
    ]

    # Check if files exist

    if util.check_files(files_to_convert, True) == False:
        sys.exit()

    # Create link to directory

    if not os.path.exists(cenc_dirs['freesurfer']['results']):
        util.force_symbolic_link(cenc_dirs['freesurfer']['mri'],
                                 cenc_dirs['freesurfer']['results'])

    # TODO use input node to run this instead of a loop. The trick part is to have the files named correctly.

    for ii in files_to_convert:
        mc = fs.MRIConvert(in_file=ii,
                           out_file=os.path.join(
                               cenc_dirs['results']['dirs']['labels'],
                               str.replace(os.path.basename(ii), '.mgz',
                                           '.nii.gz')),
                           out_type='niigz')
        mc.run()

        reorient = fsl.Reorient2Std(in_file=mc.inputs.out_file,
                                    out_file=mc.inputs.out_file)
        reorient.run()

    # Link nu.nii.gz to results/native/images

    result_files = [[
        os.path.join(cenc_dirs['results']['dirs']['labels'], 'nu.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['images'], 'nu.nii.gz')
    ]]

    for ii in result_files:
        util.force_hard_link(ii[0], ii[1])

    # Create final brain mask.

    cenc.create_mask(
        os.path.join(cenc_dirs['results']['dirs']['labels'],
                     'brainmask.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['labels'],
                     'aparc.a2009s+aseg.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['labels'], 'mask.nii.gz'))

    # Create macroscopic labels

    labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'aseg.nii.gz'), [],
                   [10, 11, 12, 13, 17, 18, 49, 50, 51, 52, 53, 54],
                   os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'gm.subcortical.nii.gz'),
                   merge=1)

    labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'aseg.nii.gz'), [], [3, 42],
                   os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'gm.cerebral_cortex.nii.gz'),
                   merge=1)

    labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'aseg.nii.gz'), [], [8, 47],
                   os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'gm.cerebellum.nii.gz'),
                   merge=1)

    labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'aseg.nii.gz'), [], [2, 41],
                   os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'wm.cerebral.nii.gz'),
                   merge=1)

    labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'aseg.nii.gz'), [], [7, 46],
                   os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'wm.cerebellum.nii.gz'),
                   merge=1)

    labels.extract(os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'aseg.nii.gz'), [], [4, 43],
                   os.path.join(cenc_dirs['results']['dirs']['labels'],
                                'ventricles.nii.gz'),
                   merge=1)

    # Brain extraction nu.nii.gz
    util.iw_subprocess([
        'fslmaths',
        os.path.join(cenc_dirs['results']['dirs']['images'], 'nu.nii.gz'),
        '-mas',
        os.path.join(cenc_dirs['results']['dirs']['labels'], 'mask.nii.gz'),
        os.path.join(cenc_dirs['results']['dirs']['images'], 'nu_brain.nii.gz')
    ])