{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport pydicom\nimport os\nimport cv2\nimport matplotlib.pyplot as plt\nfrom tqdm import tqdm\nfrom sklearn.model_selection import KFold, StratifiedKFold\nfrom tensorflow.keras.metrics import TruePositives, FalsePositives, TrueNegatives, FalseNegatives, AUC, BinaryAccuracy\nimport tensorflow as tf\nfrom tensorflow.keras.models import Sequential, load_model, Model\nimport random\nfrom skimage import color\nfrom tensorflow.keras.layers import Concatenate, Dropout, BatchNormalization, Conv2D, MaxPooling2D, Flatten, GlobalAveragePooling2D, Dense\nfrom PIL import Image, ImageDraw \nimport tarfile\nimport nibabel as nib\nimport matplotlib.gridspec as gridspec","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2021-09-12T11:37:55.304662Z","iopub.execute_input":"2021-09-12T11:37:55.305626Z","iopub.status.idle":"2021-09-12T11:37:55.312697Z","shell.execute_reply.started":"2021-09-12T11:37:55.305581Z","shell.execute_reply":"2021-09-12T11:37:55.311736Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ROOT_PATH = \"../input/rsna-miccai-brain-tumor-radiogenomic-classification/\"\nTRAIN = pd.read_csv(\"../input/rsna-miccai-brain-tumor-radiogenomic-classification/train_labels.csv\")\nTRAIN = TRAIN.loc[~TRAIN.BraTS21ID.isin([109, 123, 709])]\nTRAIN.reset_index(drop=True, inplace=True)","metadata":{"execution":{"iopub.status.busy":"2021-09-12T11:37:55.313994Z","iopub.execute_input":"2021-09-12T11:37:55.314226Z","iopub.status.idle":"2021-09-12T11:37:55.332893Z","shell.execute_reply.started":"2021-09-12T11:37:55.314197Z","shell.execute_reply":"2021-09-12T11:37:55.332039Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"WIDTH_RESIZE = 200\nCOUNT_IMAGE = 3\nBATCH = 2\nN_FOLDS = 5\nEPOCHS=20","metadata":{"execution":{"iopub.status.busy":"2021-09-12T11:37:55.334493Z","iopub.execute_input":"2021-09-12T11:37:55.335073Z","iopub.status.idle":"2021-09-12T11:37:55.344494Z","shell.execute_reply.started":"2021-09-12T11:37:55.335033Z","shell.execute_reply":"2021-09-12T11:37:55.343642Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def getpath(ids):\n    ids = str(ids)\n    len1 = len(ids)\n    return \"\".join([*[\"0\" for _ in range(5-len1)],ids])\n    ","metadata":{"execution":{"iopub.status.busy":"2021-09-12T11:37:55.345860Z","iopub.execute_input":"2021-09-12T11:37:55.346640Z","iopub.status.idle":"2021-09-12T11:37:55.358448Z","shell.execute_reply.started":"2021-09-12T11:37:55.346606Z","shell.execute_reply":"2021-09-12T11:37:55.357595Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def get_maximum_image(ids,types=\"T1wCE\"):\n    path=ROOT_PATH+\"train\"+\"/\"+getpath(ids)+\"/\"+types+\"/\"\n    dicom = sorted(os.listdir(path), key=lambda v:int(v.split(\"-\")[1][:-4]))\n    image = []\n    for p in dicom:\n#         imgd = findArea(path+p)\n        di = pydicom.read_file(path+p)\n        imgd = di.pixel_array\n        if not type(imgd)== bool:\n            image.append(imgd)\n    count_image = len(image)//COUNT_IMAGE\n    return_image = []\n    for i in range(COUNT_IMAGE):\n        images = image[i*count_image:(i+1)*count_image]\n        if types==\"T1w\":   \n            im = tf.keras.layers.Maximum()(images).numpy()\n        else:\n            im = tf.keras.layers.Maximum()(images).numpy()\n        return_image.append(im)\n    return return_image\n#     return cv2.resize(image, (WIDTH_RESIZE,WIDTH_RESIZE))","metadata":{"execution":{"iopub.status.busy":"2021-09-12T11:37:55.360135Z","iopub.execute_input":"2021-09-12T11:37:55.360975Z","iopub.status.idle":"2021-09-12T11:37:55.372271Z","shell.execute_reply.started":"2021-09-12T11:37:55.360929Z","shell.execute_reply":"2021-09-12T11:37:55.371670Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"image1 = get_maximum_image(0,types=\"T1wCE\")","metadata":{"execution":{"iopub.status.busy":"2021-09-12T11:37:55.373545Z","iopub.execute_input":"2021-09-12T11:37:55.373992Z","iopub.status.idle":"2021-09-12T11:37:56.054501Z","shell.execute_reply.started":"2021-09-12T11:37:55.373952Z","shell.execute_reply":"2021-09-12T11:37:56.053687Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize = (15,15))\ngs1 = gridspec.GridSpec(1,3)\ngs1.update(wspace=0.00, hspace=0.0)\nfor i in range(3):\n    img = image1[i]\n    ax1 = plt.subplot(gs1[i])\n    plt.axis('on')\n    ax1.set_xticklabels([])\n    ax1.set_yticklabels([])\n    ax1.set_aspect('equal')\n    ax1.imshow(img)","metadata":{"execution":{"iopub.status.busy":"2021-09-12T11:37:56.056082Z","iopub.execute_input":"2021-09-12T11:37:56.056310Z","iopub.status.idle":"2021-09-12T11:37:56.531119Z","shell.execute_reply.started":"2021-09-12T11:37:56.056284Z","shell.execute_reply":"2021-09-12T11:37:56.530462Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}