Exemple #1
0
    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,
                    })
Exemple #2
0
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 = []
Exemple #4
0
 def __init__(self):
     self.subjects = ipmi.get_segmented_subjects()
     self.subjects.extend(ipmi.get_unsegmented_subjects())