├── Testing Results.png
├── README.md
├── 02_Dataset_Preparation.ipynb
├── 05_FPR_Dataset_Creation.ipynb
└── 04_FPR_Candidate_ROI_extraction.ipynb
/Testing Results.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abhikrm0102/Lung-Nodules-Detection-and-Classification-using-UNet-DenseNet/HEAD/Testing Results.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Lung-Nodules-Detection-and-Classification-using-UNet-DenseNet
2 |
3 | Achieved an accuracy of 99.96 % on Luna-16 dataset .
4 |
5 | Problem Statement
6 |
7 | Lung Nodule detection using Deep Learning
8 | The detection of lung cancer stands as a critical global health priority, emphasizing the significance of early identification for improved patient outcomes. Recent advancements in medical imaging have showcased the exceptional potential of deep learning techniques in addressing this concern. This study delves into the exploration of U-Net and DenseNet, two influential deep learning models, for the task of lung cancer detection using medical imaging data. The proposed methodology harnesses U-Net, a convolutional neural network (CNN) known for its adeptness in semantic segmentation, and DenseNet, a hybrid architecture characterized by dense connections among layers, to automate lung cancer detection from 3D computed tomography (CT) scans.
9 |
10 | •Project Scope
11 | 1. Develop a machine learning (ML) model for lung cancer detection using U-Net and DenseNet architectures.
12 | 2. Achieve an accuracy of at least 99.96% in lung nodule detection and classification.
13 | 3. Achieved validation of 99.9%.
14 | 5. Package the model into a user-friendly web application accessible to healthcare professionals.
15 | 6. Integrate the model seamlessly with existing medical imaging workflows for efficient clinical use.
16 |
17 |
18 | • Data Requirements:
19 | 1. Large dataset of CT scans annotated with lung nodules:
20 | 2. Minimum of 10,000 CT scans with diverse patient demographics.
21 | 3. Each CT scan is labeled with individual nodules, categorized as benign or malignant.
22 | 4. Standard format compatible with deep learning models (e.g., DICOM, NIfTI).
23 | 5. Additional clinical data (optional):
24 | 6. Patient demographics (age, gender, smoking history).
25 | 7. Histopathological diagnosis for confirmed cases.
26 | 8. Treatment history and follow-up data.
27 | 9. Training and Evaluation Methodology.
28 |
29 | • Data Preprocessing:
30 |
31 | 1. Standardize CT scans to a specific resolution and voxel size.
32 | 2. Apply normalization techniques to adjust intensity values.
33 | 3. Segment lung regions and isolate individual nodules using image processing techniques.
34 | 4. Augment the data (optional) to increase model generalizability by adding artificial variations.
35 | 5. Split the data into training, validation, and testing sets.
36 |
37 |
38 | • Model Training:
39 |
40 | 1. Combine U-Net architecture for nodule segmentation with DenseNet architecture for classification.
41 | 2. Fine-tune the pre-trained U-Net and DenseNet models on the lung nodule dataset.
42 | 3. Utilize appropriate loss functions tailored to nodule segmentation and classification.
43 | 4. Optimize hyperparameters (learning rate, optimizer settings) for optimal performance.
44 | 5. Monitor training progress on the validation set and adjust parameters accordingly.
45 |
46 |
47 |
48 | • Model Evaluation:
49 |
50 | 1. Evaluate the trained model's performance on the testing set.
51 | 2. Calculate accuracy, sensitivity, specificity, and other relevant metrics.
52 | 3. Analyze the model's strengths and weaknesses, focusing on false positives and negatives.
53 | 4. Utilize visualization techniques and saliency maps to understand the decision-making process.
54 |
55 |
56 | • Model Optimization:
57 |
58 | 1. Implement techniques like hyperparameter tuning and data augmentation to improve performance.
59 | 2. Explore ensemble learning approaches by combining multiple models for enhanced accuracy.
60 | 3. Consider incorporating explainability methods like SHAP values for transparency and trust.
61 |
62 | 
63 |
64 |
--------------------------------------------------------------------------------
/02_Dataset_Preparation.ipynb:
--------------------------------------------------------------------------------
1 | {"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"gpuType":"T4","authorship_tag":"ABX9TyNyfdCYIpFKjPd5BStf250E"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"},"accelerator":"GPU"},"cells":[{"cell_type":"code","execution_count":1,"metadata":{"id":"-0R1DOosVj7k","executionInfo":{"status":"ok","timestamp":1701349641509,"user_tz":-330,"elapsed":5,"user":{"displayName":"Mohit","userId":"02249881747218603498"}}},"outputs":[],"source":["import numpy as np\n","import os\n","import random\n","from tqdm import tqdm\n","from IPython.display import clear_output\n"]},{"cell_type":"code","source":["from google.colab import drive\n","drive.mount('/content/gdrive')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"nXxKTXJOVokV","executionInfo":{"status":"ok","timestamp":1701349696669,"user_tz":-330,"elapsed":26642,"user":{"displayName":"Mohit","userId":"02249881747218603498"}},"outputId":"197ae3f8-b0e6-420e-839a-aa0b6ba7d412"},"execution_count":2,"outputs":[{"output_type":"stream","name":"stdout","text":["Mounted at /content/gdrive\n"]}]},{"cell_type":"code","source":["lung_names = os.listdir(\"/content/gdrive/MyDrive/archive/processed/lungs_roi\")\n","random.shuffle(lung_names)"],"metadata":{"id":"Fd6zJwqwV7a3","executionInfo":{"status":"ok","timestamp":1701349821824,"user_tz":-330,"elapsed":586,"user":{"displayName":"Mohit","userId":"02249881747218603498"}}},"execution_count":4,"outputs":[]},{"cell_type":"code","source":["n = len(lung_names)\n","s = int(n*.8)\n","train_lung_names = lung_names[:s]\n","test_lung_names = lung_names[s:]\n","print(len(train_lung_names))\n","print(len(test_lung_names))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"WcpBpI0SWWu_","executionInfo":{"status":"ok","timestamp":1701349832773,"user_tz":-330,"elapsed":14,"user":{"displayName":"Mohit","userId":"02249881747218603498"}},"outputId":"53adfb7f-3739-458a-9313-d6cbe7d19749"},"execution_count":5,"outputs":[{"output_type":"stream","name":"stdout","text":["180\n","46\n"]}]},{"cell_type":"code","source":["trainX = []\n","trainY = []\n","\n","for lname in tqdm(train_lung_names):\n"," mname = lname.replace(\"lungs\",\"masks\")\n"," lung = np.load(\"/content/gdrive/MyDrive/archive/processed/lungs_roi/\"+lname)\n"," mask = np.load(\"/content/gdrive/MyDrive/archive/processed/nodule_mask/\"+mname)\n"," trainX.append(lung)\n"," trainY.append(mask)\n","\n","trainX = np.array(trainX, dtype=np.uint8)\n","trainY = np.array(trainY, dtype=np.uint8)\n","\n","np.save(\"trainX.npy\", trainX)\n","np.save(\"trainY.npy\", trainY)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ga9Sin3VWjL_","executionInfo":{"status":"ok","timestamp":1701350051384,"user_tz":-330,"elapsed":1329,"user":{"displayName":"Mohit","userId":"02249881747218603498"}},"outputId":"99c526a1-1b8f-4320-b9d4-29634a02a29c"},"execution_count":11,"outputs":[{"output_type":"stream","name":"stderr","text":["100%|██████████| 180/180 [00:01<00:00, 172.78it/s]\n"]}]},{"cell_type":"code","source":["testX = []\n","testY = []\n","\n","for lname in tqdm(test_lung_names):\n"," mname = lname.replace(\"lungs\",\"masks\")\n"," lung = np.load(\"/content/gdrive/MyDrive/archive/processed/lungs_roi/\"+lname)\n"," mask = np.load(\"/content/gdrive/MyDrive/archive/processed/nodule_mask/\"+mname)\n"," testX.append(lung)\n"," testY.append(mask)\n","\n","testX = np.array(testX, dtype=np.uint8)\n","testY = np.array(testY, dtype=np.uint8)\n","\n","np.save(\"testX.npy\", testX)\n","np.save(\"testY.npy\", testY)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"xu5DpbhvWnh_","executionInfo":{"status":"ok","timestamp":1701350122566,"user_tz":-330,"elapsed":11018,"user":{"displayName":"Mohit","userId":"02249881747218603498"}},"outputId":"ab9a6630-79fc-473a-a334-56cd843d8bda"},"execution_count":13,"outputs":[{"output_type":"stream","name":"stderr","text":["100%|██████████| 46/46 [00:11<00:00, 4.18it/s]\n"]}]},{"cell_type":"code","source":["!cp trainX.npy /content/gdrive/MyDrive/archive/ProcessedData/trainX.npy\n","!cp trainY.npy /content/gdrive/MyDrive/archive/ProcessedData/trainY.npy\n","\n","!cp testX.npy /content/gdrive/MyDrive/archive/ProcessedData/testX.npy\n","!cp testY.npy /content/gdrive/MyDrive/archive/ProcessedData/testY.npy"],"metadata":{"id":"MwLbNhkCXi3I","executionInfo":{"status":"ok","timestamp":1701350245074,"user_tz":-330,"elapsed":817,"user":{"displayName":"Mohit","userId":"02249881747218603498"}}},"execution_count":14,"outputs":[]},{"cell_type":"code","source":[],"metadata":{"id":"CX-1UNZoYHrh"},"execution_count":null,"outputs":[]}]}
--------------------------------------------------------------------------------
/05_FPR_Dataset_Creation.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "nbformat": 4,
3 | "nbformat_minor": 0,
4 | "metadata": {
5 | "colab": {
6 | "provenance": []
7 | },
8 | "kernelspec": {
9 | "name": "python3",
10 | "display_name": "Python 3"
11 | },
12 | "language_info": {
13 | "name": "python"
14 | },
15 | "accelerator": "TPU"
16 | },
17 | "cells": [
18 | {
19 | "cell_type": "code",
20 | "execution_count": null,
21 | "metadata": {
22 | "id": "3-Zj0IG5019A"
23 | },
24 | "outputs": [],
25 | "source": [
26 | "import random\n",
27 | "import os\n",
28 | "import shutil\n",
29 | "from tqdm import tqdm"
30 | ]
31 | },
32 | {
33 | "cell_type": "code",
34 | "source": [
35 | "from google.colab import drive\n",
36 | "drive.mount('/content/gdrive')"
37 | ],
38 | "metadata": {
39 | "colab": {
40 | "base_uri": "https://localhost:8080/"
41 | },
42 | "id": "qkyIgCoy08Cw",
43 | "outputId": "0dab0de4-b1d8-4909-ade9-57d681f3df31"
44 | },
45 | "execution_count": null,
46 | "outputs": [
47 | {
48 | "output_type": "stream",
49 | "name": "stdout",
50 | "text": [
51 | "Mounted at /content/gdrive\n"
52 | ]
53 | }
54 | ]
55 | },
56 | {
57 | "cell_type": "code",
58 | "source": [
59 | "root = \"/content/gdrive/MyDrive/FPRProcessed/non-nodule-initial/\"\n",
60 | "target = \"/content/gdrive/MyDrive/FPRProcessed/non-nodule/\""
61 | ],
62 | "metadata": {
63 | "id": "ayMPxDpZ1AFH"
64 | },
65 | "execution_count": null,
66 | "outputs": []
67 | },
68 | {
69 | "cell_type": "code",
70 | "source": [
71 | "filelist = os.listdir(root)\n"
72 | ],
73 | "metadata": {
74 | "id": "-b76LU2t1Nd0"
75 | },
76 | "execution_count": null,
77 | "outputs": []
78 | },
79 | {
80 | "cell_type": "code",
81 | "source": [
82 | "len(filelist)\n"
83 | ],
84 | "metadata": {
85 | "colab": {
86 | "base_uri": "https://localhost:8080/"
87 | },
88 | "id": "LMUPrAC61Pn1",
89 | "outputId": "b132fb59-8b0d-47c0-e42c-52c2b044f9ea"
90 | },
91 | "execution_count": null,
92 | "outputs": [
93 | {
94 | "output_type": "execute_result",
95 | "data": {
96 | "text/plain": [
97 | "4275"
98 | ]
99 | },
100 | "metadata": {},
101 | "execution_count": 18
102 | }
103 | ]
104 | },
105 | {
106 | "cell_type": "code",
107 | "source": [
108 | "filelist[:10]\n"
109 | ],
110 | "metadata": {
111 | "colab": {
112 | "base_uri": "https://localhost:8080/"
113 | },
114 | "id": "Mo4-rxaI1RmZ",
115 | "outputId": "e8930ee3-2f66-43d3-a98a-0f8b8592d7f9"
116 | },
117 | "execution_count": null,
118 | "outputs": [
119 | {
120 | "output_type": "execute_result",
121 | "data": {
122 | "text/plain": [
123 | "['candidate_6_0_32979.jpg',\n",
124 | " 'candidate_6_0_32980.jpg',\n",
125 | " 'candidate_6_0_32981.jpg',\n",
126 | " 'candidate_6_0_32982.jpg',\n",
127 | " 'candidate_6_0_32983.jpg',\n",
128 | " 'candidate_6_0_32984.jpg',\n",
129 | " 'candidate_6_0_32985.jpg',\n",
130 | " 'candidate_6_0_32986.jpg',\n",
131 | " 'candidate_6_0_32987.jpg',\n",
132 | " 'candidate_6_0_32988.jpg']"
133 | ]
134 | },
135 | "metadata": {},
136 | "execution_count": 19
137 | }
138 | ]
139 | },
140 | {
141 | "cell_type": "code",
142 | "source": [
143 | "random.shuffle(filelist)\n"
144 | ],
145 | "metadata": {
146 | "id": "GnmoB5sr1Ykj"
147 | },
148 | "execution_count": null,
149 | "outputs": []
150 | },
151 | {
152 | "cell_type": "code",
153 | "source": [
154 | "filelist[:10]\n"
155 | ],
156 | "metadata": {
157 | "colab": {
158 | "base_uri": "https://localhost:8080/"
159 | },
160 | "id": "au8pP8mI1kGr",
161 | "outputId": "f8eac114-892d-4f88-db1d-fccab399fc25"
162 | },
163 | "execution_count": null,
164 | "outputs": [
165 | {
166 | "output_type": "execute_result",
167 | "data": {
168 | "text/plain": [
169 | "['candidate_6_0_31815.jpg',\n",
170 | " 'candidate_6_0_12679.jpg',\n",
171 | " 'candidate_6_0_32353.jpg',\n",
172 | " 'candidate_6_0_30111.jpg',\n",
173 | " 'candidate_6_0_29845.jpg',\n",
174 | " 'candidate_6_0_41185.jpg',\n",
175 | " 'candidate_6_0_12314.jpg',\n",
176 | " 'candidate_6_0_32330.jpg',\n",
177 | " 'candidate_6_0_31818.jpg',\n",
178 | " 'candidate_6_0_12693.jpg']"
179 | ]
180 | },
181 | "metadata": {},
182 | "execution_count": 21
183 | }
184 | ]
185 | },
186 | {
187 | "cell_type": "code",
188 | "source": [
189 | "# Number of non nodule images is too high compared to the number of nodule images.\n",
190 | "# Therefore, we will use only 2000 non nodule images.\n",
191 | "finalfiles = filelist[:2000]\n",
192 | "for file in tqdm(finalfiles, total=2000):\n",
193 | " s = root+file\n",
194 | " d = target+file\n",
195 | " shutil.copy(s,d)"
196 | ],
197 | "metadata": {
198 | "colab": {
199 | "base_uri": "https://localhost:8080/"
200 | },
201 | "id": "SNKvVYYu1l_v",
202 | "outputId": "43411bb1-93ff-45f0-ff56-f9ee80065780"
203 | },
204 | "execution_count": null,
205 | "outputs": [
206 | {
207 | "output_type": "stream",
208 | "name": "stderr",
209 | "text": [
210 | "100%|██████████| 2000/2000 [00:58<00:00, 34.33it/s] \n"
211 | ]
212 | }
213 | ]
214 | },
215 | {
216 | "cell_type": "code",
217 | "source": [
218 | "os.chdir(\"/content/gdrive/MyDrive\")\n",
219 | "os.mkdir(\"FPRDataset\")\n",
220 | "os.mkdir(\"FPRDataset/train\")\n",
221 | "os.mkdir(\"FPRDataset/train/nodule\")\n",
222 | "os.mkdir(\"FPRDataset/train/non-nodule\")\n",
223 | "os.mkdir(\"FPRDataset/test\")\n",
224 | "os.mkdir(\"FPRDataset/test/nodule\")\n",
225 | "os.mkdir(\"FPRDataset/test/non-nodule\")"
226 | ],
227 | "metadata": {
228 | "id": "BKsdNFNh13Ut"
229 | },
230 | "execution_count": null,
231 | "outputs": []
232 | },
233 | {
234 | "cell_type": "code",
235 | "source": [
236 | "nodule_files = os.listdir(\"/content/gdrive/MyDrive/FPRProcessed/nodule/\")\n",
237 | "non_nodule_files = os.listdir(\"/content/gdrive/MyDrive/FPRProcessed/non-nodule/\")"
238 | ],
239 | "metadata": {
240 | "id": "IOgJNMuQ2QYU"
241 | },
242 | "execution_count": null,
243 | "outputs": []
244 | },
245 | {
246 | "cell_type": "code",
247 | "source": [
248 | "random.shuffle(nodule_files)\n",
249 | "random.shuffle(non_nodule_files)"
250 | ],
251 | "metadata": {
252 | "id": "c_DyfHa82V9c"
253 | },
254 | "execution_count": null,
255 | "outputs": []
256 | },
257 | {
258 | "cell_type": "code",
259 | "source": [
260 | "n = len(nodule_files)\n",
261 | "split = int(0.75*n)\n",
262 | "for i in nodule_files[:split]:\n",
263 | " shutil.copy(f\"/content/gdrive/MyDrive/FPRProcessed/nodule/{i}\", f\"/content/gdrive/MyDrive/FPRDataset/train/nodule/{i}\")\n",
264 | "for i in nodule_files[split:]:\n",
265 | " shutil.copy(f\"/content/gdrive/MyDrive/FPRProcessed/nodule/{i}\", f\"/content/gdrive/MyDrive/FPRDataset/test/nodule/{i}\")"
266 | ],
267 | "metadata": {
268 | "id": "rcAfa2932Yd1"
269 | },
270 | "execution_count": null,
271 | "outputs": []
272 | },
273 | {
274 | "cell_type": "code",
275 | "source": [
276 | "n = len(non_nodule_files)\n",
277 | "split = int(0.75*n)\n",
278 | "for i in non_nodule_files[:split]:\n",
279 | " shutil.copy(f\"/content/gdrive/MyDrive/FPRProcessed/non-nodule/{i}\", f\"/content/gdrive/MyDrive/FPRDataset/train/non-nodule/{i}\")\n",
280 | "for i in non_nodule_files[split:]:\n",
281 | " shutil.copy(f\"/content/gdrive/MyDrive/FPRProcessed/non-nodule/{i}\", f\"/content/gdrive/MyDrive/FPRDataset/test/non-nodule/{i}\")"
282 | ],
283 | "metadata": {
284 | "id": "Yr_lpssf2bjU"
285 | },
286 | "execution_count": null,
287 | "outputs": []
288 | },
289 | {
290 | "cell_type": "code",
291 | "source": [],
292 | "metadata": {
293 | "id": "CeR1tcDr2xJa"
294 | },
295 | "execution_count": null,
296 | "outputs": []
297 | }
298 | ]
299 | }
--------------------------------------------------------------------------------
/04_FPR_Candidate_ROI_extraction.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "nbformat": 4,
3 | "nbformat_minor": 0,
4 | "metadata": {
5 | "colab": {
6 | "provenance": []
7 | },
8 | "kernelspec": {
9 | "name": "python3",
10 | "display_name": "Python 3"
11 | },
12 | "language_info": {
13 | "name": "python"
14 | },
15 | "accelerator": "TPU"
16 | },
17 | "cells": [
18 | {
19 | "cell_type": "code",
20 | "execution_count": null,
21 | "metadata": {
22 | "colab": {
23 | "base_uri": "https://localhost:8080/"
24 | },
25 | "id": "O8ZTHKw-uMNT",
26 | "outputId": "3daf0acc-b858-4973-cfa5-d470608c6fc9"
27 | },
28 | "outputs": [
29 | {
30 | "output_type": "stream",
31 | "name": "stdout",
32 | "text": [
33 | "Collecting SimpleITK\n",
34 | " Downloading SimpleITK-2.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (52.7 MB)\n",
35 | "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m52.7/52.7 MB\u001b[0m \u001b[31m17.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
36 | "\u001b[?25hInstalling collected packages: SimpleITK\n",
37 | "Successfully installed SimpleITK-2.3.1\n"
38 | ]
39 | }
40 | ],
41 | "source": [
42 | "!pip install SimpleITK"
43 | ]
44 | },
45 | {
46 | "cell_type": "code",
47 | "source": [
48 | "!pip install kaggle"
49 | ],
50 | "metadata": {
51 | "colab": {
52 | "base_uri": "https://localhost:8080/"
53 | },
54 | "id": "Rc1WMf6kuO6F",
55 | "outputId": "6d50be0d-eb0e-468b-a66a-5293d4eb6ede"
56 | },
57 | "execution_count": null,
58 | "outputs": [
59 | {
60 | "output_type": "stream",
61 | "name": "stdout",
62 | "text": [
63 | "Requirement already satisfied: kaggle in /usr/local/lib/python3.10/dist-packages (1.5.16)\n",
64 | "Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.10/dist-packages (from kaggle) (1.16.0)\n",
65 | "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from kaggle) (2023.11.17)\n",
66 | "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.10/dist-packages (from kaggle) (2.8.2)\n",
67 | "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from kaggle) (2.31.0)\n",
68 | "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from kaggle) (4.66.1)\n",
69 | "Requirement already satisfied: python-slugify in /usr/local/lib/python3.10/dist-packages (from kaggle) (8.0.1)\n",
70 | "Requirement already satisfied: urllib3 in /usr/local/lib/python3.10/dist-packages (from kaggle) (2.0.7)\n",
71 | "Requirement already satisfied: bleach in /usr/local/lib/python3.10/dist-packages (from kaggle) (6.1.0)\n",
72 | "Requirement already satisfied: webencodings in /usr/local/lib/python3.10/dist-packages (from bleach->kaggle) (0.5.1)\n",
73 | "Requirement already satisfied: text-unidecode>=1.3 in /usr/local/lib/python3.10/dist-packages (from python-slugify->kaggle) (1.3)\n",
74 | "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->kaggle) (3.3.2)\n",
75 | "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->kaggle) (3.6)\n"
76 | ]
77 | }
78 | ]
79 | },
80 | {
81 | "cell_type": "code",
82 | "source": [
83 | "from google.colab import drive\n",
84 | "drive.mount('/content/gdrive')"
85 | ],
86 | "metadata": {
87 | "colab": {
88 | "base_uri": "https://localhost:8080/"
89 | },
90 | "id": "HNnn2HzbuZKO",
91 | "outputId": "728cf20c-0eb0-4965-c748-19a6035c1d6a"
92 | },
93 | "execution_count": null,
94 | "outputs": [
95 | {
96 | "output_type": "stream",
97 | "name": "stdout",
98 | "text": [
99 | "Mounted at /content/gdrive\n"
100 | ]
101 | }
102 | ]
103 | },
104 | {
105 | "cell_type": "code",
106 | "source": [
107 | "! mkdir ~/.kaggle"
108 | ],
109 | "metadata": {
110 | "id": "yBQ6k_QXubbu"
111 | },
112 | "execution_count": null,
113 | "outputs": []
114 | },
115 | {
116 | "cell_type": "code",
117 | "source": [
118 | "!cp /content/gdrive/MyDrive/kaggle.json ~/.kaggle/kaggle.json"
119 | ],
120 | "metadata": {
121 | "id": "-Nm4N1sVugsL"
122 | },
123 | "execution_count": null,
124 | "outputs": []
125 | },
126 | {
127 | "cell_type": "code",
128 | "source": [
129 | "! kaggle datasets download -d wuwu55/luna16"
130 | ],
131 | "metadata": {
132 | "colab": {
133 | "base_uri": "https://localhost:8080/"
134 | },
135 | "id": "Nmi1njjguwAZ",
136 | "outputId": "0075e8b9-4c3d-40c2-b37d-e97a91169826"
137 | },
138 | "execution_count": null,
139 | "outputs": [
140 | {
141 | "output_type": "stream",
142 | "name": "stdout",
143 | "text": [
144 | "Downloading luna16.zip to /content\n",
145 | "100% 17.6G/17.6G [03:01<00:00, 142MB/s]\n",
146 | "100% 17.6G/17.6G [03:01<00:00, 104MB/s]\n"
147 | ]
148 | }
149 | ]
150 | },
151 | {
152 | "cell_type": "code",
153 | "source": [
154 | "! unzip luna16.zip"
155 | ],
156 | "metadata": {
157 | "colab": {
158 | "base_uri": "https://localhost:8080/"
159 | },
160 | "id": "b5sPQLETuyaW",
161 | "outputId": "1382ed15-3921-46f1-8abf-60aa289cfcfb"
162 | },
163 | "execution_count": null,
164 | "outputs": [
165 | {
166 | "output_type": "stream",
167 | "name": "stdout",
168 | "text": [
169 | "Archive: luna16.zip\n",
170 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085576298661469304872.mhd \n",
171 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085576298661469304872.raw \n",
172 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.107109359065300889765026303943.mhd \n",
173 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.107109359065300889765026303943.raw \n",
174 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.117040183261056772902616195387.mhd \n",
175 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.117040183261056772902616195387.raw \n",
176 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.119209873306155771318545953948.mhd \n",
177 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.119209873306155771318545953948.raw \n",
178 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.119304665257760307862874140576.mhd \n",
179 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.119304665257760307862874140576.raw \n",
180 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.119515474430718803379832249911.mhd \n",
181 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.119515474430718803379832249911.raw \n",
182 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.120842785645314664964010792308.mhd \n",
183 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.120842785645314664964010792308.raw \n",
184 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.123654356399290048011621921476.mhd \n",
185 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.123654356399290048011621921476.raw \n",
186 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.129007566048223160327836686225.mhd \n",
187 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.129007566048223160327836686225.raw \n",
188 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.130765375502800983459674173881.mhd \n",
189 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.130765375502800983459674173881.raw \n",
190 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.136830368929967292376608088362.mhd \n",
191 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.136830368929967292376608088362.raw \n",
192 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.147325126373007278009743173696.mhd \n",
193 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.147325126373007278009743173696.raw \n",
194 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.149893110752986700464921264055.mhd \n",
195 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.149893110752986700464921264055.raw \n",
196 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.150684298696437181894923266019.mhd \n",
197 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.150684298696437181894923266019.raw \n",
198 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.151764021165118974848436095034.mhd \n",
199 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.151764021165118974848436095034.raw \n",
200 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.153646219551578201092527860224.mhd \n",
201 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.153646219551578201092527860224.raw \n",
202 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.156016499715048493339281864474.mhd \n",
203 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.156016499715048493339281864474.raw \n",
204 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.161067514225109999586362698069.mhd \n",
205 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.161067514225109999586362698069.raw \n",
206 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.164790817284381538042494285101.mhd \n",
207 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.164790817284381538042494285101.raw \n",
208 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.167237290696350215427953159586.mhd \n",
209 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.167237290696350215427953159586.raw \n",
210 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.168737928729363683423228050295.mhd \n",
211 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.168737928729363683423228050295.raw \n",
212 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.168985655485163461062675655739.mhd \n",
213 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.168985655485163461062675655739.raw \n",
214 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.170052181746004939527661217512.mhd \n",
215 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.170052181746004939527661217512.raw \n",
216 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.170921541362033046216100409521.mhd \n",
217 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.170921541362033046216100409521.raw \n",
218 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.171682845383273105440297561095.mhd \n",
219 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.171682845383273105440297561095.raw \n",
220 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.173556680294801532247454313511.mhd \n",
221 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.173556680294801532247454313511.raw \n",
222 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.174168737938619557573021395302.mhd \n",
223 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.174168737938619557573021395302.raw \n",
224 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.176030616406569931557298712518.mhd \n",
225 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.176030616406569931557298712518.raw \n",
226 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.177888806135892723698313903329.mhd \n",
227 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.177888806135892723698313903329.raw \n",
228 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.182798854785392200340436516930.mhd \n",
229 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.182798854785392200340436516930.raw \n",
230 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.190937805243443708408459490152.mhd \n",
231 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.190937805243443708408459490152.raw \n",
232 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.200725988589959521302320481687.mhd \n",
233 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.200725988589959521302320481687.raw \n",
234 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.221017801605543296514746423389.mhd \n",
235 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.221017801605543296514746423389.raw \n",
236 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.226564372605239604660221582288.mhd \n",
237 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.226564372605239604660221582288.raw \n",
238 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.233433352108264931671753343044.mhd \n",
239 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.233433352108264931671753343044.raw \n",
240 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.233652865358649579816568545171.mhd \n",
241 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.233652865358649579816568545171.raw \n",
242 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.235217371152464582553341729176.mhd \n",
243 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.235217371152464582553341729176.raw \n",
244 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.240630002689062442926543993263.mhd \n",
245 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.240630002689062442926543993263.raw \n",
246 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.241717018262666382493757419144.mhd \n",
247 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.241717018262666382493757419144.raw \n",
248 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.245248446973732759194067808002.mhd \n",
249 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.245248446973732759194067808002.raw \n",
250 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.247816269490470394602288565775.mhd \n",
251 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.247816269490470394602288565775.raw \n",
252 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.249450003033735700817635168066.mhd \n",
253 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.249450003033735700817635168066.raw \n",
254 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.251215764736737018371915284679.mhd \n",
255 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.251215764736737018371915284679.raw \n",
256 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.252814707117018427472206147014.mhd \n",
257 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.252814707117018427472206147014.raw \n",
258 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.254138388912084634057282064266.mhd \n",
259 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.254138388912084634057282064266.raw \n",
260 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.254473943359963613733707320244.mhd \n",
261 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.254473943359963613733707320244.raw \n",
262 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.255409701134762680010928250229.mhd \n",
263 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.255409701134762680010928250229.raw \n",
264 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.266009527139315622265711325223.mhd \n",
265 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.266009527139315622265711325223.raw \n",
266 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.270951128717816232360812849541.mhd \n",
267 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.270951128717816232360812849541.raw \n",
268 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.275849601663847251574860892603.mhd \n",
269 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.275849601663847251574860892603.raw \n",
270 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.277452631455527999380186898011.mhd \n",
271 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.277452631455527999380186898011.raw \n",
272 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.282779922503707013097174625409.mhd \n",
273 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.282779922503707013097174625409.raw \n",
274 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.286217539434358186648717203667.mhd \n",
275 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.286217539434358186648717203667.raw \n",
276 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.290410217650314119074833254861.mhd \n",
277 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.290410217650314119074833254861.raw \n",
278 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.292194861362266467652267941663.mhd \n",
279 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.292194861362266467652267941663.raw \n",
280 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.297251044869095073091780740645.mhd \n",
281 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.297251044869095073091780740645.raw \n",
282 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.306558074682524259000586270818.mhd \n",
283 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.306558074682524259000586270818.raw \n",
284 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.307921770358136677021532761235.mhd \n",
285 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.307921770358136677021532761235.raw \n",
286 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.308153138776443962077214577161.mhd \n",
287 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.308153138776443962077214577161.raw \n",
288 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.309955999522338651429118207446.mhd \n",
289 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.309955999522338651429118207446.raw \n",
290 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.313756547848086902190878548835.mhd \n",
291 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.313756547848086902190878548835.raw \n",
292 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.315187221221054114974341475212.mhd \n",
293 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.315187221221054114974341475212.raw \n",
294 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.315770913282450940389971401304.mhd \n",
295 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.315770913282450940389971401304.raw \n",
296 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.316900421002460665752357657094.mhd \n",
297 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.316900421002460665752357657094.raw \n",
298 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.316911475886263032009840828684.mhd \n",
299 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.316911475886263032009840828684.raw \n",
300 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.321935195060268166151738328001.mhd \n",
301 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.321935195060268166151738328001.raw \n",
302 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.329404588567903628160652715124.mhd \n",
303 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.329404588567903628160652715124.raw \n",
304 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.329624439086643515259182406526.mhd \n",
305 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.329624439086643515259182406526.raw \n",
306 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.330544495001617450666819906758.mhd \n",
307 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.330544495001617450666819906758.raw \n",
308 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.338447145504282422142824032832.mhd \n",
309 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.338447145504282422142824032832.raw \n",
310 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.341557859428950960906150406596.mhd \n",
311 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.341557859428950960906150406596.raw \n",
312 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.404457313935200882843898832756.mhd \n",
313 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.404457313935200882843898832756.raw \n",
314 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.414288023902112119945238126594.mhd \n",
315 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.414288023902112119945238126594.raw \n",
316 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.416701701108520592702405866796.mhd \n",
317 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.416701701108520592702405866796.raw \n",
318 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.463588161905537526756964393219.mhd \n",
319 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.463588161905537526756964393219.raw \n",
320 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.465032801496479029639448332481.mhd \n",
321 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.465032801496479029639448332481.raw \n",
322 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.475325201787910087416720919680.mhd \n",
323 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.475325201787910087416720919680.raw \n",
324 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.513023675145166449943177283490.mhd \n",
325 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.513023675145166449943177283490.raw \n",
326 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.561423049201987049884663740668.mhd \n",
327 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.561423049201987049884663740668.raw \n",
328 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.569096986145782511000054443951.mhd \n",
329 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.569096986145782511000054443951.raw \n",
330 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.618434772073433276874225174904.mhd \n",
331 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.618434772073433276874225174904.raw \n",
332 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.652347820272212119124022644822.mhd \n",
333 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.652347820272212119124022644822.raw \n",
334 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.658611160253017715059194304729.mhd \n",
335 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.658611160253017715059194304729.raw \n",
336 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.669435869708883155232318480131.mhd \n",
337 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.669435869708883155232318480131.raw \n",
338 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.725236073737175770730904408416.mhd \n",
339 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.725236073737175770730904408416.raw \n",
340 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.803987517543436570820681016103.mhd \n",
341 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.803987517543436570820681016103.raw \n",
342 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.877026508860018521147620598474.mhd \n",
343 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.877026508860018521147620598474.raw \n",
344 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.948414623428298219623354433437.mhd \n",
345 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.948414623428298219623354433437.raw \n",
346 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.955688628308192728558382581802.mhd \n",
347 | " inflating: subset6/subset6/1.3.6.1.4.1.14519.5.2.1.6279.6001.955688628308192728558382581802.raw \n",
348 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.105495028985881418176186711228.mhd \n",
349 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.105495028985881418176186711228.raw \n",
350 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.106379658920626694402549886949.mhd \n",
351 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.106379658920626694402549886949.raw \n",
352 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.111496024928645603833332252962.mhd \n",
353 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.111496024928645603833332252962.raw \n",
354 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.113679818447732724990336702075.mhd \n",
355 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.113679818447732724990336702075.raw \n",
356 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.114249388265341701207347458535.mhd \n",
357 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.114249388265341701207347458535.raw \n",
358 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.116097642684124305074876564522.mhd \n",
359 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.116097642684124305074876564522.raw \n",
360 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.116703382344406837243058680403.mhd \n",
361 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.116703382344406837243058680403.raw \n",
362 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.122621219961396951727742490470.mhd \n",
363 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.122621219961396951727742490470.raw \n",
364 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.125124219978170516876304987559.mhd \n",
365 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.125124219978170516876304987559.raw \n",
366 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.129982010889624423230394257528.mhd \n",
367 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.129982010889624423230394257528.raw \n",
368 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.130036599816889919308975074972.mhd \n",
369 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.130036599816889919308975074972.raw \n",
370 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.131150737314367975651717513386.mhd \n",
371 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.131150737314367975651717513386.raw \n",
372 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.139889514693390832525232698200.mhd \n",
373 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.139889514693390832525232698200.raw \n",
374 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.140253591510022414496468423138.mhd \n",
375 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.140253591510022414496468423138.raw \n",
376 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.141149610914910880857802344415.mhd \n",
377 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.141149610914910880857802344415.raw \n",
378 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.143813757344903170810482790787.mhd \n",
379 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.143813757344903170810482790787.raw \n",
380 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.151669338315069779994664893123.mhd \n",
381 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.151669338315069779994664893123.raw \n",
382 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.159665703190517688573100822213.mhd \n",
383 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.159665703190517688573100822213.raw \n",
384 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.163217526257871051722166468085.mhd \n",
385 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.163217526257871051722166468085.raw \n",
386 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.167500254299688235071950909530.mhd \n",
387 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.167500254299688235071950909530.raw \n",
388 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.170825539570536865106681134236.mhd \n",
389 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.170825539570536865106681134236.raw \n",
390 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.171177995014336749670107905732.mhd \n",
391 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.171177995014336749670107905732.raw \n",
392 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.174692377730646477496286081479.mhd \n",
393 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.174692377730646477496286081479.raw \n",
394 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.179209990684978588019929720099.mhd \n",
395 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.179209990684978588019929720099.raw \n",
396 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.185154482385982570363528682299.mhd \n",
397 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.185154482385982570363528682299.raw \n",
398 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.187803155574314810830688534991.mhd \n",
399 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.187803155574314810830688534991.raw \n",
400 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.195913706607582347421429908613.mhd \n",
401 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.195913706607582347421429908613.raw \n",
402 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.199282854229880908602362094937.mhd \n",
403 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.199282854229880908602362094937.raw \n",
404 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.214252223927572015414741039150.mhd \n",
405 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.214252223927572015414741039150.raw \n",
406 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.215640837032688688030770057224.mhd \n",
407 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.215640837032688688030770057224.raw \n",
408 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.219618492426142913407827034169.mhd \n",
409 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.219618492426142913407827034169.raw \n",
410 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.223650122819238796121876338881.mhd \n",
411 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.223650122819238796121876338881.raw \n",
412 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.226889213794065160713547677129.mhd \n",
413 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.226889213794065160713547677129.raw \n",
414 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.227707494413800460340110762069.mhd \n",
415 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.227707494413800460340110762069.raw \n",
416 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.228934821089041845791238006047.mhd \n",
417 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.228934821089041845791238006047.raw \n",
418 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.230675342744370103160629638194.mhd \n",
419 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.230675342744370103160629638194.raw \n",
420 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.233001470265230594739708503198.mhd \n",
421 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.233001470265230594739708503198.raw \n",
422 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.238019241099704094018548301753.mhd \n",
423 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.238019241099704094018548301753.raw \n",
424 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.242624386080831911167122628616.mhd \n",
425 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.242624386080831911167122628616.raw \n",
426 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.245546033414728092794968890929.mhd \n",
427 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.245546033414728092794968890929.raw \n",
428 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.246758220302211646532176593724.mhd \n",
429 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.246758220302211646532176593724.raw \n",
430 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.248360766706804179966476685510.mhd \n",
431 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.248360766706804179966476685510.raw \n",
432 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.248425363469507808613979846863.mhd \n",
433 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.248425363469507808613979846863.raw \n",
434 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.249032660919473722154870746474.mhd \n",
435 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.249032660919473722154870746474.raw \n",
436 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.249404938669582150398726875826.mhd \n",
437 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.249404938669582150398726875826.raw \n",
438 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.252709517998555732486024866345.mhd \n",
439 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.252709517998555732486024866345.raw \n",
440 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.256542095129414948017808425649.mhd \n",
441 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.256542095129414948017808425649.raw \n",
442 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.261700367741314729940340271960.mhd \n",
443 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.261700367741314729940340271960.raw \n",
444 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.264251211689085893915477907261.mhd \n",
445 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.264251211689085893915477907261.raw \n",
446 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.266581250778073944645044950856.mhd \n",
447 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.266581250778073944645044950856.raw \n",
448 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.270788655216695628640355888562.mhd \n",
449 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.270788655216695628640355888562.raw \n",
450 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.271307051432838466826189754230.mhd \n",
451 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.271307051432838466826189754230.raw \n",
452 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.272348349298439120568330857680.mhd \n",
453 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.272348349298439120568330857680.raw \n",
454 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.276351267409869539593937734609.mhd \n",
455 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.276351267409869539593937734609.raw \n",
456 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.279300249795483097365868125932.mhd \n",
457 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.279300249795483097365868125932.raw \n",
458 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.279953669991076107785464313394.mhd \n",
459 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.279953669991076107785464313394.raw \n",
460 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.280125803152924778388346920341.mhd \n",
461 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.280125803152924778388346920341.raw \n",
462 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.294120933998772507043263238704.mhd \n",
463 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.294120933998772507043263238704.raw \n",
464 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.295462530340364058116953738925.mhd \n",
465 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.295462530340364058116953738925.raw \n",
466 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.297433269262659217151107535012.mhd \n",
467 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.297433269262659217151107535012.raw \n",
468 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.303066851236267189733420290986.mhd \n",
469 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.303066851236267189733420290986.raw \n",
470 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.306112617218006614029386065035.mhd \n",
471 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.306112617218006614029386065035.raw \n",
472 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.307946352302138765071461362398.mhd \n",
473 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.307946352302138765071461362398.raw \n",
474 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.314836406260772370397541392345.mhd \n",
475 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.314836406260772370397541392345.raw \n",
476 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.315918264676377418120578391325.mhd \n",
477 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.315918264676377418120578391325.raw \n",
478 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.323426705628838942177546503237.mhd \n",
479 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.323426705628838942177546503237.raw \n",
480 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.323535944958374186208096541480.mhd \n",
481 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.323535944958374186208096541480.raw \n",
482 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.328789598898469177563438457842.mhd \n",
483 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.328789598898469177563438457842.raw \n",
484 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.332829333783605240302521201463.mhd \n",
485 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.332829333783605240302521201463.raw \n",
486 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.336198008634390022174744544656.mhd \n",
487 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.336198008634390022174744544656.raw \n",
488 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.339039410276356623209709113755.mhd \n",
489 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.339039410276356623209709113755.raw \n",
490 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.362762275895885013176610377950.mhd \n",
491 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.362762275895885013176610377950.raw \n",
492 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.447468612991222399440694673357.mhd \n",
493 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.447468612991222399440694673357.raw \n",
494 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.483655032093002252444764787700.mhd \n",
495 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.483655032093002252444764787700.raw \n",
496 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.550599855064600241623943717588.mhd \n",
497 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.550599855064600241623943717588.raw \n",
498 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.592821488053137951302246128864.mhd \n",
499 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.592821488053137951302246128864.raw \n",
500 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.613212850444255764524630781782.mhd \n",
501 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.613212850444255764524630781782.raw \n",
502 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.664409965623578819357819577077.mhd \n",
503 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.664409965623578819357819577077.raw \n",
504 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.664989286137882319237192185951.mhd \n",
505 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.664989286137882319237192185951.raw \n",
506 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.686193079844756926365065559979.mhd \n",
507 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.686193079844756926365065559979.raw \n",
508 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.749871569713868632259874663577.mhd \n",
509 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.749871569713868632259874663577.raw \n",
510 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.771831598853841017505646275338.mhd \n",
511 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.771831598853841017505646275338.raw \n",
512 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.837810280808122125183730411210.mhd \n",
513 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.837810280808122125183730411210.raw \n",
514 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.897279226481700053115245043064.mhd \n",
515 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.897279226481700053115245043064.raw \n",
516 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.900182736599353600185270496549.mhd \n",
517 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.900182736599353600185270496549.raw \n",
518 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.908250781706513856628130123235.mhd \n",
519 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.908250781706513856628130123235.raw \n",
520 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.944888107209008719031293531091.mhd \n",
521 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.944888107209008719031293531091.raw \n",
522 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.957384617596077920906744920611.mhd \n",
523 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.957384617596077920906744920611.raw \n",
524 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.994459772950022352718462251777.mhd \n",
525 | " inflating: subset7/subset7/1.3.6.1.4.1.14519.5.2.1.6279.6001.994459772950022352718462251777.raw \n",
526 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222365663678666836860.mhd \n",
527 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222365663678666836860.raw \n",
528 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.108193664222196923321844991231.mhd \n",
529 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.108193664222196923321844991231.raw \n",
530 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.131939324905446238286154504249.mhd \n",
531 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.131939324905446238286154504249.raw \n",
532 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.137773550852881583165286615668.mhd \n",
533 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.137773550852881583165286615668.raw \n",
534 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.143622857676008763729469324839.mhd \n",
535 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.143622857676008763729469324839.raw \n",
536 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.149041668385192796520281592139.mhd \n",
537 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.149041668385192796520281592139.raw \n",
538 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.153181766344026020914478182395.mhd \n",
539 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.153181766344026020914478182395.raw \n",
540 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.153732973534937692357111055819.mhd \n",
541 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.153732973534937692357111055819.raw \n",
542 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.161633200801003804714818844696.mhd \n",
543 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.161633200801003804714818844696.raw \n",
544 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.161821150841552408667852639317.mhd \n",
545 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.161821150841552408667852639317.raw \n",
546 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.168833925301530155818375859047.mhd \n",
547 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.168833925301530155818375859047.raw \n",
548 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.172243743899615313644757844726.mhd \n",
549 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.172243743899615313644757844726.raw \n",
550 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.175318131822744218104175746898.mhd \n",
551 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.175318131822744218104175746898.raw \n",
552 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.177086402277715068525592995222.mhd \n",
553 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.177086402277715068525592995222.raw \n",
554 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.179943248049071805421192715219.mhd \n",
555 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.179943248049071805421192715219.raw \n",
556 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.183982839679953938397312236359.mhd \n",
557 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.183982839679953938397312236359.raw \n",
558 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.188059920088313909273628445208.mhd \n",
559 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.188059920088313909273628445208.raw \n",
560 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.194766721609772924944646251928.mhd \n",
561 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.194766721609772924944646251928.raw \n",
562 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.198016798894102791158686961192.mhd \n",
563 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.198016798894102791158686961192.raw \n",
564 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.200513183558872708878454294671.mhd \n",
565 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.200513183558872708878454294671.raw \n",
566 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.202283133206014258077705539227.mhd \n",
567 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.202283133206014258077705539227.raw \n",
568 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.203425588524695836343069893813.mhd \n",
569 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.203425588524695836343069893813.raw \n",
570 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.204287915902811325371247860532.mhd \n",
571 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.204287915902811325371247860532.raw \n",
572 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.204566802718283633558802774757.mhd \n",
573 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.204566802718283633558802774757.raw \n",
574 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.206028343897359374907954580114.mhd \n",
575 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.206028343897359374907954580114.raw \n",
576 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.206097113343059612247503064658.mhd \n",
577 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.206097113343059612247503064658.raw \n",
578 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.207341668080525761926965850679.mhd \n",
579 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.207341668080525761926965850679.raw \n",
580 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.213854687290736562463866711534.mhd \n",
581 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.213854687290736562463866711534.raw \n",
582 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.219254430927834326484477690403.mhd \n",
583 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.219254430927834326484477690403.raw \n",
584 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.225515255547637437801620523312.mhd \n",
585 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.225515255547637437801620523312.raw \n",
586 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.226152078193253087875725735761.mhd \n",
587 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.226152078193253087875725735761.raw \n",
588 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.236698827306171960683086245994.mhd \n",
589 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.236698827306171960683086245994.raw \n",
590 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.239358021703233250639913775427.mhd \n",
591 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.239358021703233250639913775427.raw \n",
592 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.241083615484551649610616348856.mhd \n",
593 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.241083615484551649610616348856.raw \n",
594 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.246178337114401749164850220976.mhd \n",
595 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.246178337114401749164850220976.raw \n",
596 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.247060297988514823071467295949.mhd \n",
597 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.247060297988514823071467295949.raw \n",
598 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.249314567767437206995861966896.mhd \n",
599 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.249314567767437206995861966896.raw \n",
600 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.253317247142837717905329340520.mhd \n",
601 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.253317247142837717905329340520.raw \n",
602 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.254957696184671649675053562027.mhd \n",
603 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.254957696184671649675053562027.raw \n",
604 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.257383535269991165447822992959.mhd \n",
605 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.257383535269991165447822992959.raw \n",
606 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.257515388956260258681136624817.mhd \n",
607 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.257515388956260258681136624817.raw \n",
608 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.259124675432205040899951626253.mhd \n",
609 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.259124675432205040899951626253.raw \n",
610 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.262873069163227096134627700599.mhd \n",
611 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.262873069163227096134627700599.raw \n",
612 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.271220641987745483198036913951.mhd \n",
613 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.271220641987745483198036913951.raw \n",
614 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.272123398257168239653655006815.mhd \n",
615 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.272123398257168239653655006815.raw \n",
616 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.283878926524838648426928238498.mhd \n",
617 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.283878926524838648426928238498.raw \n",
618 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.286422846896797433168187085942.mhd \n",
619 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.286422846896797433168187085942.raw \n",
620 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.286627485198831346082954437212.mhd \n",
621 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.286627485198831346082954437212.raw \n",
622 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.288701997968615460794642979503.mhd \n",
623 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.288701997968615460794642979503.raw \n",
624 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.292049618819567427252971059233.mhd \n",
625 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.292049618819567427252971059233.raw \n",
626 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.296066944953051278419805374238.mhd \n",
627 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.296066944953051278419805374238.raw \n",
628 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.297964221542942838344351735414.mhd \n",
629 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.297964221542942838344351735414.raw \n",
630 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.297988578825170426663869669862.mhd \n",
631 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.297988578825170426663869669862.raw \n",
632 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.299806338046301317870803017534.mhd \n",
633 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.299806338046301317870803017534.raw \n",
634 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.300136985030081433029390459071.mhd \n",
635 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.300136985030081433029390459071.raw \n",
636 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.301462380687644451483231621986.mhd \n",
637 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.301462380687644451483231621986.raw \n",
638 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.302403227435841351528721627052.mhd \n",
639 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.302403227435841351528721627052.raw \n",
640 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.305887072264491016857673607285.mhd \n",
641 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.305887072264491016857673607285.raw \n",
642 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.306520140119968755187868602181.mhd \n",
643 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.306520140119968755187868602181.raw \n",
644 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.317613170669207528926259976488.mhd \n",
645 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.317613170669207528926259976488.raw \n",
646 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.324649110927013926557500550446.mhd \n",
647 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.324649110927013926557500550446.raw \n",
648 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.336102335330125765000317290445.mhd \n",
649 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.336102335330125765000317290445.raw \n",
650 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.339484970190920330170416228517.mhd \n",
651 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.339484970190920330170416228517.raw \n",
652 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.346115813056769250958550383763.mhd \n",
653 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.346115813056769250958550383763.raw \n",
654 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.373433682859788429397781158572.mhd \n",
655 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.373433682859788429397781158572.raw \n",
656 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.397522780537301776672854630421.mhd \n",
657 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.397522780537301776672854630421.raw \n",
658 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.454273545863197752384437758130.mhd \n",
659 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.454273545863197752384437758130.raw \n",
660 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.478062284228419671253422844986.mhd \n",
661 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.478062284228419671253422844986.raw \n",
662 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.486999111981013268988489262668.mhd \n",
663 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.486999111981013268988489262668.raw \n",
664 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.487268565754493433372433148666.mhd \n",
665 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.487268565754493433372433148666.raw \n",
666 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.518487185634324801733841260431.mhd \n",
667 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.518487185634324801733841260431.raw \n",
668 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.608029415915051219877530734559.mhd \n",
669 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.608029415915051219877530734559.raw \n",
670 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.622243923620914676263059698181.mhd \n",
671 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.622243923620914676263059698181.raw \n",
672 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.671278273674156798801285503514.mhd \n",
673 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.671278273674156798801285503514.raw \n",
674 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.675543413149938600000570588203.mhd \n",
675 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.675543413149938600000570588203.raw \n",
676 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.701514276942509393419164159551.mhd \n",
677 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.701514276942509393419164159551.raw \n",
678 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.724562063158320418413995627171.mhd \n",
679 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.724562063158320418413995627171.raw \n",
680 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.766881513533845439335142582269.mhd \n",
681 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.766881513533845439335142582269.raw \n",
682 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.774060103415303828812229821954.mhd \n",
683 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.774060103415303828812229821954.raw \n",
684 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.776800177074349870648765614630.mhd \n",
685 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.776800177074349870648765614630.raw \n",
686 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.792381786708289670758399079830.mhd \n",
687 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.792381786708289670758399079830.raw \n",
688 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.814122498113547115932318256859.mhd \n",
689 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.814122498113547115932318256859.raw \n",
690 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.882070241245008756731854510592.mhd \n",
691 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.882070241245008756731854510592.raw \n",
692 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.888615810685807330497715730842.mhd \n",
693 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.888615810685807330497715730842.raw \n",
694 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.897161587681142256575045076919.mhd \n",
695 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.897161587681142256575045076919.raw \n",
696 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.931383239747372227838946053237.mhd \n",
697 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.931383239747372227838946053237.raw \n",
698 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.939216568327879462530496768794.mhd \n",
699 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.939216568327879462530496768794.raw \n",
700 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.997611074084993415992563148335.mhd \n",
701 | " inflating: subset8/subset8/1.3.6.1.4.1.14519.5.2.1.6279.6001.997611074084993415992563148335.raw \n"
702 | ]
703 | }
704 | ]
705 | },
706 | {
707 | "cell_type": "code",
708 | "source": [
709 | "import os\n",
710 | "import cv2\n",
711 | "import pandas as pd\n",
712 | "import numpy as np\n",
713 | "import matplotlib.pyplot as plt\n",
714 | "from skimage import measure\n",
715 | "import SimpleITK as stk\n",
716 | "from glob import glob\n",
717 | "from tqdm import tqdm"
718 | ],
719 | "metadata": {
720 | "id": "PCnthXWHvg-h"
721 | },
722 | "execution_count": null,
723 | "outputs": []
724 | },
725 | {
726 | "cell_type": "code",
727 | "source": [
728 | "root = \"/content/subset6/\"\n",
729 | "target_root = \"/content/gdrive/MyDrive/FPRProcessed\""
730 | ],
731 | "metadata": {
732 | "id": "uGGMOExwxj0U"
733 | },
734 | "execution_count": null,
735 | "outputs": []
736 | },
737 | {
738 | "cell_type": "code",
739 | "source": [
740 | "subset = 6\n",
741 | "file_list = glob(root+f\"subset{subset}/*.mhd\")\n",
742 | "print(\"Files Count:\",len(file_list))"
743 | ],
744 | "metadata": {
745 | "colab": {
746 | "base_uri": "https://localhost:8080/"
747 | },
748 | "id": "3uyH9pvWyLOB",
749 | "outputId": "1b4df51f-082f-46bd-c862-956ea8d59fa9"
750 | },
751 | "execution_count": null,
752 | "outputs": [
753 | {
754 | "output_type": "stream",
755 | "name": "stdout",
756 | "text": [
757 | "Files Count: 89\n"
758 | ]
759 | }
760 | ]
761 | },
762 | {
763 | "cell_type": "code",
764 | "source": [
765 | "candidates_df = pd.read_csv(\"/content/gdrive/MyDrive/candidates.csv\")"
766 | ],
767 | "metadata": {
768 | "id": "v9r7z-n9yNlq"
769 | },
770 | "execution_count": null,
771 | "outputs": []
772 | },
773 | {
774 | "cell_type": "code",
775 | "source": [
776 | "candidates_df.head()\n"
777 | ],
778 | "metadata": {
779 | "colab": {
780 | "base_uri": "https://localhost:8080/",
781 | "height": 206
782 | },
783 | "id": "PCrrjzo9ySOO",
784 | "outputId": "c8064d72-a8b0-436f-cf67-11e2a1f464b6"
785 | },
786 | "execution_count": null,
787 | "outputs": [
788 | {
789 | "output_type": "execute_result",
790 | "data": {
791 | "text/plain": [
792 | " seriesuid coordX coordY coordZ \\\n",
793 | "0 1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222... -56.08 -67.85 -311.92 \n",
794 | "1 1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222... 53.21 -244.41 -245.17 \n",
795 | "2 1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222... 103.66 -121.80 -286.62 \n",
796 | "3 1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222... -33.66 -72.75 -308.41 \n",
797 | "4 1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222... -32.25 -85.36 -362.51 \n",
798 | "\n",
799 | " class \n",
800 | "0 0 \n",
801 | "1 0 \n",
802 | "2 0 \n",
803 | "3 0 \n",
804 | "4 0 "
805 | ],
806 | "text/html": [
807 | "\n",
808 | "
\n",
809 | "
\n",
810 | "\n",
823 | "
\n",
824 | " \n",
825 | " \n",
826 | " | \n",
827 | " seriesuid | \n",
828 | " coordX | \n",
829 | " coordY | \n",
830 | " coordZ | \n",
831 | " class | \n",
832 | "
\n",
833 | " \n",
834 | " \n",
835 | " \n",
836 | " | 0 | \n",
837 | " 1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222... | \n",
838 | " -56.08 | \n",
839 | " -67.85 | \n",
840 | " -311.92 | \n",
841 | " 0 | \n",
842 | "
\n",
843 | " \n",
844 | " | 1 | \n",
845 | " 1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222... | \n",
846 | " 53.21 | \n",
847 | " -244.41 | \n",
848 | " -245.17 | \n",
849 | " 0 | \n",
850 | "
\n",
851 | " \n",
852 | " | 2 | \n",
853 | " 1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222... | \n",
854 | " 103.66 | \n",
855 | " -121.80 | \n",
856 | " -286.62 | \n",
857 | " 0 | \n",
858 | "
\n",
859 | " \n",
860 | " | 3 | \n",
861 | " 1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222... | \n",
862 | " -33.66 | \n",
863 | " -72.75 | \n",
864 | " -308.41 | \n",
865 | " 0 | \n",
866 | "
\n",
867 | " \n",
868 | " | 4 | \n",
869 | " 1.3.6.1.4.1.14519.5.2.1.6279.6001.100225287222... | \n",
870 | " -32.25 | \n",
871 | " -85.36 | \n",
872 | " -362.51 | \n",
873 | " 0 | \n",
874 | "
\n",
875 | " \n",
876 | "
\n",
877 | "
\n",
878 | "
\n",
1085 | "
\n"
1086 | ]
1087 | },
1088 | "metadata": {},
1089 | "execution_count": 12
1090 | }
1091 | ]
1092 | },
1093 | {
1094 | "cell_type": "code",
1095 | "source": [
1096 | "print(\"Total Candidates:\",len(candidates_df))\n",
1097 | "print(\"Positives:\",candidates_df['class'].sum())"
1098 | ],
1099 | "metadata": {
1100 | "colab": {
1101 | "base_uri": "https://localhost:8080/"
1102 | },
1103 | "id": "OEolPMh0yUMG",
1104 | "outputId": "e28c4b42-d4b3-477f-bd25-838d410e0c5b"
1105 | },
1106 | "execution_count": null,
1107 | "outputs": [
1108 | {
1109 | "output_type": "stream",
1110 | "name": "stdout",
1111 | "text": [
1112 | "Total Candidates: 551065\n",
1113 | "Positives: 1351\n"
1114 | ]
1115 | }
1116 | ]
1117 | },
1118 | {
1119 | "cell_type": "code",
1120 | "source": [
1121 | "candidates_df.info()\n"
1122 | ],
1123 | "metadata": {
1124 | "colab": {
1125 | "base_uri": "https://localhost:8080/"
1126 | },
1127 | "id": "12AGaCMKyWWO",
1128 | "outputId": "46c77445-712e-481d-e419-2e8dcd11d1f5"
1129 | },
1130 | "execution_count": null,
1131 | "outputs": [
1132 | {
1133 | "output_type": "stream",
1134 | "name": "stdout",
1135 | "text": [
1136 | "\n",
1137 | "RangeIndex: 551065 entries, 0 to 551064\n",
1138 | "Data columns (total 5 columns):\n",
1139 | " # Column Non-Null Count Dtype \n",
1140 | "--- ------ -------------- ----- \n",
1141 | " 0 seriesuid 551065 non-null object \n",
1142 | " 1 coordX 551065 non-null float64\n",
1143 | " 2 coordY 551065 non-null float64\n",
1144 | " 3 coordZ 551065 non-null float64\n",
1145 | " 4 class 551065 non-null int64 \n",
1146 | "dtypes: float64(3), int64(1), object(1)\n",
1147 | "memory usage: 21.0+ MB\n"
1148 | ]
1149 | }
1150 | ]
1151 | },
1152 | {
1153 | "cell_type": "code",
1154 | "source": [
1155 | "def get_filename(file_list, file):\n",
1156 | " for f in file_list:\n",
1157 | " if file in f:\n",
1158 | " return f"
1159 | ],
1160 | "metadata": {
1161 | "id": "Rq5ZqwmOyYbX"
1162 | },
1163 | "execution_count": null,
1164 | "outputs": []
1165 | },
1166 | {
1167 | "cell_type": "code",
1168 | "source": [
1169 | "def load_mhd(file):\n",
1170 | " mhdimage = stk.ReadImage(file)\n",
1171 | " ct_scan = stk.GetArrayFromImage(mhdimage)\n",
1172 | " origin = np.array(list(mhdimage.GetOrigin()))\n",
1173 | " space = np.array(list(mhdimage.GetSpacing()))\n",
1174 | " return ct_scan, origin, space\n"
1175 | ],
1176 | "metadata": {
1177 | "id": "tfUTBaQQyazU"
1178 | },
1179 | "execution_count": null,
1180 | "outputs": []
1181 | },
1182 | {
1183 | "cell_type": "code",
1184 | "source": [
1185 | "candidates_df[\"filename\"] = candidates_df[\"seriesuid\"].map(lambda file: get_filename(file_list, file))\n",
1186 | "candidates_df = candidates_df.dropna()\n",
1187 | "print(len(candidates_df))\n"
1188 | ],
1189 | "metadata": {
1190 | "colab": {
1191 | "base_uri": "https://localhost:8080/"
1192 | },
1193 | "id": "FGxBsuLeycn1",
1194 | "outputId": "e5297915-1a6f-4c1b-e04f-15ad9beaf638"
1195 | },
1196 | "execution_count": null,
1197 | "outputs": [
1198 | {
1199 | "output_type": "stream",
1200 | "name": "stdout",
1201 | "text": [
1202 | "52537\n"
1203 | ]
1204 | }
1205 | ]
1206 | },
1207 | {
1208 | "cell_type": "code",
1209 | "source": [
1210 | "candidates_df.head()\n"
1211 | ],
1212 | "metadata": {
1213 | "colab": {
1214 | "base_uri": "https://localhost:8080/",
1215 | "height": 206
1216 | },
1217 | "id": "hivB1vnPyegE",
1218 | "outputId": "d2c74871-b3b0-4b9f-f537-f4d90b979a72"
1219 | },
1220 | "execution_count": null,
1221 | "outputs": [
1222 | {
1223 | "output_type": "execute_result",
1224 | "data": {
1225 | "text/plain": [
1226 | " seriesuid coordX coordY \\\n",
1227 | "12105 1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085... -76.16 52.87 \n",
1228 | "12106 1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085... -97.16 -12.95 \n",
1229 | "12107 1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085... -120.27 29.06 \n",
1230 | "12108 1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085... 20.46 24.86 \n",
1231 | "12109 1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085... 79.98 -12.95 \n",
1232 | "\n",
1233 | " coordZ class filename \n",
1234 | "12105 -209.26 0 /content/subset6/subset6/1.3.6.1.4.1.14519.5.2... \n",
1235 | "12106 -93.76 0 /content/subset6/subset6/1.3.6.1.4.1.14519.5.2... \n",
1236 | "12107 -284.61 0 /content/subset6/subset6/1.3.6.1.4.1.14519.5.2... \n",
1237 | "12108 -277.57 0 /content/subset6/subset6/1.3.6.1.4.1.14519.5.2... \n",
1238 | "12109 -237.43 0 /content/subset6/subset6/1.3.6.1.4.1.14519.5.2... "
1239 | ],
1240 | "text/html": [
1241 | "\n",
1242 | " \n",
1243 | "
\n",
1244 | "\n",
1257 | "
\n",
1258 | " \n",
1259 | " \n",
1260 | " | \n",
1261 | " seriesuid | \n",
1262 | " coordX | \n",
1263 | " coordY | \n",
1264 | " coordZ | \n",
1265 | " class | \n",
1266 | " filename | \n",
1267 | "
\n",
1268 | " \n",
1269 | " \n",
1270 | " \n",
1271 | " | 12105 | \n",
1272 | " 1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085... | \n",
1273 | " -76.16 | \n",
1274 | " 52.87 | \n",
1275 | " -209.26 | \n",
1276 | " 0 | \n",
1277 | " /content/subset6/subset6/1.3.6.1.4.1.14519.5.2... | \n",
1278 | "
\n",
1279 | " \n",
1280 | " | 12106 | \n",
1281 | " 1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085... | \n",
1282 | " -97.16 | \n",
1283 | " -12.95 | \n",
1284 | " -93.76 | \n",
1285 | " 0 | \n",
1286 | " /content/subset6/subset6/1.3.6.1.4.1.14519.5.2... | \n",
1287 | "
\n",
1288 | " \n",
1289 | " | 12107 | \n",
1290 | " 1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085... | \n",
1291 | " -120.27 | \n",
1292 | " 29.06 | \n",
1293 | " -284.61 | \n",
1294 | " 0 | \n",
1295 | " /content/subset6/subset6/1.3.6.1.4.1.14519.5.2... | \n",
1296 | "
\n",
1297 | " \n",
1298 | " | 12108 | \n",
1299 | " 1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085... | \n",
1300 | " 20.46 | \n",
1301 | " 24.86 | \n",
1302 | " -277.57 | \n",
1303 | " 0 | \n",
1304 | " /content/subset6/subset6/1.3.6.1.4.1.14519.5.2... | \n",
1305 | "
\n",
1306 | " \n",
1307 | " | 12109 | \n",
1308 | " 1.3.6.1.4.1.14519.5.2.1.6279.6001.106630482085... | \n",
1309 | " 79.98 | \n",
1310 | " -12.95 | \n",
1311 | " -237.43 | \n",
1312 | " 0 | \n",
1313 | " /content/subset6/subset6/1.3.6.1.4.1.14519.5.2... | \n",
1314 | "
\n",
1315 | " \n",
1316 | "
\n",
1317 | "
\n",
1318 | "
\n",
1525 | "
\n"
1526 | ]
1527 | },
1528 | "metadata": {},
1529 | "execution_count": 18
1530 | }
1531 | ]
1532 | },
1533 | {
1534 | "cell_type": "code",
1535 | "source": [
1536 | "clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8)) # CLAHE(Contrast Limited Adaptive Histogram Equalization) filter for enhancing the contrast of an image\n",
1537 | "for i,file in tqdm(enumerate(np.unique(candidates_df['filename'].values)), total=len(np.unique(candidates_df['filename'].values))):\n",
1538 | " candidates = candidates_df[candidates_df[\"filename\"]==file]\n",
1539 | " ct, origin, space = load_mhd(file)\n",
1540 | " num_z, height, width = ct.shape\n",
1541 | " ct_norm = cv2.normalize(ct, None, 0, 255, cv2.NORM_MINMAX)\n",
1542 | " for idx, row in candidates.iterrows():\n",
1543 | " node_x = int(row[\"coordX\"]) # x-coordinate of the candidate\n",
1544 | " node_y = int(row[\"coordY\"]) # y-coordinate of the candidate\n",
1545 | " node_z = int(row[\"coordZ\"]) # z-coordinate of the candidate\n",
1546 | " c = int(row[\"class\"]) # class of the candidate (1: nodule, 0: non-nodule)\n",
1547 | "\n",
1548 | " center = np.array([node_x, node_y, node_z]) # nodule center\n",
1549 | " v_center = np.rint((center-origin)/space) # nodule center in voxel space (still x,y,z ordering)\n",
1550 | "\n",
1551 | " img_norm = ct_norm[int(v_center[2]),:,:] # a slice of the CT scan containing the candidate\n",
1552 | " img_norm = cv2.resize(img_norm, (512,512)) # resize the image to 512x512\n",
1553 | " img_norm_improved = clahe.apply(img_norm.astype(np.uint8)) # apply CLAHE filter to the image\n",
1554 | "\n",
1555 | " x=abs(int(v_center[0]))\n",
1556 | " y=abs(int(v_center[1]))\n",
1557 | " box = img_norm_improved[max(0,y-25):min(y+25,512),max(0,x-25):min(x+25,512)] # extract a box of size 25x25 around the candidate\n",
1558 | " if box.shape != (50,50):\n",
1559 | " box = cv2.resize(box, (50,50))\n",
1560 | "\n",
1561 | " if c: # if the candidate is a nodule\n",
1562 | " # applying different image transformations to increase the number of nodule candidates\n",
1563 | " cv2.imwrite(os.path.join(target_root+\"/nodule/\", f\"candidate_{subset}_{c}_{idx}.jpg\"),box)\n",
1564 | " cv2.imwrite(os.path.join(target_root+\"/nodule/\", f\"candidate_{subset}_{c}_{idx}_1.jpg\"),cv2.rotate(box,cv2.ROTATE_90_CLOCKWISE))\n",
1565 | " cv2.imwrite(os.path.join(target_root+\"/nodule/\", f\"candidate_{subset}_{c}_{idx}_2.jpg\"),cv2.rotate(box, cv2.ROTATE_90_COUNTERCLOCKWISE))\n",
1566 | " cv2.imwrite(os.path.join(target_root+\"/nodule/\", f\"candidate_{subset}_{c}_{idx}_3.jpg\"),cv2.rotate(box, cv2.ROTATE_180))\n",
1567 | " cv2.imwrite(os.path.join(target_root+\"/nodule/\", f\"candidate_{subset}_{c}_{idx}_4.jpg\"),cv2.flip(box, 1))\n",
1568 | " else: # if the candidate is not a nodule\n",
1569 | " cv2.imwrite(os.path.join(target_root+\"/non-nodule-initial/\", f\"candidate_{subset}_{c}_{idx}.jpg\"),box)"
1570 | ],
1571 | "metadata": {
1572 | "colab": {
1573 | "base_uri": "https://localhost:8080/"
1574 | },
1575 | "id": "4cyDeQ6kyhLV",
1576 | "outputId": "39641cdf-e8d8-4761-dde0-489c2838d51f"
1577 | },
1578 | "execution_count": null,
1579 | "outputs": [
1580 | {
1581 | "output_type": "stream",
1582 | "name": "stderr",
1583 | "text": [
1584 | "100%|██████████| 89/89 [09:22<00:00, 6.32s/it]\n"
1585 | ]
1586 | }
1587 | ]
1588 | },
1589 | {
1590 | "cell_type": "code",
1591 | "source": [],
1592 | "metadata": {
1593 | "id": "kTLaNc_wynkQ"
1594 | },
1595 | "execution_count": null,
1596 | "outputs": []
1597 | }
1598 | ]
1599 | }
--------------------------------------------------------------------------------