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)
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)
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
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)