{"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":"markdown","source":"![123](data:image/jpeg;base64,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)","metadata":{}},{"cell_type":"markdown","source":"# استدعاء المكتابات المطلوبه للعمل ","metadata":{}},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport seaborn as sns\nimport cv2\nimport os\nimport re\nimport pydicom\nimport matplotlib.pyplot as plt\nimport warnings\nimport pandas_profiling as pp\nimport glob\nimport ast\nimport math\nimport matplotlib\nimport wandb\nfrom PIL import Image\nimport albumentations as A\nimport torch\nimport pydicom as dicom\nfrom matplotlib import pyplot as plt\nfrom pydicom.pixel_data_handlers.util import apply_voi_lut\nwarnings.filterwarnings(\"ignore\")","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:08.066518Z","iopub.execute_input":"2021-05-23T16:29:08.066953Z","iopub.status.idle":"2021-05-23T16:29:10.172711Z","shell.execute_reply.started":"2021-05-23T16:29:08.066839Z","shell.execute_reply":"2021-05-23T16:29:10.171598Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# تحميل البيانات\n","metadata":{}},{"cell_type":"code","source":"path = '/kaggle/input/siim-covid19-detection/'","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:12.376082Z","iopub.execute_input":"2021-05-23T16:29:12.376485Z","iopub.status.idle":"2021-05-23T16:29:12.381298Z","shell.execute_reply.started":"2021-05-23T16:29:12.376448Z","shell.execute_reply":"2021-05-23T16:29:12.380491Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"os.listdir(path)","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:21.814654Z","iopub.execute_input":"2021-05-23T16:29:21.815166Z","iopub.status.idle":"2021-05-23T16:29:21.825744Z","shell.execute_reply.started":"2021-05-23T16:29:21.815133Z","shell.execute_reply":"2021-05-23T16:29:21.824497Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_image = pd.read_csv(path+'train_image_level.csv')\ntrain_df = pd.read_csv(path+'train_study_level.csv')\nsample_submission = pd.read_csv(path+'sample_submission.csv')","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:22.690920Z","iopub.execute_input":"2021-05-23T16:29:22.691300Z","iopub.status.idle":"2021-05-23T16:29:22.736499Z","shell.execute_reply.started":"2021-05-23T16:29:22.691267Z","shell.execute_reply":"2021-05-23T16:29:22.735517Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# بيان حجم كل ملف من الملفات التى تحتوى على البيانات","metadata":{}},{"cell_type":"code","source":"len(sample_submission)","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:24.968848Z","iopub.execute_input":"2021-05-23T16:29:24.969197Z","iopub.status.idle":"2021-05-23T16:29:24.974374Z","shell.execute_reply.started":"2021-05-23T16:29:24.969167Z","shell.execute_reply":"2021-05-23T16:29:24.973626Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"len(train_image)","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:25.840779Z","iopub.execute_input":"2021-05-23T16:29:25.841380Z","iopub.status.idle":"2021-05-23T16:29:25.845916Z","shell.execute_reply.started":"2021-05-23T16:29:25.841342Z","shell.execute_reply":"2021-05-23T16:29:25.845274Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# عرض بعض البيانات ","metadata":{}},{"cell_type":"code","source":"train_image.head(10)","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:28.053703Z","iopub.execute_input":"2021-05-23T16:29:28.054351Z","iopub.status.idle":"2021-05-23T16:29:28.069880Z","shell.execute_reply.started":"2021-05-23T16:29:28.054314Z","shell.execute_reply":"2021-05-23T16:29:28.068954Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# عرض معلومات عن بيانات التدريب","metadata":{}},{"cell_type":"code","source":"train_image.info()","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:33.952516Z","iopub.execute_input":"2021-05-23T16:29:33.952864Z","iopub.status.idle":"2021-05-23T16:29:33.969599Z","shell.execute_reply.started":"2021-05-23T16:29:33.952835Z","shell.execute_reply":"2021-05-23T16:29:33.968495Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_image.describe()","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:34.976834Z","iopub.execute_input":"2021-05-23T16:29:34.977193Z","iopub.status.idle":"2021-05-23T16:29:35.021189Z","shell.execute_reply.started":"2021-05-23T16:29:34.977164Z","shell.execute_reply":"2021-05-23T16:29:35.020310Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_image.count()","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:36.732440Z","iopub.execute_input":"2021-05-23T16:29:36.732782Z","iopub.status.idle":"2021-05-23T16:29:36.743611Z","shell.execute_reply.started":"2021-05-23T16:29:36.732745Z","shell.execute_reply":"2021-05-23T16:29:36.742795Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_image.isnull()","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:37.809692Z","iopub.execute_input":"2021-05-23T16:29:37.810063Z","iopub.status.idle":"2021-05-23T16:29:37.828347Z","shell.execute_reply.started":"2021-05-23T16:29:37.810028Z","shell.execute_reply":"2021-05-23T16:29:37.827292Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"temp12 = train_image.loc[0, 'StudyInstanceUID']\ntemp12","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:39.053573Z","iopub.execute_input":"2021-05-23T16:29:39.053927Z","iopub.status.idle":"2021-05-23T16:29:39.059481Z","shell.execute_reply.started":"2021-05-23T16:29:39.053897Z","shell.execute_reply":"2021-05-23T16:29:39.058581Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"temp123= train_image.loc[0, 'StudyInstanceUID']\ntemp123","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:41.292882Z","iopub.execute_input":"2021-05-23T16:29:41.293254Z","iopub.status.idle":"2021-05-23T16:29:41.298696Z","shell.execute_reply.started":"2021-05-23T16:29:41.293221Z","shell.execute_reply":"2021-05-23T16:29:41.297924Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"boxes =ast.literal_eval(train_image.loc[0, 'boxes'])\nboxes","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:43.388532Z","iopub.execute_input":"2021-05-23T16:29:43.388863Z","iopub.status.idle":"2021-05-23T16:29:43.396369Z","shell.execute_reply.started":"2021-05-23T16:29:43.388834Z","shell.execute_reply":"2021-05-23T16:29:43.395024Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# بناء داله لمستخرج الصوره\n","metadata":{}},{"cell_type":"markdown","source":"**اظهار بعض الصور**","metadata":{}},{"cell_type":"code","source":"def extraction(i):\n    path_train = path + 'train/' + train_image.loc[i, 'StudyInstanceUID']\n    last_folder_in_path = os.listdir(path_train)[0]\n    path_train = path_train + '/{}/'.format(last_folder_in_path)\n    img_id = train_image.loc[i, 'id'].replace('_image','.dcm')\n    print(img_id)\n    data_file = dicom.dcmread(path_train+img_id)\n    img = data_file.pixel_array\n    return img","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:48.188564Z","iopub.execute_input":"2021-05-23T16:29:48.188912Z","iopub.status.idle":"2021-05-23T16:29:48.196316Z","shell.execute_reply.started":"2021-05-23T16:29:48.188883Z","shell.execute_reply":"2021-05-23T16:29:48.194832Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sample_img = extraction(0)","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:50.159622Z","iopub.execute_input":"2021-05-23T16:29:50.160010Z","iopub.status.idle":"2021-05-23T16:29:50.215122Z","shell.execute_reply.started":"2021-05-23T16:29:50.159978Z","shell.execute_reply":"2021-05-23T16:29:50.214155Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sample_img","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:51.521396Z","iopub.execute_input":"2021-05-23T16:29:51.521779Z","iopub.status.idle":"2021-05-23T16:29:51.529523Z","shell.execute_reply.started":"2021-05-23T16:29:51.521744Z","shell.execute_reply":"2021-05-23T16:29:51.528665Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# اظهار مكان ال **boxes**","metadata":{}},{"cell_type":"code","source":"train_image.loc[0, 'boxes']","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:54.344333Z","iopub.execute_input":"2021-05-23T16:29:54.344920Z","iopub.status.idle":"2021-05-23T16:29:54.351786Z","shell.execute_reply.started":"2021-05-23T16:29:54.344872Z","shell.execute_reply":"2021-05-23T16:29:54.351041Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# عرض بعض  الأمثلة\n**لنقوم برسم بعض الأمثلة مع صورة الصدر بالأشعة السينية والمربعات المحيطة والملصق الذى تبينه**","metadata":{}},{"cell_type":"code","source":"fig, ax = plt.subplots(1,1, figsize=(8,4))\nfor box in boxes:\n    p = matplotlib.patches.Rectangle((box['x'], box['y']),\n                                      box['width'], box['height'],\n                                      ec='r', fc='none', lw=1.5)\n    ax.add_patch(p)\nax.imshow(sample_img, cmap='gray')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:29:56.703650Z","iopub.execute_input":"2021-05-23T16:29:56.704191Z","iopub.status.idle":"2021-05-23T16:29:58.137741Z","shell.execute_reply.started":"2021-05-23T16:29:56.704154Z","shell.execute_reply":"2021-05-23T16:29:58.136694Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, axs = plt.subplots(3, 3, figsize=(20, 20))\nfig.subplots_adjust(hspace = .1, wspace=.1)\naxs = axs.ravel()\n\nfor row in range(9):\n    study = train_image.loc[row, 'StudyInstanceUID']\n    path_in = path+'train/'+study+'/'\n    folder = os.listdir(path_in)\n    path_file = path_in+folder[0]\n    filename = os.listdir(path_file)[0]\n    file_id = filename.split('.')[0]\n    \n    data_file = dicom.dcmread(path_file+'/'+file_id+'.dcm')\n    img = data_file.pixel_array\n    if (train_image.loc[row, 'boxes']!=train_image.loc[row, 'boxes']) == False:\n        boxes = ast.literal_eval(train_image.loc[row, 'boxes'])\n    \n        for box in boxes:\n            p = matplotlib.patches.Rectangle((box['x'], box['y']), box['width'], box['height'],\n                                     ec='r', fc='none', lw=2.)\n            axs[row].add_patch(p)\n    axs[row].imshow(img, cmap='gray')\n    axs[row].set_title(train_image.loc[row, 'label'].split(' ')[0])\n    axs[row].set_xticklabels([])\n    axs[row].set_yticklabels([])","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:00.461929Z","iopub.execute_input":"2021-05-23T16:30:00.462403Z","iopub.status.idle":"2021-05-23T16:30:10.368907Z","shell.execute_reply.started":"2021-05-23T16:30:00.462361Z","shell.execute_reply":"2021-05-23T16:30:10.368150Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"label_dict = {0: 'none', 1: 'simple_opacity', 2: 'double_opacity'}\ndef split_label(s):\n    split_string = s.split(' ')\n    if len(split_string)==6 and 'none' in split_string:\n        return 0\n    elif len(split_string)==6 and 'opacity' in split_string:\n        return 1\n    else:\n        return 2","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:12.426301Z","iopub.execute_input":"2021-05-23T16:30:12.426847Z","iopub.status.idle":"2021-05-23T16:30:12.431874Z","shell.execute_reply.started":"2021-05-23T16:30:12.426797Z","shell.execute_reply":"2021-05-23T16:30:12.431112Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"OpacityCount = train_image['label'].str.count('opacity')\nOpacityCount","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:13.850368Z","iopub.execute_input":"2021-05-23T16:30:13.850998Z","iopub.status.idle":"2021-05-23T16:30:13.866739Z","shell.execute_reply.started":"2021-05-23T16:30:13.850920Z","shell.execute_reply":"2021-05-23T16:30:13.865467Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_image['OpacityCount'] = OpacityCount.values\ntrain_image","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:15.016300Z","iopub.execute_input":"2021-05-23T16:30:15.016664Z","iopub.status.idle":"2021-05-23T16:30:15.036257Z","shell.execute_reply.started":"2021-05-23T16:30:15.016633Z","shell.execute_reply":"2021-05-23T16:30:15.034803Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# لنقوم بتوزيع الفئات الى ثلاث وعرضهم على الرسم\n","metadata":{}},{"cell_type":"code","source":"train_image['OpacityCount'].value_counts().sort_index().rename(label_dict).plot.bar(rot=0, color='orange', alpha=0.6, grid=True, figsize=(8,4), fontsize=16)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:17.136925Z","iopub.execute_input":"2021-05-23T16:30:17.137300Z","iopub.status.idle":"2021-05-23T16:30:17.328404Z","shell.execute_reply.started":"2021-05-23T16:30:17.137267Z","shell.execute_reply":"2021-05-23T16:30:17.327445Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_df.sum()[1:].plot.bar(rot=45, color='orange', alpha=0.6, grid=True, figsize=(8,4), fontsize=12)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:18.326611Z","iopub.execute_input":"2021-05-23T16:30:18.327009Z","iopub.status.idle":"2021-05-23T16:30:18.506601Z","shell.execute_reply.started":"2021-05-23T16:30:18.326966Z","shell.execute_reply":"2021-05-23T16:30:18.505417Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# لنقم بفتحملف test_df","metadata":{}},{"cell_type":"code","source":"train_df['id'].isnull().sum()","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:22.055049Z","iopub.execute_input":"2021-05-23T16:30:22.055424Z","iopub.status.idle":"2021-05-23T16:30:22.065307Z","shell.execute_reply.started":"2021-05-23T16:30:22.055393Z","shell.execute_reply":"2021-05-23T16:30:22.064131Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_df['id'].str.split('_')","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:23.002663Z","iopub.execute_input":"2021-05-23T16:30:23.003049Z","iopub.status.idle":"2021-05-23T16:30:23.018851Z","shell.execute_reply.started":"2021-05-23T16:30:23.003014Z","shell.execute_reply":"2021-05-23T16:30:23.017858Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import matplotlib.pylab as pylab","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:24.110789Z","iopub.execute_input":"2021-05-23T16:30:24.111183Z","iopub.status.idle":"2021-05-23T16:30:24.117027Z","shell.execute_reply.started":"2021-05-23T16:30:24.111148Z","shell.execute_reply":"2021-05-23T16:30:24.115608Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# لنقوم هنا بتوزيع السمات الفصل","metadata":{}},{"cell_type":"code","source":"params = {'legend.fontsize': 'x-large',\n          'figure.figsize': (20, 32),\n         'axes.labelsize': 'x-large',\n         'axes.titlesize':'x-large',\n         'xtick.labelsize':'x-large',\n         'ytick.labelsize':'x-large'}\npylab.rcParams.update(params)\n\nfig, ax = plt.subplots(4,2)\nsns.kdeplot(train_df[\"Negative for Pneumonia\"], shade=True,ax=ax[0,0],color=\"#ffb4a2\")\nax[0,0].set_title(\"Negative for Pneumonia Distribution\",font=\"Serif\", fontsize=20,weight=\"bold\")\nsns.countplot(x = train_df[\"Negative for Pneumonia\"], ax=ax[0,1],color=\"#ffb4a2\")\nax[0,1].set_title(\"Negative for Pneumonia Distribution\",font=\"Serif\", fontsize=20,weight=\"bold\")\n\nsns.kdeplot(train_df[\"Typical Appearance\"], shade=True,ax=ax[1,0],color=\"#e5989b\")\nax[1,0].set_title(\"Typical Appearance Distribution\",font=\"Serif\", fontsize=20,weight=\"bold\")\nsns.countplot(x = train_df[\"Typical Appearance\"], ax=ax[1,1],color=\"#e5989b\")\nax[1,1].set_title(\"Typical Appearance Distribution\",font=\"Serif\", fontsize=20,weight=\"bold\")\n\nsns.kdeplot(train_df[\"Indeterminate Appearance\"], shade=True,ax=ax[2,0],color=\"#b5838d\")\nax[2,0].set_title(\"Indeterminate Appearance Distribution\",font=\"Serif\", fontsize=20,weight=\"bold\")\nsns.countplot(x = train_df[\"Indeterminate Appearance\"], ax=ax[2,1],color=\"#b5838d\")\nax[2,1].set_title(\"Indeterminate Appearance Distribution\",font=\"Serif\", fontsize=20,weight=\"bold\")\n\nsns.kdeplot(train_df[\"Atypical Appearance\"], shade=True,ax=ax[3,0],color=\"#6d6875\")\nax[3,0].set_title(\"Atypical Appearance Distribution\",font=\"Serif\", fontsize=20,weight=\"bold\")\nsns.countplot(x = train_df[\"Atypical Appearance\"], ax=ax[3,1],color=\"#6d6875\")\nax[3,1].set_title(\"Atypical Appearance Distribution\",font=\"Serif\", fontsize=20,weight=\"bold\")\n\nfig.subplots_adjust(wspace=0.2, hspace=0.4, top=0.93)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:26.220577Z","iopub.execute_input":"2021-05-23T16:30:26.220971Z","iopub.status.idle":"2021-05-23T16:30:27.677351Z","shell.execute_reply.started":"2021-05-23T16:30:26.220938Z","shell.execute_reply":"2021-05-23T16:30:27.676168Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pp.ProfileReport(train_image)","metadata":{"execution":{"iopub.status.busy":"2021-05-23T16:30:29.413862Z","iopub.execute_input":"2021-05-23T16:30:29.414262Z","iopub.status.idle":"2021-05-23T16:30:33.583702Z","shell.execute_reply.started":"2021-05-23T16:30:29.414220Z","shell.execute_reply":"2021-05-23T16:30:33.582630Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}