Source code for torchio.datasets.fpg

import urllib.parse

from .. import DATA_REPO
from .. import LabelMap
from .. import ScalarImage
from ..data.io import read_matrix
from ..data.subject import _RawSubjectCopySubject
from ..download import download_url
from ..utils import get_torchio_cache_dir


[docs] class FPG(_RawSubjectCopySubject): """3T :math:`T_1`-weighted brain MRI and corresponding parcellation. Args: load_all: If ``True``, three more images will be loaded: a :math:`T_2`-weighted MRI, a diffusion MRI and a functional MRI. """ def __init__(self, load_all: bool = False): repo_dir = urllib.parse.urljoin(DATA_REPO, 'fernando/') self.filenames = { 't1': 't1.nii.gz', 'seg': 't1_seg_gif.nii.gz', 'rigid': 't1_to_mni.tfm', 'affine': 't1_to_mni_affine.h5', } if load_all: self.filenames['t2'] = 't2.nii.gz' self.filenames['fmri'] = 'fmri.nrrd' self.filenames['dmri'] = 'dmri.nrrd' download_root = get_torchio_cache_dir() / 'fpg' for filename in self.filenames.values(): download_url( urllib.parse.urljoin(repo_dir, filename), download_root, filename=filename, ) rigid = read_matrix(download_root / self.filenames['rigid']) affine = read_matrix(download_root / self.filenames['affine']) subject_dict = { 't1': ScalarImage( download_root / self.filenames['t1'], rigid_matrix=rigid, affine_matrix=affine, ), 'seg': LabelMap( download_root / self.filenames['seg'], rigid_matrix=rigid, affine_matrix=affine, ), } if load_all: subject_dict['t2'] = ScalarImage( download_root / self.filenames['t2'], ) subject_dict['fmri'] = ScalarImage( download_root / self.filenames['fmri'], ) subject_dict['dmri'] = ScalarImage( download_root / self.filenames['dmri'], ) super().__init__(subject_dict) self.gif_colors = self.GIF_COLORS def plot(self, *args, **kwargs): super().plot(*args, **kwargs, cmap_dict={'seg': self.gif_colors}) GIF_COLORS = { 0: (0, 0, 0), 1: (0, 0, 0), 5: (127, 255, 212), 12: (240, 230, 140), 16: (176, 48, 96), 24: (48, 176, 96), 31: (48, 176, 96), 32: (103, 255, 255), 33: (103, 255, 255), 35: (238, 186, 243), 36: (119, 159, 176), 37: (122, 186, 220), 38: (122, 186, 220), 39: (96, 204, 96), 40: (96, 204, 96), 41: (220, 247, 164), 42: (220, 247, 164), 43: (205, 62, 78), 44: (205, 62, 78), 45: (225, 225, 225), 46: (225, 225, 225), 47: (60, 60, 60), 48: (220, 216, 20), 49: (220, 216, 20), 50: (196, 58, 250), 51: (196, 58, 250), 52: (120, 18, 134), 53: (120, 18, 134), 54: (255, 165, 0), 55: (255, 165, 0), 56: (12, 48, 255), 57: (12, 48, 225), 58: (236, 13, 176), 59: (236, 13, 176), 60: (0, 118, 14), 61: (0, 118, 14), 62: (165, 42, 42), 63: (165, 42, 42), 64: (160, 32, 240), 65: (160, 32, 240), 66: (56, 192, 255), 67: (56, 192, 255), 70: (255, 225, 225), 72: (184, 237, 194), 73: (180, 231, 250), 74: (225, 183, 231), 76: (180, 180, 180), 77: (180, 180, 180), 81: (245, 255, 200), 82: (255, 230, 255), 83: (245, 245, 245), 84: (220, 255, 220), 85: (220, 220, 220), 86: (200, 255, 255), 87: (250, 220, 200), 89: (245, 255, 200), 90: (255, 230, 255), 91: (245, 245, 245), 92: (220, 255, 220), 93: (220, 220, 220), 94: (200, 255, 255), 96: (140, 125, 255), 97: (140, 125, 255), 101: (255, 62, 150), 102: (255, 62, 150), 103: (160, 82, 45), 104: (160, 82, 45), 105: (165, 42, 42), 106: (165, 42, 42), 107: (205, 91, 69), 108: (205, 91, 69), 109: (100, 149, 237), 110: (100, 149, 237), 113: (135, 206, 235), 114: (135, 206, 235), 115: (250, 128, 114), 116: (250, 128, 114), 117: (255, 255, 0), 118: (255, 255, 0), 119: (221, 160, 221), 120: (221, 160, 221), 121: (0, 238, 0), 122: (0, 238, 0), 123: (205, 92, 92), 124: (205, 92, 92), 125: (176, 48, 96), 126: (176, 48, 96), 129: (152, 251, 152), 130: (152, 251, 152), 133: (50, 205, 50), 134: (50, 205, 50), 135: (0, 100, 0), 136: (0, 100, 0), 137: (173, 216, 230), 138: (173, 216, 230), 139: (153, 50, 204), 140: (153, 50, 204), 141: (160, 32, 240), 142: (160, 32, 240), 143: (0, 206, 208), 144: (0, 206, 208), 145: (51, 50, 135), 146: (51, 50, 135), 147: (135, 50, 74), 148: (135, 50, 74), 149: (218, 112, 214), 150: (218, 112, 214), 151: (240, 230, 140), 152: (240, 230, 140), 153: (255, 255, 0), 154: (255, 255, 0), 155: (255, 110, 180), 156: (255, 110, 180), 157: (0, 255, 255), 158: (0, 255, 255), 161: (100, 50, 100), 162: (100, 50, 100), 163: (178, 34, 34), 164: (178, 34, 34), 165: (255, 0, 255), 166: (255, 0, 255), 167: (39, 64, 139), 168: (39, 64, 139), 169: (255, 99, 71), 170: (255, 99, 71), 171: (255, 69, 0), 172: (255, 69, 0), 173: (210, 180, 140), 174: (210, 180, 140), 175: (0, 255, 127), 176: (0, 255, 127), 177: (74, 155, 60), 178: (74, 155, 60), 179: (255, 215, 0), 180: (255, 215, 0), 181: (238, 0, 0), 182: (238, 0, 0), 183: (46, 139, 87), 184: (46, 139, 87), 185: (238, 201, 0), 186: (238, 201, 0), 187: (102, 205, 170), 188: (102, 205, 170), 191: (255, 218, 185), 192: (255, 218, 185), 193: (238, 130, 238), 194: (238, 130, 238), 195: (255, 165, 0), 196: (255, 165, 0), 197: (255, 192, 203), 198: (255, 192, 203), 199: (244, 222, 179), 200: (244, 222, 179), 201: (208, 32, 144), 202: (208, 32, 144), 203: (34, 139, 34), 204: (34, 139, 34), 205: (125, 255, 212), 206: (127, 255, 212), 207: (0, 0, 128), 208: (0, 0, 128), }
# For backward compatibility GIF_COLORS = FPG.GIF_COLORS