def dice(self): subjects = ipmi.get_segmented_subjects() scores_tuples = [subject.dice_scores() for subject in subjects] csfs = [] gms = [] wms = [] for scores in scores_tuples: csfs.append(scores.csf) gms.append(scores.grey_matter) wms.append(scores.white_matter) scores_array = np.column_stack([csfs, gms, wms]) scores_array = np.hstack( [scores_array, scores_array.mean(axis=1).reshape(-1, 1)]) with open(path.dice_report_path, 'w') as csvfile: fieldnames = 'Subject', 'CSF', 'Grey matter', 'White matter', 'Mean' writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() for subject, (csf, gm, wm, mean) in zip(subjects, scores_array): writer.writerow({ 'Subject': subject.id, 'CSF': csf, 'Grey matter': gm, 'White matter': wm, 'Mean': mean, }) means = scores_array.mean(axis=0) csf, gm, wm, mean = means writer.writerow({ 'Subject': 'Mean', 'CSF': csf, 'Grey matter': gm, 'White matter': wm, 'Mean': mean, }) with open(path.dice_report_pandas_path, 'w') as csvfile: fieldnames = 'Subject ID', 'Dice score', 'Tissue' tissues = 'CSF', 'Grey matter', 'White matter', 'Mean' writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() for row, subject in enumerate(subjects): for col, tissue in enumerate(tissues): writer.writerow({ 'Subject ID': subject.id, 'Dice score': scores_array[row, col], 'Tissue': tissue, })
import csv import pathlib import pandas import numpy as np import matplotlib as mpl mpl.use('TkAgg') import matplotlib.pyplot as plt import seaborn as sns import ipmi from ipmi import segmentation as seg subject = ipmi.get_segmented_subjects()[0] dices = [] segmentation_dir = subject.dir / 'seg' em = seg.ExpectationMaximisation(subject.t1_path, write_intermediate=True, use_mrf=False, use_bias_correction=False, num_classes=4) subject.segmentation_em_path = segmentation_dir / subject.segmentation_em_path.name subject.probabilities_path = segmentation_dir / subject.probabilities_path.name subject.uncertainty_img_path = segmentation_dir / subject.uncertainty_img_path.name subject.segmentation_collage_path = segmentation_dir / subject.segmentation_collage_path.name subject.confusion_background_path = segmentation_dir / subject.confusion_background_path.name subject.confusion_csf_path = segmentation_dir / subject.confusion_csf_path.name subject.confusion_gm_path = segmentation_dir / subject.confusion_gm_path.name subject.confusion_wm_path = segmentation_dir / subject.confusion_wm_path.name
def __init__(self): self.import_all_subjects() self.segmented_subjects = ipmi.get_segmented_subjects() self.rigid_template = Template('rigid_template') self.collages_paths = []
def __init__(self): self.subjects = ipmi.get_segmented_subjects() self.subjects.extend(ipmi.get_unsegmented_subjects())