From e4d7a9e5bcd87bef1175517267fd6aa13317ce81 Mon Sep 17 00:00:00 2001 From: bmandracchia Date: Tue, 15 Oct 2024 19:29:06 +0200 Subject: [PATCH] debug resample --- bioMONAI/_modidx.py | 7 +- bioMONAI/transforms.py | 64 ++++++++++------- nbs/05_transforms.ipynb | 150 ++++++++++++++++++++++++++++----------- nbs/902_tutorial_1.ipynb | 36 ++++------ 4 files changed, 166 insertions(+), 91 deletions(-) diff --git a/bioMONAI/_modidx.py b/bioMONAI/_modidx.py index e8b630f..b3fd0f8 100644 --- a/bioMONAI/_modidx.py +++ b/bioMONAI/_modidx.py @@ -148,11 +148,14 @@ 'bioMONAI.transforms.RandRot90.encodes': ( 'transforms.html#randrot90.encodes', 'bioMONAI/transforms.py'), 'bioMONAI.transforms.Resample': ('transforms.html#resample', 'bioMONAI/transforms.py'), - 'bioMONAI.transforms.Resample.__call__': ( 'transforms.html#resample.__call__', - 'bioMONAI/transforms.py'), 'bioMONAI.transforms.Resample.__init__': ( 'transforms.html#resample.__init__', 'bioMONAI/transforms.py'), 'bioMONAI.transforms.Resample.encodes': ('transforms.html#resample.encodes', 'bioMONAI/transforms.py'), + 'bioMONAI.transforms.ScaleIntensity': ('transforms.html#scaleintensity', 'bioMONAI/transforms.py'), + 'bioMONAI.transforms.ScaleIntensity.__init__': ( 'transforms.html#scaleintensity.__init__', + 'bioMONAI/transforms.py'), + 'bioMONAI.transforms.ScaleIntensity.encodes': ( 'transforms.html#scaleintensity.encodes', + 'bioMONAI/transforms.py'), 'bioMONAI.transforms.ScaleIntensityPercentiles': ( 'transforms.html#scaleintensitypercentiles', 'bioMONAI/transforms.py'), 'bioMONAI.transforms.ScaleIntensityPercentiles.__init__': ( 'transforms.html#scaleintensitypercentiles.__init__', diff --git a/bioMONAI/transforms.py b/bioMONAI/transforms.py index 26beeef..241a05f 100644 --- a/bioMONAI/transforms.py +++ b/bioMONAI/transforms.py @@ -3,20 +3,20 @@ # AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/05_transforms.ipynb. # %% auto 0 -__all__ = ['Resample', 'RandCameraNoise', 'ScaleIntensityPercentiles', 'ScaleIntensityVariance', 'RandCrop2D', 'RandCropND', - 'RandFlip', 'RandRot90'] +__all__ = ['Resample', 'RandCameraNoise', 'ScaleIntensity', 'ScaleIntensityPercentiles', 'ScaleIntensityVariance', 'RandCrop2D', + 'RandCropND', 'RandFlip', 'RandRot90'] # %% ../nbs/05_transforms.ipynb 3 import numpy as np from fastai.vision.all import * from fastai.data.all import * -from monai.transforms import SpatialCrop, Flip, Rotate90, Spacing, ScaleIntensity +from monai.transforms import SpatialCrop, Flip, Rotate90, Spacing from numpy import percentile, isscalar, float32 as np_float32 from .data import BioImageBase, BioImageStack # %% ../nbs/05_transforms.ipynb 5 -class Resample(Spacing): +class Resample(Transform): """ A subclass of Spacing that handles image resampling based on specified sampling factors or voxel dimensions. @@ -45,15 +45,13 @@ def __init__(self, sampling, **kwargs): The Spacing class from which Resample inherits is initialized with either the provided pixdim or calculated based on the sampling factor and original image properties. """ if 'pixdim' in kwargs: - super().__init__(**kwargs) + self.spacing = Spacing(**kwargs) else: - super().__init__(sampling, **kwargs) - - def __call__(self, img: BioImageBase): - return super().__call__(img.data) - - def encodes(self, img: BioImageBase): - return self.__call__(img.data) + self.spacing = Spacing(sampling, **kwargs) + + def encodes(self, img:BioImageBase): + bioimagetype = type(img) + return bioimagetype(self.spacing(img)) # %% ../nbs/05_transforms.ipynb 9 @@ -127,7 +125,7 @@ def encodes(self, return bioimagetype(adu) -# %% ../nbs/05_transforms.ipynb 15 +# %% ../nbs/05_transforms.ipynb 14 def _scale_intensity_range(x, mi, ma, eps=1e-20, dtype=np_float32): if dtype is not None: x = x.astype(dtype, copy=False) @@ -137,6 +135,16 @@ def _scale_intensity_range(x, mi, ma, eps=1e-20, dtype=np_float32): x = (x - mi) / (ma - mi + eps) return x +# %% ../nbs/05_transforms.ipynb 15 +class ScaleIntensity(Transform): + """Percentile-based image normalization.""" + def __init__(x, min=0.0, max=1.0, axis=None, eps=1e-20, dtype=np_float32): + store_attr() + + def encodes(self, x: BioImageBase): + bioimagetype = type(x) + return bioimagetype(_scale_intensity_range(x, self.min, self.max, eps=self.eps, dtype=self.dtype)) + # %% ../nbs/05_transforms.ipynb 16 class ScaleIntensityPercentiles(Transform): """Percentile-based image normalization.""" @@ -144,9 +152,10 @@ def __init__(x, pmin=3, pmax=99.8, axis=None, eps=1e-20, dtype=np_float32): store_attr() def encodes(self, x: BioImageBase): + bioimagetype = type(x) mi = percentile(x, self.pmin, axis=self.axis, keepdims=True) ma = percentile(x, self.pmax, axis=self.axis, keepdims=True) - return _scale_intensity_range(x, mi, ma, eps=self.eps, dtype=self.dtype) + return bioimagetype(_scale_intensity_range(x, mi, ma, eps=self.eps, dtype=self.dtype)) # %% ../nbs/05_transforms.ipynb 17 @@ -162,6 +171,7 @@ def __init__(self, ndim=2): store_attr() def encodes(self, x: BioImageBase): + bioimagetype = type(x) # Calculate the current variance of the image intensities mean, variance = torch.mean(x), torch.var(x) @@ -175,7 +185,7 @@ def encodes(self, x: BioImageBase): else: x = (x - mean) * scale_factor - return x + return bioimagetype(x) # %% ../nbs/05_transforms.ipynb 20 @@ -216,8 +226,9 @@ def before_call(self, h_rand = (hd, -1) if hd < 0 else (0, hd) self.ctr = fastuple(random.randint(*w_rand)+self.size[0]//2, random.randint(*h_rand)+self.size[1]//2) - def encodes(self, x): - return SpatialCrop(roi_center=self.ctr, roi_size=self.size, lazy=self.lazy)(x) + def encodes(self, x: BioImageBase): + bioimagetype = type(x) + return bioimagetype(SpatialCrop(roi_center=self.ctr, roi_size=self.size, lazy=self.lazy)(x)) # %% ../nbs/05_transforms.ipynb 23 class RandCropND(RandTransform): @@ -267,9 +278,10 @@ def before_call(self, b, split_idx: int): self.tl = fastuple(*tl) self.br = fastuple(*br) - def encodes(self, x): + def encodes(self, x:BioImageBase): "Apply spatial crop transformation to the input image." - return SpatialCrop(roi_start=self.tl, roi_end=self.br, lazy=self.lazy)(x) + bioimagetype = type(x) + return bioimagetype(SpatialCrop(roi_start=self.tl, roi_end=self.br, lazy=self.lazy)(x)) # %% ../nbs/05_transforms.ipynb 25 @@ -299,11 +311,12 @@ def before_call(self, b, split_idx: int): if self.spatial_axis is None: self.spatial_axis = np.random.choice(np.arange(self.ndim), size=np.random.randint(1, self.ndim+1), replace=False, p=None) - def encodes(self, x): + def encodes(self, x:BioImageBase): + bioimagetype = type(x) if self.flip: - return Flip(spatial_axis=self.spatial_axis, lazy=self.lazy)(x) + return bioimagetype(Flip(spatial_axis=self.spatial_axis, lazy=self.lazy)(x)) else: - return x + return bioimagetype(x) # %% ../nbs/05_transforms.ipynb 27 class RandRot90(RandTransform): @@ -333,8 +346,9 @@ def before_call(self, b, split_idx: int): # if self.spatial_axes is None: # self.spatial_axes = np.random.choice(np.arange(self.ndim), size=np.random.randint(1, self.ndim+1), replace=False, p=None) - def encodes(self, x): + def encodes(self, x:BioImageBase): + bioimagetype = type(x) if self.rot90: - return Rotate90(k=self.k, spatial_axes=self.spatial_axes, lazy=self.lazy)(x) + return bioimagetype(Rotate90(k=self.k, spatial_axes=self.spatial_axes, lazy=self.lazy)(x)) else: - return x + return bioimagetype(x) diff --git a/nbs/05_transforms.ipynb b/nbs/05_transforms.ipynb index 1605d38..3473421 100644 --- a/nbs/05_transforms.ipynb +++ b/nbs/05_transforms.ipynb @@ -38,7 +38,7 @@ "import numpy as np\n", "from fastai.vision.all import *\n", "from fastai.data.all import *\n", - "from monai.transforms import SpatialCrop, Flip, Rotate90, Spacing, ScaleIntensity\n", + "from monai.transforms import SpatialCrop, Flip, Rotate90, Spacing\n", "from numpy import percentile, isscalar, float32 as np_float32\n", "\n", "from bioMONAI.data import BioImageBase, BioImageStack" @@ -58,7 +58,7 @@ "outputs": [], "source": [ "#| export\n", - "class Resample(Spacing):\n", + "class Resample(Transform):\n", " \"\"\"\n", " A subclass of Spacing that handles image resampling based on specified sampling factors or voxel dimensions.\n", " \n", @@ -87,15 +87,13 @@ " The Spacing class from which Resample inherits is initialized with either the provided pixdim or calculated based on the sampling factor and original image properties.\n", " \"\"\"\n", " if 'pixdim' in kwargs:\n", - " super().__init__(**kwargs)\n", + " self.spacing = Spacing(**kwargs)\n", " else:\n", - " super().__init__(sampling, **kwargs)\n", - " \n", - " def __call__(self, img: BioImageBase): \n", - " return super().__call__(img.data)\n", - " \n", - " def encodes(self, img: BioImageBase):\n", - " return self.__call__(img.data)\n" + " self.spacing = Spacing(sampling, **kwargs)\n", + " \n", + " def encodes(self, img:BioImageBase):\n", + " bioimagetype = type(img)\n", + " return bioimagetype(self.spacing(img))\n" ] }, { @@ -125,7 +123,7 @@ }, { "data": { - "image/png": "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/M3f2L/927/Z5Zdfbuecc4597GMfs5qaGrvqqqvsz/7sz2z//fe3Y4891h544IEdflE1+8OkpPvtt59VVVXZcccdN1B+8skn25w5c+w973lPyYf2/+d//qeZmc2dO9fmzp270/L+10VCT5061R5++GH7x3/8R/v0pz9tfX19dvjhh9tdd92106SzAPBmccEFF9jRRx9t3/zmN+1f/uVfbPXq1VZeXm5vectb7GMf+9gOc95de+21NnXqVPvBD35g3/3ud23EiBF26qmn2lVXXbXLHxCuueYaM/vD6NpNmzbZiSeeaHfffffACNN90S9+8Qt77bXX7KmnnrJ3vOMdOy1fsmTJwOdvamqyRx55xC666CL7whe+YF1dXXbooYfaD3/4QzvvvPNKvOfYk8r6X//tBQAAAAAAAAhiNi4AAAAAAABkQUcTAAAAAAAAsqCjCQAAAAAAAFnQ0QQAAAAAAIAs6GgCAAAAAABAFnQ0AQAAAAAAIAs6mgAAAAAAAJDFsD29AwAApFRVVSXL99tP/0ZSVlaWLO/v75d1hg1LPwpfe+21rNspuq79999f1lH7ptalyr3teHVyUtvxjn9FRUWyfOvWrYW349m2bVuyXLVB1ZbMip8zj3ds1PlUn8Wj6nj7rK6ByHmOXGfe/UFR61Pr8ravlkWOv3ec1bK2trbC23mzO/DAA5PlkfPsibQndX2odXnPjb6+Pmfv0tT61H55n6Xo/dRbX+QeEFlX5DyrY+Y9n9Q+R+4bkXOj7ifeuVH7VvR+6vE+v9rnyHMrcswibaMo7/mojqdXJ2d73rRp0y7rMqIJAAAAAAAAWdDRBNcNN9xgZWVlA/8NGzbMJkyYYOedd569+uqrA//uwQcftLKyMnvwwQf33M6WUFdXl5199tk2bdo0q6urs5qaGps5c6Z97Wtfs66urp3+/dq1a+2Tn/ykjRw50qqrq+24446z++67bw/sOQAAAAAAbxxencOgzJkzxw499FDr6emxX//613bVVVfZQw89ZM8884zV1NTs6d0rub6+Puvv77fPf/7zNmXKFNtvv/3s17/+tV1++eX24IMP2rx58wb+bW9vr5100knW3t5u3/72t2306NH23e9+10499VSbN2+evfvd796DnwQAAAAAgHzoaMKgvPWtb7XZs2ebmdl73vMe27Ztm11xxRV2xx132Mc//vE9vHel19DQYLfccssOZSeffLL19vba1VdfbYsXL7aDDjrIzMx+8IMf2O9//3t79NFH7bjjjjOzPxzDww47zC666CJ77LHHSr7/AAAAAAC8EXh1DiHHHnusmZktXbpU/psnnnjCzj77bJs8ebJVVVXZ5MmT7ZxzztmpzvbX8x544AG78MILbeTIkdbc3Gwf+tCHbOXKlTut95ZbbrHjjjvOampqrLa21t773vfa7373u7wfMGjUqFFmtuOEsLfffrtNmzZtoJNp+/Jzzz3XHn/88R1eQQQAAAAAYG/GiCaEvPLKK2b23x0rKS0tLTZt2jQ7++yzrampyVatWmXXXnutHXXUUfbcc8/ZyJEjd/j3559/vp122ml200032fLly+3v//7v7dxzz7X7779/4N/80z/9k33pS1+y8847z770pS/Zli1b7Otf/7q9613vsscff9xmzJjh7reX+PB6+++//6CSgPr7+23btm3W3d1tjz76qF1zzTV2zjnn2KRJkwb+ze9//3t717vetVPdt73tbWZm9uyzz9r48eMHtV/Am0nR9CqvjieSNpJz+5G0maLHpry8XK6raKqRt8xLOym6rkjqnnfMIok3RVP8Ip8/kgQUXV8uOVNtIklA3rmM1CmaFBdJ/ct9LiNtDWnqWEYSESPtOaJo4paZbk+Re61aV+4UyT3dziNJgTlTz3Kmv0aegV5SYdF9885l5PMXfdbkTAU2i6UoFv3uEEn980SSF3enDdLRhEHZtm2bbd261TZv3mwPPfSQfe1rX7O6ujr7wAc+IOucddZZdtZZZ+2wjtNPP93GjBljN910k/3P//k/d/j3p556qv3v//2/B/5//fr1dtFFF9nq1att7Nixtnz5crv00kvtr//6r3f4d6eccoodcsgh9tWvfnWn19ler6WlxaZMmTKoz/vAAw/Yn/zJn+zy391yyy12zjnnDPz/eeedZ9ddd90O/6atrc2ampp2qru9jChiAAAAAMC+go4mDMr2V+W2mzVrll177bU2ZswYWWfTpk12xRVX2G233WYtLS079Lw+//zzO/37P+602j7iZ+nSpTZ27Fi79957bevWrfaJT3xih5FJw4cPt3e/+932wAMPuJ/hgAMOsAULFrj/Zrtp06YN6t+9973vtQULFlhnZ6fNnz/f/uVf/sXa2trs9ttv36EX2usNzvlrBQAA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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJ4AAAF+CAYAAADDb9DPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB+wUlEQVR4nO3daZhfVZXv8RUgQ41JJZWkEpIQEkIS5hmCAjI1OGCryBWUi+DV7sarbbe3G0XaRsER2qvdOLc02Co8qEzK1ShDGGUIEMZAIGQgIWNVUqlKZYa6L3wSSfZvwdrZOUmRfD/PwwsW5+wz7XP+xTlrr92ru7u72wAAAAAAAIBtbLcdvQMAAAAAAADYOfHiCQAAAAAAAJXgxRMAAAAAAAAqwYsnAAAAAAAAVIIXTwAAAAAAAKgEL54AAAAAAABQCV48AQAAAAAAoBK8eAIAAAAAAEAlePEEAAAAAACASvDiCW/o2muvtV69em36Z4899rARI0bYBRdcYK+88sqm5e6++27r1auX3X333TtuZ7ejrq4uO/vss238+PHW0NBgdXV1tv/++9tXvvIV6+rqSpZfsmSJnX/++dbc3Gy1tbU2adIku/POO3fAngMAAAAAsP3ssaN3AG8N11xzjU2YMMFWr15t9957r33961+3e+65x55++mmrq6vb0bu33a1fv966u7vts5/9rO29996222672b333muXXXaZ3X333XbHHXdsWnbt2rV28sknW3t7u/37v/+7DRkyxL73ve/Z6aefbnfccYedcMIJO/BIAAAAAACoDi+eEHLAAQfYEUccYWZmJ554or366qt2+eWX2y233GIf+chHdvDebX8DBgywG264YbPYKaecYmvXrrUrrrjCZs2aZWPGjDEzs6uvvtqeeeYZ+9Of/mSTJk0ysz+fw4MPPtguuugie/jhh7f7/gMAAAAAsD0w1A5b5ZhjjjEzs7lz57rLPProo3b22Wfb6NGjraamxkaPHm3nnHNOss7G4XxTpkyxCy+80Jqbm23QoEH2gQ98wBYsWJC0e8MNN9ikSZOsrq7O6uvr7bTTTrNp06Zt2wPcSoMHDzYzsz32+Ms73ZtvvtnGjx+/6aXTxv9+7rnn2iOPPLLZkEUAAAAAAHYmvHjCVpk5c6aZ/eVFizJnzhwbP368fec737E//OEP9s1vftMWLlxoRx55pLW2tibLf/zjH7fevXvbddddZ1dccYXdfffddu655262zNe+9jU755xzbL/99rNf/vKX9rOf/cw6OzvtuOOOs+nTp7/pfm/YsCH0T3d3d+g8dHd324YNG6yjo8MmT55s3/rWt+ycc86xUaNGbVrmmWeesYMOOihZd2Ps2WefDW0LAAAAAIC3GobaIeTVV1+1DRs22Jo1a+yee+6xr3zlK9bQ0GDvfe973XU++MEP2gc/+MHN2njPe95jQ4cOteuuu87+/u//frPlTz/9dPuP//iPTf++bNkyu+iii2zRokXW0tJi8+bNs0svvdQ+9alPbbbcqaeeauPGjbMvf/nLyfC315szZ47tvffeoeOdMmWKveMd73jT5W644QY755xzNv37BRdcYD/+8Y83W6atrc0GDhyYrLsx1tbWFtonAAAAAADeanjxhJCNQ+s2OvDAA+0HP/iBDR061F1n5cqVdvnll9uNN95oc+bMsVdffXXTf3vuueeS5bd8ibUxI2ju3LnW0tJif/jDH2zDhg123nnn2YYNGzYt169fPzvhhBNsypQpb3gMw4cPt6lTp77hMhuNHz8+tNxpp51mU6dOtc7OTnvwwQftm9/8prW1tdnNN99su+32l4TCXr16uW280X8DAAAAAOCtjBdPCPnv//5vmzhxou2xxx42dOhQGzZs2Juu8+EPf9juvPNO++IXv2hHHnmkNTY2Wq9evexd73qXrV69Oll+0KBBm/173759zcw2Lbt48WIzMzvyyCPl9l7/okfp06ePHXLIIW+632Zmu+++e2i5pqamzYqujx071s4++2y79dZb7f3vf7+Z/fm4VFbTsmXLzMxkNhQAAAAAADsDXjwhZOLEiZtesESsWLHCbrvtNrv00kvt85///Kb42rVrN71wydXc3GxmZr/+9a9tr732yl6/iqF2WzrqqKPMzOyFF17YFDvwwAPt6aefTpbdGDvggAOytwMAAAAAwFsBL55QiV69ell3d/emrKWNfvKTn2w25C7HaaedZnvssYe99NJLduaZZ2avX8VQuy1tHO63zz77bIq9//3vt09+8pP28MMP29FHH21mfy5y/vOf/9yOPvpoGz58+FZtCwAAAACAno4XT6hEY2OjHX/88XbllVdac3OzjR492u655x67+uqrbcCAAVvV5ujRo+2yyy6zSy65xGbNmmWnn366NTU12eLFi+2RRx6xuro6+/KXv+yu36dPn6ysrTfyox/9yO677z77q7/6Kxs5cqR1dXXZfffdZ1dddZUde+yx9td//deblv3Yxz5m3/ve9+yss86yb3zjGzZkyBD7/ve/bzNmzLA77rhjm+wPAAAAAAA9ES+eUJnrrrvOPvOZz9hFF11kGzZssLe97W12++2327vf/e6tbvPiiy+2/fbbz/793//drr/+elu7dq21tLTYkUceaX/3d3+3Dff+jR144IF222232cUXX2ytra22xx572Lhx4+wLX/iCffazn7U99vjLrdW3b1+788477aKLLrJPf/rTtmrVKjvkkEPs97//vZ1wwgnbbZ8BAAAAANjeenV3d3fv6J0AAAAAAADAzueNpwEDAADYAa699lrr1avXpn/22GMPGzZsmJ199tn24osv7ujd26aeeOIJe/e7322jRo2ympoaGzhwoE2aNMl+/vOfb7bcq6++av/3//5fO/30023EiBFWW1trEydOtM9//vPW3t6+Y3YeAHqIp556yi644ALbe++9rV+/flZfX2+HHXaYXXHFFVs1udH5559vo0eP3vY7+hYzb948e//7329jxoyxuro669+/vx166KH23e9+1zZs2LDZsj/5yU/sfe97n40ePdpqampsn332sQsvvNAWLly4g/YePQVD7QAAQI91zTXX2IQJE2zNmjX2wAMP2Fe/+lWbMmWKPf/889bU1LSjd2+baG9vt5EjR9o555xje+65p3V1ddkvfvEL+5//83/anDlz7F/+5V/MzGz16tX2pS99yc455xz7+Mc/bs3Nzfb444/bV77yFfvtb39rjz76qNXU1OzgowGA7e8///M/7ZOf/KSNHz/e/vmf/9n2228/W79+vT366KP2wx/+0B588EG7+eabd/RuviV1dXVZY2OjffGLX7RRo0bZunXr7He/+519+tOftieeeMJ+8pOfbFr20ksvtRNPPNG+9rWv2Z577mkzZsywyy+/3G699VabNm2aDR06dAceCXYkhtoBAIAe59prr7ULLrjApk6dutnEEJdddpldeuml9l//9V92wQUX7MA9rN4xxxxjCxYssJdfftnM/pzx1N7eboMGDdpsuV//+td21lln2c9+9jM799xzd8SuAsAO8+CDD9pxxx1np556qt1yyy3JrNrr1q2zyZMn23vf+96sds8//3y7++67bc6cOdtwb3ceH/rQh+ymm26ylStXbjrnS5YssSFDhmy23KOPPmpHHnmkXX755Zs+pGDXw1A7AADwlrHxJdTixYs3i//mN7+xSZMmWW1trTU0NNipp55qDz744Kb//uyzz1qvXr3sV7/61abYY489Zr169bL9999/s7be+9732uGHH17hUcQ0NzdvNlnF7rvvnrx0MjM76qijzOzPwyEAYFfzta99zXr16mU//vGPk5dOZn+e2fr1L51ee+01u+KKK2zChAnWt29fGzJkiJ133nk2f/78N9zOnDlzrFevXnbttdcm/61Xr172pS99adO/f+lLX7JevXrZU089ZWeddZb179/fBg4caJ/97Gdtw4YNNmPGDDv99NOtoaHBRo8ebVdcccVm7d19993Wq1cvu/766+2SSy6x4cOHW2Njo51yyik2Y8aMvBNUkcGDB9tuu+1mu++++6bYli+dzMwOP/xw23333fmN2sXx4gkAALxlzJ4928zM9t13302x6667zv76r//aGhsb7frrr7err77ali9fbu94xzvs/vvvNzOz/fff34YNG2Z33HHHpvXuuOMOq6mpsenTp9uCBQvMzGzDhg12zz332CmnnPKG+9Hd3W0bNmwI/RP12muv2YYNG2zp0qX2/e9/3/7whz/Y5z73uTdd76677tp0jACwK3n11VftrrvussMPP9xGjhwZWufCCy+0z33uc3bqqafab37zG7v88stt8uTJduyxx1pra+s23b//8T/+hx188MF244032ic+8Qn79re/bf/4j/9o73vf++zd73633XzzzXbSSSfZ5z73ObvpppuS9b/whS/Y3Llz7Sc/+Yn9+Mc/thdffNHOOOMMe/XVV99wu1X8Rm1sc/ny5XbDDTfYtddea//n//yfzT6QKPfcc4+9+uqr/Ebt6roBAAB6mGuuuabbzLofeuih7vXr13d3dnZ2T548ubulpaX7+OOP716/fn13d3d396uvvto9fPjw7gMPPLD71Vdf3bR+Z2dn95AhQ7qPPfbYTbFzzz23e8yYMZv+/ZRTTun+xCc+0d3U1NT905/+tLu7u7v7gQce6Daz7j/+8Y+h/Yv8E/W3f/u3m9bp06dP9/e///03XWf+/PndQ4cO7T7iiCM2O34A2BUsWrSo28y6zz777NDyzz33XLeZdX/yk5/cLP7www93m1n3F77whU2xj370o9177bXXpn+fPXt2t5l1X3PNNUm7ZtZ96aWXbvr3Sy+9tNvMur/1rW9tttwhhxzSbWbdN91006bY+vXruwcPHtz9gQ98YFNsypQp3WbW/a53vWuz9X/5y192m1n3gw8++IbHuXH9yD+zZ89+w7Y2+vrXv75pnV69enVfcsklb7pOR0dH98SJE7tHjhzZ3dnZGdoOdk4UFwcAAD3WMcccs9m/T5w40W699dZNX1hnzJhhCxYssH/4h3+w3Xb7SyJ3fX29nXnmmfajH/3IVq1aZbW1tXbyySfbz3/+c5s9e7YNGzbM7r//frvwwgutra3Nbr/9djvvvPPsjjvusL59+9rb3/72N9yvM844w6ZOnbpNj/ULX/iCffzjH7clS5bYb3/7W/vUpz5lXV1d9k//9E9y+WXLltm73vUu6+7uthtuuGGz4wcApKZMmWJmf67f9HpHHXWUTZw40e6880776le/us229573vGezf584caI9+eST9s53vnNTbI899rB99tnH5s6dm6y/ZV2qgw46yMzM5s6dm/w+vt7hhx8e/o0aPnx4aLnzzz/fTjnlFFu2bJndddddduWVV9qKFSvsqquuksuvWbPGPvCBD9jcuXPtrrvusvr6+tB2sHMKv3g6+OCDk9hee+0ll33ggQeSWK9evZLY+vXro5uXf0y9fjzpRt2iVrpazszkGGBVO2HixIlJbGPq/pZUquHy5cvlslt67bXXQsuZ6fOpeH+EqvOk2nyz1MnX6927d2j91w+PeL0DDjggiT377LNJbNGiRUnMm0Z6zZo1SUylpqpjz7ke0fPkXQ/VR1X/VPehmdmECROSWG1tbRKbNm1aEnvb294m21R+8YtfJDF1Pbz+qc6p6otKzrlTsT59+oS3PWDAgCS28Yf+9TYOb3k9r9+o5x1TywJv7r//+79t4sSJ1tnZaTfccIP96Ec/snPOOcd+//vfm5lZW1ubmZkNGzYsWXf48OH22muv2fLly622tnbT8Lk77rjD9t57b1u/fr2ddNJJtnjxYrv88ss3/be3ve1tbzo73MCBA61///7b8lBt1KhRNmrUKDMze9e73mVmZhdffLF99KMftcGDB2+27PLly+3UU0+1V155xe666y4bM2bMNt0XAHgraG5uttra2k3DsN/Mm/1mqJc/JQYOHLjZv/fp08dqa2utX79+SbyjoyNZf8v/N934/werV69+w+3W19fbIYccEtrH6P/HtLS0WEtLi5mZ/dVf/ZU1NTXZ5z//efvYxz5mhx566GbLrl271t7//vfb/fffb7fddpsdffTRoW1g58WnMQAA0GNNnDjRjjjiCDvxxBPthz/8oX384x+3yZMn269//Wsz+8sf5epF7oIFC2y33XazpqYmMzMbMWKE7bvvvnbHHXfY7bffbkcccYQNGDDATj75ZFu4cKE9/PDD9tBDD71pfSczs5/+9KfWu3fv0D9b66ijjrINGzbYrFmzNosvX77cTjnlFJs9e7bdfvvt8sU4AOwKdt99dzv55JPtsccee9Pi4GZv/pvR3NzsrrvxZdHatWs3i298mdWT3HPPPeHfqK2dtW/jxBYvvPDCZvG1a9fa+973PpsyZYrdcsstdvLJJ5ceDnYCDLUDAABvGVdccYXdeOON9q//+q/2gQ98wMaPH2977rmnXXfddfZP//RPmzIuu7q67MYbb9w0091Gp5xyiv3yl7+0kSNH2rvf/W4z+3Mm7qhRo+xf//Vfbf369aEXT1UMtdvSlClTbLfddtssm2njS6dZs2bZ7bffnnxlBoBdzcUXX2y/+93v7BOf+ITdeuutSZb7+vXrbfLkyXbGGWfYSSedZGZmP//5z+3II4/ctMzUqVPtueees0suucTdztChQ61fv3721FNPbRa/9dZbt+HRbBtVDLXb0sZhi/vss8+m2MZMp7vuustuuukmO+2007aqbex8ePEEAADeMpqamuziiy+2iy66yK677jo799xz7YorrrCPfOQj9p73vMf+9m//1tauXWtXXnmltbe32ze+8Y3N1j/55JPt+9//vrW2ttp3vvOdzeLXXHONNTU12eGHH/6m+zFo0CA5PH9r/M3f/I01NjbaUUcdZUOHDrXW1lb71a9+ZTfccIP98z//86ZhdqtXr7bTTjvNpk2bZt/5zndsw4YN9tBDD21qZ/DgwTZ27Nhtsk8A8FYxadIk+8EPfmCf/OQn7fDDD7cLL7zQ9t9/f1u/fr1NmzbNfvzjH9sBBxxgZ5xxho0fP97+5m/+xq666irbbbfd7J3vfKfNmTPHvvjFL9rIkSPtH//xH93t9OrVy84991z7r//6Lxs7dqwdfPDB9sgjj9h11123HY82pqGhwY444oht0tall15qixcvtuOPP9723HNPa29vt8mTJ9t//ud/2llnnbXZb+YHP/hB+/3vf2+XXHKJDRo0aLPfqMbGRttvv/22yT7hrYcXTwAA4C3l05/+tH33u9+1yy67zM455xz78Ic/bHV1dfb1r3/dPvShD9nuu+9uxxxzjE2ZMsWOPfbYzdY96aSTbLfddrOamhqbNGnSpvgpp5xi11xzjZ144onbvUj3pEmT7JprrrGf/vSn1t7ebvX19XbwwQfbz372Mzv33HM3Lbd48eJNX7A/85nPJO189KMftWuvvXZ77TYA9Bif+MQn7KijjrJvf/vb9s1vftMWLVpkvXv3tn333dc+/OEP26c+9alNy/7gBz+wsWPH2tVXX23f+973rH///nb66afb17/+9Tf9oPCtb33LzP6cfbty5Uo76aST7LbbbrPRo0dXeXg71BFHHGH/8R//Ybfccou1tbVZv379bL/99rNvf/vbduGFF2627G233WZmZl/96leTIu0nnHCC3X333dtrt9HD9OoOVvY97rjjkphXGLe1tTWJRQs1e3/sqfXVstEi5N6yqiDz6/8w3WjLIp8b3XzzzUlsy3HAZrrAtUftp2pTFYbztqOWVV3h9Smor/fMM88kMXWeGxoaktjZZ58t27znnnuS2MyZM5OYKtK8bt062abqN9FYtOh1Dq9/q2LcWxYdNDN7xzveIdfv6upKYuqLguo306dPl23+r//1v5LY7373uyS2Mc329VRRdzPdH9V5Vv0z59ypQuKK1+aWhSDNzL773e8msQ996ENJzCtIrK6nKvYOAAAAADsTiosDAAAAAACgErx4AgAAAAAAQCV48QQAAAAAAIBK8OIJAAAAAAAAleDFEwAAAAAAACqRTh3lGDlyZBKbMWOGXFbNUqVmnlLLebOwqdmn1Po5bapl1Yxps2fPTmJqhiozsyuvvDKJXXTRRUns/PPPT2I//elPZZsTJkxIYk888UQSU8epzruZWd++fZOYmpVu8eLFcn3VH0aNGpXEli5dmsQef/xx2aZaVl0jNVPeqlWrZJudnZ1JTF1jdZ68Gc82bNgQWjZnVjx17tX6bW1tcn01q92LL76YxNQUsS0tLbLNRYsWJbH3vOc9Sezee+9NYmpWOrP4/amuh9emmoFuxYoVofX3339/2WZzc3MSU7P8/cM//EMSu+uuu2Sb3vMSAAAAAHZmZDwB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", "text/plain": [ "
" ] @@ -138,7 +136,7 @@ "img = BioImageStack(img2Tensor(cells3d()[:,0]))\n", "visualize_slices(img, showlines=False)\n", "\n", - "img2 = Resample(5)(img)\n", + "img2 = Resample(4)(img)\n", "visualize_slices(img2, showlines=False)" ] }, @@ -293,15 +291,6 @@ "## Normalization" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "show_doc(ScaleIntensity)" - ] - }, { "cell_type": "code", "execution_count": null, @@ -319,6 +308,23 @@ " return x" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#| export\n", + "class ScaleIntensity(Transform):\n", + " \"\"\"Percentile-based image normalization.\"\"\"\n", + " def __init__(x, min=0.0, max=1.0, axis=None, eps=1e-20, dtype=np_float32):\n", + " store_attr()\n", + "\n", + " def encodes(self, x: BioImageBase):\n", + " bioimagetype = type(x)\n", + " return bioimagetype(_scale_intensity_range(x, self.min, self.max, eps=self.eps, dtype=self.dtype))" + ] + }, { "cell_type": "code", "execution_count": null, @@ -332,9 +338,10 @@ " store_attr()\n", "\n", " def encodes(self, x: BioImageBase):\n", + " bioimagetype = type(x)\n", " mi = percentile(x, self.pmin, axis=self.axis, keepdims=True)\n", " ma = percentile(x, self.pmax, axis=self.axis, keepdims=True)\n", - " return _scale_intensity_range(x, mi, ma, eps=self.eps, dtype=self.dtype)\n" + " return bioimagetype(_scale_intensity_range(x, mi, ma, eps=self.eps, dtype=self.dtype))\n" ] }, { @@ -356,6 +363,7 @@ " store_attr()\n", " \n", " def encodes(self, x: BioImageBase):\n", + " bioimagetype = type(x)\n", " # Calculate the current variance of the image intensities\n", " mean, variance = torch.mean(x), torch.var(x)\n", " \n", @@ -369,18 +377,27 @@ " else:\n", " x = (x - mean) * scale_factor\n", " \n", - " return x\n" + " return bioimagetype(x)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Original Tensor Variance: 0.08341076225042343\n", + "Scaled Tensor Variance: 1.0\n" + ] + } + ], "source": [ "\n", "# Example usage with a random tensor of shape (1, 3, 256, 256)\n", - "rand_tensor = torch.rand(1, 3, 256, 256)\n", + "rand_tensor = BioImageBase(torch.rand(1, 3, 256, 256))\n", "\n", "transform = ScaleIntensityVariance(ndim=4)\n", "\n", @@ -465,8 +482,9 @@ " h_rand = (hd, -1) if hd < 0 else (0, hd)\n", " self.ctr = fastuple(random.randint(*w_rand)+self.size[0]//2, random.randint(*h_rand)+self.size[1]//2)\n", "\n", - " def encodes(self, x):\n", - " return SpatialCrop(roi_center=self.ctr, roi_size=self.size, lazy=self.lazy)(x)" + " def encodes(self, x: BioImageBase):\n", + " bioimagetype = type(x)\n", + " return bioimagetype(SpatialCrop(roi_center=self.ctr, roi_size=self.size, lazy=self.lazy)(x))" ] }, { @@ -524,9 +542,10 @@ " self.tl = fastuple(*tl)\n", " self.br = fastuple(*br)\n", "\n", - " def encodes(self, x):\n", + " def encodes(self, x:BioImageBase):\n", " \"Apply spatial crop transformation to the input image.\"\n", - " return SpatialCrop(roi_start=self.tl, roi_end=self.br, lazy=self.lazy)(x)\n", + " bioimagetype = type(x)\n", + " return bioimagetype(SpatialCrop(roi_start=self.tl, roi_end=self.br, lazy=self.lazy)(x))\n", " " ] }, @@ -538,7 +557,7 @@ "source": [ "# Define a random tensor\n", "orig_size = (65, 65)\n", - "rand_tensor = torch.rand(8, *orig_size) \n", + "rand_tensor = BioImageBase(torch.rand(8, *orig_size))\n", "\n", "for i in range(100):\n", " test_eq((8,64,64),RandCropND((64,64))(rand_tensor).shape)" @@ -578,22 +597,47 @@ " if self.spatial_axis is None:\n", " self.spatial_axis = np.random.choice(np.arange(self.ndim), size=np.random.randint(1, self.ndim+1), replace=False, p=None)\n", " \n", - " def encodes(self, x):\n", + " def encodes(self, x:BioImageBase):\n", + " bioimagetype = type(x)\n", " if self.flip:\n", - " return Flip(spatial_axis=self.spatial_axis, lazy=self.lazy)(x)\n", + " return bioimagetype(Flip(spatial_axis=self.spatial_axis, lazy=self.lazy)(x))\n", " else:\n", - " return x" + " return bioimagetype(x)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "orig tensor: metatensor([[[0.8943, 0.3943, 0.2556, 0.8066],\n", + " [0.5016, 0.6177, 0.8749, 0.1229],\n", + " [0.9610, 0.1088, 0.5785, 0.6857],\n", + " [0.5776, 0.7028, 0.5421, 0.3654]]]) \n", + "\n", + "metatensor([[[0.8066, 0.2556, 0.3943, 0.8943],\n", + " [0.1229, 0.8749, 0.6177, 0.5016],\n", + " [0.6857, 0.5785, 0.1088, 0.9610],\n", + " [0.3654, 0.5421, 0.7028, 0.5776]]])\n", + "metatensor([[[0.8943, 0.3943, 0.2556, 0.8066],\n", + " [0.5016, 0.6177, 0.8749, 0.1229],\n", + " [0.9610, 0.1088, 0.5785, 0.6857],\n", + " [0.5776, 0.7028, 0.5421, 0.3654]]])\n", + "metatensor([[[0.8066, 0.2556, 0.3943, 0.8943],\n", + " [0.1229, 0.8749, 0.6177, 0.5016],\n", + " [0.6857, 0.5785, 0.1088, 0.9610],\n", + " [0.3654, 0.5421, 0.7028, 0.5776]]])\n" + ] + } + ], "source": [ "# Define a random tensor\n", "orig_size = (1,4,4)\n", - "rand_tensor = torch.rand(*orig_size) \n", + "rand_tensor = BioImageBase(torch.rand(*orig_size))\n", "\n", "print('orig tensor: ', rand_tensor, '\\n')\n", "\n", @@ -608,7 +652,6 @@ "outputs": [], "source": [ "#| export\n", - "\n", "class RandRot90(RandTransform):\n", " \"\"\"\n", " Randomly rotate an ND image by 90 degrees in the plane specified by axes.\n", @@ -636,22 +679,47 @@ " # if self.spatial_axes is None:\n", " # self.spatial_axes = np.random.choice(np.arange(self.ndim), size=np.random.randint(1, self.ndim+1), replace=False, p=None)\n", " \n", - " def encodes(self, x):\n", + " def encodes(self, x:BioImageBase):\n", + " bioimagetype = type(x)\n", " if self.rot90:\n", - " return Rotate90(k=self.k, spatial_axes=self.spatial_axes, lazy=self.lazy)(x)\n", + " return bioimagetype(Rotate90(k=self.k, spatial_axes=self.spatial_axes, lazy=self.lazy)(x))\n", " else:\n", - " return x" + " return bioimagetype(x)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "orig tensor: metatensor([[[0.3961, 0.2351, 0.4363, 0.3366],\n", + " [0.9416, 0.8529, 0.8646, 0.0091],\n", + " [0.5012, 0.9804, 0.8109, 0.1094],\n", + " [0.9639, 0.5107, 0.4666, 0.8632]]]) \n", + "\n", + "metatensor([[[0.3961, 0.2351, 0.4363, 0.3366],\n", + " [0.9416, 0.8529, 0.8646, 0.0091],\n", + " [0.5012, 0.9804, 0.8109, 0.1094],\n", + " [0.9639, 0.5107, 0.4666, 0.8632]]])\n", + "metatensor([[[0.9639, 0.5012, 0.9416, 0.3961],\n", + " [0.5107, 0.9804, 0.8529, 0.2351],\n", + " [0.4666, 0.8109, 0.8646, 0.4363],\n", + " [0.8632, 0.1094, 0.0091, 0.3366]]])\n", + "metatensor([[[0.8632, 0.4666, 0.5107, 0.9639],\n", + " [0.1094, 0.8109, 0.9804, 0.5012],\n", + " [0.0091, 0.8646, 0.8529, 0.9416],\n", + " [0.3366, 0.4363, 0.2351, 0.3961]]])\n" + ] + } + ], "source": [ "# Define a random tensor\n", "orig_size = (1,4,4)\n", - "rand_tensor = torch.rand(*orig_size) \n", + "rand_tensor = BioImageBase(torch.rand(*orig_size))\n", "\n", "print('orig tensor: ', rand_tensor, '\\n')\n", "\n", diff --git a/nbs/902_tutorial_1.ipynb b/nbs/902_tutorial_1.ipynb index 7843fda..52b6b93 100644 --- a/nbs/902_tutorial_1.ipynb +++ b/nbs/902_tutorial_1.ipynb @@ -35,7 +35,7 @@ "from bioMONAI.datasets import download_medmnist\n", "\n", "from monai.utils import set_determinism\n", - "from monai.transforms import ScaleIntensity\n", + "# from monai.transforms import ScaleIntensity\n", "\n", "set_determinism(0)" ] @@ -49,7 +49,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "cpu\n" + "cuda\n" ] } ], @@ -81,7 +81,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 35461855/35461855 [00:07<00:00, 4622481.94it/s]\n" + "100%|██████████| 35461855/35461855 [00:11<00:00, 2977570.70it/s]\n" ] }, { @@ -97,7 +97,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 11959/11959 [00:02<00:00, 5725.21it/s]\n" + "100%|██████████| 11959/11959 [00:02<00:00, 5486.71it/s]\n" ] }, { @@ -111,7 +111,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 1712/1712 [00:00<00:00, 5795.65it/s]\n" + "100%|██████████| 1712/1712 [00:00<00:00, 5376.07it/s]\n" ] }, { @@ -125,7 +125,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 3421/3421 [00:00<00:00, 5787.04it/s]" + "100%|██████████| 3421/3421 [00:00<00:00, 5501.73it/s]" ] }, { @@ -260,19 +260,19 @@ "2 datasets of sizes 13674,3418\n", "Setting up Pipeline: BioImageMulti.create -> Tensor2BioImage -- {}\n", "Setting up Pipeline: parent_label -> Categorize -- {'vocab': ['0', '1', '2', '3', '4', '5', '6', '7'], 'sort': True, 'add_na': False}\n", - "Setting up after_item: Pipeline: RandCameraNoise -- {'p': 1, 'qe': 0.7, 'gain': 2, 'offset': 100, 'exp_time': 0.1, 'dark_current': 0.06, 'readout': 2.5, 'bitdepth': 16, 'seed': 42, 'simulation': False, 'camera': 'ccd', 'gain_variance': 0.1, 'offset_variance': 5} -> ToTensor\n", + "Setting up after_item: Pipeline: Resample -> ToTensor\n", "Setting up before_batch: Pipeline: \n", "Setting up after_batch: Pipeline: \n", "\n", "Building one batch\n", "Applying item_tfms to the first sample:\n", - " Pipeline: RandCameraNoise -- {'p': 1, 'qe': 0.7, 'gain': 2, 'offset': 100, 'exp_time': 0.1, 'dark_current': 0.06, 'readout': 2.5, 'bitdepth': 16, 'seed': 42, 'simulation': False, 'camera': 'ccd', 'gain_variance': 0.1, 'offset_variance': 5} -> ToTensor\n", + " Pipeline: Resample -> ToTensor\n", " starting from\n", " (BioImageMulti of size 3x28x28, TensorCategory(5))\n", - " applying RandCameraNoise -- {'p': 1, 'qe': 0.7, 'gain': 2, 'offset': 100, 'exp_time': 0.1, 'dark_current': 0.06, 'readout': 2.5, 'bitdepth': 16, 'seed': 42, 'simulation': False, 'camera': 'ccd', 'gain_variance': 0.1, 'offset_variance': 5} gives\n", - " (BioImageMulti of size 3x28x28, TensorCategory(5))\n", + " applying Resample gives\n", + " (BioImageMulti of size 3x14x14, TensorCategory(5))\n", " applying ToTensor gives\n", - " (BioImageMulti of size 3x28x28, TensorCategory(5))\n", + " (BioImageMulti of size 3x14x14, TensorCategory(5))\n", "\n", "Adding the next 3 samples\n", "\n", @@ -299,7 +299,7 @@ " 'get_items': get_image_files,\n", " 'get_y': parent_label,\n", " 'splitter': GrandparentSplitter(),\n", - " 'item_tfms': [RandCameraNoise(p=1, camera='ccd')],\n", + " 'item_tfms': [Resample(2)],\n", " 'bs': bs,\n", "}\n", "\n", @@ -318,19 +318,9 @@ "execution_count": null, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", - "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", - "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", - "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n" - ] - }, { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeMAAAH2CAYAAABDbOQQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAi6klEQVR4nO3de3CVhb3u8d+7riFZ5EZIQhJJYiI3K0ppOV5G3WrbXS27e9eNemz3VsfLsI8X5szRdnpqFUUdnakznem0VMciOOo+cuxmRnToBZXS3X2oG7RYS0EJEgiXhBBuua/be/7oyBQBWT4Bfjv4/czwR9P1rHetZL3r4Y0hTxCGYWgAAMBNxPsBAADwWUcZAwDgjDIGAMAZZQwAgDPKGAAAZ5QxAADOKGMAAJxRxgAAOKOMAQBwRhmfREuWLLEgCGzdunUn5f6CILC77777pNzXX9/nQw89JOe///3v2+zZs62+vt6CILBbbrnlpD02YLThnMfJQhnjU/nhD39oPT099vWvf90SiYT3wwFwinHOnx4x7weA0aW3t9cikb/8He755593fjQATjXO+dODK+PTbGhoyO6991674IILrKyszCorK+2iiy6yV1555biZp59+2iZNmmTJZNKmTZtmL7300lG36ezstLlz51pDQ4MlEglrbm62hx9+2LLZ7El9/B+dlAAKwzmPQnBlfJoNDw/bvn377L777rP6+npLp9P2+uuv27XXXmuLFy+2m2666YjbL1++3FatWmULFiywkpISW7hwod14440Wi8Vszpw5ZvaXk3LWrFkWiUTswQcftJaWFluzZo09+uij1t7ebosXL/7Ex9TU1GRmZu3t7afiKQOfaZzzKEiIk2bx4sWhmYVr164tOJPNZsNMJhPedttt4YwZM474/8wsHDNmTNjZ2XnE7adMmRK2trYe/tjcuXPDVCoVbtu27Yj8k08+GZpZuGHDhiPuc/78+UfcrqWlJWxpaSn4MX+kpKQkvPnmmz91DjhTcM7jZOH7Dw5efvllu+SSSyyVSlksFrN4PG6LFi2yjRs3HnXbq666ympqag7/72g0ajfccIO1tbXZjh07zMzstddesyuuuMLq6uosm80e/nP11Vebmdnq1as/8fG0tbVZW1vbSXyGAP4a5zxOhDI+zZYtW2bXX3+91dfX2wsvvGBr1qyxtWvX2q233mpD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GAAAZ5QxAADOKGMAAJxRxifRkiVLLAgCW7du3Um5vyAI7O677z4p9/XX9/nQQw9J2Y6ODvvGN75hZ599tpWUlFhZWZnNmDHDfvzjH1s2mz2pjxMYDc70c/6hhx6yIAiO++ell146qY/1syzm/QAwevT391tpaak98MADNnHiREun07ZixQq75557bP369fazn/3M+yECOIluv/12++pXv3rUx++44w7bsmXLMf8/aChjFGzKlCn23HPPHfGxq6++2vbs2WPPPfec/eQnP7FkMun06ACcbA0NDdbQ0HDEx9rb223Dhg32rW99y8rLy30e2BmIb1OfZkNDQ3bvvffaBRdcYGVlZVZZWWkXXXSRvfLKK8fNPP300zZp0iRLJpM2bdq0Y35rqLOz0+bOnWsNDQ2WSCSsubnZHn744dPy7ePx48dbJBKxaDR6yo8FjDZn2jn/7LPPWhiGdvvtt5/S43zWcGV8mg0PD9u+ffvsvvvus/r6ekun0/b666/btddea4sXL7abbrrpiNsvX77cVq1aZQsWLLCSkhJbuHCh3XjjjRaLxWzOnDlm9peTctasWRaJROzBBx+0lpYWW7NmjT366KPW3t5uixcv/sTH1NTUZGZ/+RtvIcIwtFwuZ729vfbrX//alixZYvfee6/FYrycgI87E875j+TzeVuyZIm1trba5Zdf/qmyOIEQJ83ixYtDMwvXrl1bcCabzYaZTCa87bbbwhkzZhzx/5lZOGbMmLCzs/OI20+ZMiVsbW09/LG5c+eGqVQq3LZt2xH5J598MjSzcMOGDUfc5/z584+4XUtLS9jS0lLwY3788cdDMwvNLAyCILz//vsLzgJnks/KOf+RX/ziF6GZhY8//vinzuKT8W1qBy+//LJdcskllkqlLBaLWTwet0WLFtnGjRuPuu1VV11lNTU1h/93NBq1G264wdra2mzHjh1mZvbaa6/ZFVdcYXV1dZbNZg//ufrqq83MbPXq1Z/4eNra2qytra3gx3/LLbfY2rVr7Ve/+pV95zvfsR/84Ad2zz33FJwHPmtG+zn/kUWLFlksFrNbbrnlU2fxyfi+4mm2bNkyu/766+26666zb3/721ZbW2uxWMx++tOf2rPPPnvU7Wtra4/7sZ6eHmtoaLCuri579dVXLR6PH/OYe/fuPanPoba29vBj+MpXvmIVFRX23e9+1269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", "text/plain": [ "
" ]