示例#1
0
def qa_results(in_dir, verbose=False):
    cenc_dirs = cenc.directories(in_dir)

    cenc.print_json_redcap_instrument( os.path.join(cenc_dirs['mt']['dirs']['results'],'magtrans.json'))

    result_files = [os.path.join(cenc_dirs['mt']['dirs']['results'], 'nu.nii.gz') + ':colormap=grayscale',
                    os.path.join(cenc_dirs['mt']['dirs']['results'],
                                 'mt_Affine_nu__mt_m0.nii.gz') + ':colormap=grayscale:visible=0',
                    os.path.join(cenc_dirs['mt']['dirs']['results'],
                                 'mt_Affine_nu__mt_m1.nii.gz') + ':colormap=grayscale:visible=0',
                    os.path.join(cenc_dirs['mt']['dirs']['results'],
                                 'mtr.nii.gz') + ':colormap=jet:colorscale=0,0.6:opacity=0.5'
                    ]

    qa_command = ['freeview', '-v'] + result_files



    if verbose:
        print
        print(' '.join(qa_command))
        print

    DEVNULL = open(os.devnull, 'wb')
    pipe = subprocess.Popen([' '.join(qa_command)], shell=True,
                            stdin=DEVNULL, stdout=DEVNULL, stderr=DEVNULL, close_fds=True)
示例#2
0
def qa_results(in_dir, verbose=False):

    cenc_dirs = cenc.directories(in_dir)

    cenc.print_json_redcap_instrument(
        os.path.join(cenc_dirs['wmlesions']['dirs']['results'],
                     'wmlesions.json'))

    result_files = [
        os.path.join(cenc_dirs['wmlesions']['dirs']['results'], 'nu.nii.gz') +
        ':colormap=grayscale:visible=0',
        os.path.join(cenc_dirs['wmlesions']['dirs']['results'],
                     'wmlesions_lpa_t2flair.nii.gz') + ':colormap=grayscale',
        os.path.join(cenc_dirs['wmlesions']['dirs']['results'],
                     'wmlesions_lpa_pmap.nii.gz') +
        ':colormap=jet:visible=0:opacity=0.5',
        os.path.join(cenc_dirs['wmlesions']['dirs']['results'],
                     'wmlesions_lpa_labels.nii.gz') +
        ':colormap=jet:opacity=0.5'
    ]

    qa_command = ['freeview', '-v'] + result_files

    if verbose:
        print(' ')
        print(' '.join(qa_command))
        print(' ')

    DEVNULL = open(os.devnull, 'wb')
    pipe = subprocess.Popen([' '.join(qa_command)],
                            shell=True,
                            stdin=DEVNULL,
                            stdout=DEVNULL,
                            stderr=DEVNULL,
                            close_fds=True)
示例#3
0
def methods_write_json_redcap_swi_instrument(input_dir, verbose):
    """ Write MagTrans Instrument to JSON output file"""

    cenc_dirs = cenc.directories(input_dir)

    swir = os.path.join(cenc_dirs['swi']['dirs']['register'], 'swir.nii.gz')

    labels = [
        os.path.join(cenc_dirs['swi']['dirs']['input'],
                     'gm.cerebral_cortex.nii.gz'),
        os.path.join(cenc_dirs['swi']['dirs']['input'],
                     'gm.subcortical.nii.gz'),
        os.path.join(cenc_dirs['swi']['dirs']['input'], 'wm.cerebral.nii.gz'),
        os.path.join(cenc_dirs['swi']['dirs']['input'],
                     'wmlesions_lpa_mask.nii.gz')
    ]

    pandas.set_option('expand_frame_repr', False)

    df_stats_gm_cortical = iw_labels.measure_image_stats(labels[0], swir)
    df_stats_gm_subcortical = iw_labels.measure_image_stats(labels[1], swir)
    df_stats_wm_cerebral = iw_labels.measure_image_stats(labels[2], swir)
    df_stats_wm_lesions = iw_labels.measure_image_stats(labels[3], swir)

    dict_redcap = OrderedDict(
        (('subject_id', cenc_dirs['cenc']['id']), ('swi_analyst',
                                                   getpass.getuser()),
         ('swi_datetime',
          '{:%Y-%b-%d %H:%M:%S}'.format(datetime.datetime.now())),
         ('swi_gm_cortical_mean',
          '{0:4.3f}'.format(df_stats_gm_cortical['mean'].values[0])),
         ('swi_gm_cortical_std',
          '{0:4.3f}'.format(df_stats_gm_cortical['std'].values[0])),
         ('swi_gm_subcortical_mean',
          '{0:4.3f}'.format(df_stats_gm_subcortical['mean'].values[0])),
         ('swi_gm_subcortical_std',
          '{0:4.3f}'.format(df_stats_gm_subcortical['std'].values[0])),
         ('swi_wm_cortical_mean',
          '{0:4.3f}'.format(df_stats_wm_cerebral['mean'].values[0])),
         ('swi_wm_cortical_std',
          '{0:4.3f}'.format(df_stats_wm_cerebral['std'].values[0])),
         ('swi_wmlesions_mean',
          '{0:4.3f}'.format(df_stats_wm_lesions['mean'].values[0])),
         ('swi_wmlesions_std',
          '{0:4.3f}'.format(df_stats_wm_lesions['std'].values[0]))))

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

    with open(magtrans_json_filename, 'w') as outfile:
        json.dump(dict_redcap,
                  outfile,
                  indent=4,
                  ensure_ascii=True,
                  sort_keys=False)

    if verbose:
        cenc.print_json_redcap_instrument(magtrans_json_filename)

    return
示例#4
0
def methods_write_json_redcap_instrument(in_dir, labels_stats_csv,
                                         labels_pmap_stats_csv, verbose):
    """ Writes out REdCap instrument measures to a JSON file"""
    cenc_dirs = cenc.directories(in_dir)

    df_label_stats = pandas.read_csv(labels_stats_csv)
    df_pmap_stats = pandas.read_csv(labels_pmap_stats_csv)

    number_of_lesions, _ = df_label_stats.shape

    if number_of_lesions > 0:
        total_lesion_volume = df_label_stats['volume_mm3'].sum()
        mean_lesion_volume = df_label_stats['volume_mm3'].mean()
        std_lesion_volume = df_label_stats['volume_mm3'].std()
        min_lesion_volume = df_label_stats['volume_mm3'].min()
        max_lesion_volume = df_label_stats['volume_mm3'].max()
        min_lesion_probability = df_pmap_stats['min'].min()
        max_lesion_probability = df_pmap_stats['max'].max()
    else:
        total_lesion_volume = 0
        mean_lesion_volume = 0
        std_lesion_volume = 0
        min_lesion_volume = 0
        max_lesion_volume = 0
        min_lesion_probability = 0
        max_lesion_probability = 0

    dict_redcap = OrderedDict(
        (('subject_id', cenc_dirs['cenc']['id']), ('wm_lesions_analyst',
                                                   getpass.getuser()),
         ('wm_lesions_datetime',
          '{:%Y-%b-%d %H:%M:%S}'.format(datetime.datetime.now())),
         ('wm_lesions_number', '{0:d}'.format(int(number_of_lesions))),
         ('wm_lesions_total_volume_mm3',
          '{0:5.1f}'.format(total_lesion_volume)),
         ('wm_lesions_mean_volume_mm3', '{0:5.1f}'.format(mean_lesion_volume)),
         ('wm_lesions_std_volume_mm3', '{0:5.1f}'.format(std_lesion_volume)),
         ('wm_lesions_min_lesion_volume_mm3',
          '{0:5.1f}'.format(min_lesion_volume)),
         ('wm_lesions_max_lesion_volume_mm3',
          '{0:5.1f}'.format(max_lesion_volume)),
         ('wm_lesions_min_lesion_probability',
          '{0:5.4f}'.format(min_lesion_probability)),
         ('wm_lesions_max_lesion_probability',
          '{0:5.4f}'.format(max_lesion_probability))))

    wmlesions_json_filename = os.path.join(os.path.dirname(labels_stats_csv),
                                           'wmlesions.json')

    with open(wmlesions_json_filename, 'w') as outfile:
        json.dump(dict_redcap,
                  outfile,
                  indent=4,
                  ensure_ascii=True,
                  sort_keys=False)

    if verbose:
        cenc.print_json_redcap_instrument(wmlesions_json_filename)