[467f44]: / 1ProcessNoduleDataset.ipynb

Download this file

1621 lines (1620 with data), 202.2 kB

{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. Process Nodule Dataset\n",
    "\n",
    "## Summary\n",
    "\n",
    "* Load scans and convert to pixels\n",
    "* Process image by normalizing, then removing everything outside of the lung tissue\n",
    "* Generate nodule masks by loading nodule coordiates from list3.2 csv file and using the cellmagicwand tool over that coordinate"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "_cell_guid": "1d12eab6-3340-fa57-84a1-91fe13886996",
    "_uuid": "37d58725e31aa7cac17df51f9308d146ab39770f",
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#EDIT HERE##############################\n",
    "\n",
    "#File paths\n",
    "metadatapath=\"LIDC/LIDC-IDRI_MetaData.csv\"\n",
    "list32path=\"LIDC/list3.2.csv\"\n",
    "DOIfolderpath='LIDC/DOI/'\n",
    "datafolder='processeddata'\n",
    "\n",
    "########################################\n",
    "\n",
    "import cell_magic_wand as cmw\n",
    "import numpy as np # linear algebra\n",
    "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
    "import dicom\n",
    "import os\n",
    "import scipy.ndimage\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.animation as animation\n",
    "import time\n",
    "\n",
    "from skimage import measure, morphology\n",
    "#from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n",
    "from sklearn.cluster import KMeans\n",
    "from skimage.transform import resize\n",
    "from skimage.draw import circle\n",
    "#Load metadata\n",
    "meta=pd.read_csv(metadatapath)\n",
    "meta=meta.drop(meta[meta['Modality']!='CT'].index)\n",
    "meta=meta.reset_index()\n",
    "\n",
    "#Get folder names of CT data for each patient\n",
    "patients=[DOIfolderpath+meta['Patient Id'][i] for i in range(len(meta))]\n",
    "datfolder=[]\n",
    "for i in range(0,len(meta)-1):\n",
    "    for path in os.listdir(patients[i]):\n",
    "        if os.path.exists(patients[i]+'/'+path+'/'+meta['Series UID'][i]):\n",
    "            datfolder.append(patients[i]+'/'+path+'/'+meta['Series UID'][i])\n",
    "patients=datfolder\n",
    "\n",
    "#Load nodules locations\n",
    "nodulelocations=pd.read_csv(list32path)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "_cell_guid": "4f50e5b1-c1e8-14a8-591b-eb466e5adc0d",
    "_uuid": "6349e54cf8bf403404c2f71e34f6b7f0ed0341ba",
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Load the scans in given folder path\n",
    "# code sourced from https://www.kaggle.com/gzuidhof/full-preprocessing-tutorial\n",
    "def load_scan(path):\n",
    "    slices = [dicom.read_file(path + '/' + s, force=True) for s in os.listdir(path) if s.endswith('.dcm')]\n",
    "    slices.sort(key = lambda x: float(x.ImagePositionPatient[2]), reverse=True)\n",
    "    try:\n",
    "        slice_thickness = np.abs(slices[0].ImagePositionPatient[2] - slices[1].ImagePositionPatient[2])\n",
    "    except:\n",
    "        slice_thickness = np.abs(slices[0].SliceLocation - slices[1].SliceLocation)\n",
    "        \n",
    "    for s in slices:\n",
    "        s.SliceThickness = slice_thickness\n",
    "        \n",
    "    return slices\n",
    "\n",
    "#convert to ndarray\n",
    "def get_pixels_hu(slices):\n",
    "    image = np.stack([s.pixel_array for s in slices])\n",
    "    # Convert to int16 (from sometimes int16), \n",
    "    # should be possible as values should always be low enough (<32k)\n",
    "    image = image.astype(np.int16)\n",
    "\n",
    "    # Set outside-of-scan pixels to 0\n",
    "    # The intercept is usually -1024, so air is approximately 0\n",
    "    image[image == -2000] = 0\n",
    "    \n",
    "    # Convert to Hounsfield units (HU)\n",
    "    for slice_number in range(len(slices)):\n",
    "        \n",
    "        intercept = slices[slice_number].RescaleIntercept\n",
    "        slope = slices[slice_number].RescaleSlope\n",
    "        \n",
    "        if slope != 1:\n",
    "            image[slice_number] = slope * image[slice_number].astype(np.float64)\n",
    "            image[slice_number] = image[slice_number].astype(np.int16)\n",
    "            \n",
    "        image[slice_number] += np.int16(intercept)\n",
    "    \n",
    "    return np.array(image, dtype=np.int16)\n",
    "\n",
    "def largest_label_volume(im, bg=-1):\n",
    "    vals, counts = np.unique(im, return_counts=True)\n",
    "\n",
    "    counts = counts[vals != bg]\n",
    "    vals = vals[vals != bg]\n",
    "\n",
    "    if len(counts) > 0:\n",
    "        return vals[np.argmax(counts)]\n",
    "    else:\n",
    "        return None\n",
    "    \n",
    "def segment_lung_mask(image, fill_lung_structures=True, dilate=False):\n",
    "    \n",
    "    # not actually binary, but 1 and 2. \n",
    "    # 0 is treated as background, which we do not want\n",
    "    binary_image = np.array(image > -320, dtype=np.int8)+1\n",
    "    labels = measure.label(binary_image)\n",
    "    \n",
    "    # Pick the pixel in the very corner to determine which label is air.\n",
    "    #   Improvement: Pick multiple background labels from around the patient\n",
    "    #   More resistant to \"trays\" on which the patient lays cutting the air \n",
    "    #   around the person in half\n",
    "    background_label = labels[0,0,0]\n",
    "    \n",
    "    #Fill the air around the person\n",
    "    binary_image[background_label == labels] = 2\n",
    "    \n",
    "    # Method of filling the lung structures (that is superior to something like \n",
    "    # morphological closing)\n",
    "    if fill_lung_structures==True:\n",
    "        # For every slice we determine the largest solid structure\n",
    "        for i, axial_slice in enumerate(binary_image):\n",
    "            axial_slice = axial_slice - 1\n",
    "            labeling = measure.label(axial_slice)\n",
    "            l_max = largest_label_volume(labeling, bg=0)\n",
    "            \n",
    "            if l_max is not None: #This slice contains some lung\n",
    "                binary_image[i][labeling != l_max] = 1\n",
    "\n",
    "    \n",
    "    binary_image -= 1 #Make the image actual binary\n",
    "    binary_image = 1-binary_image # Invert it, lungs are now 1\n",
    "    \n",
    "    # Remove other air pockets insided body\n",
    "    labels = measure.label(binary_image, background=0)\n",
    "    l_max = largest_label_volume(labels, bg=0)\n",
    "    if l_max is not None: # There are air pockets\n",
    "        binary_image[labels != l_max] = 0\n",
    "    \n",
    "    if dilate==True:\n",
    "        for i in range(binary_image.shape[0]):\n",
    "            binary_image[i]=morphology.dilation(binary_image[i],np.ones([10,10]))\n",
    "    return binary_image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "_cell_guid": "b0012bd3-50f6-278b-de58-a2a39361f1bb",
    "_uuid": "c92e2b857adffd764cbb0fd5cdf67e5c5baaa023"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd55a3c8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a96bc50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Let's look at one of the patients\n",
    "\n",
    "first_patient = load_scan(patients[0])\n",
    "first_patient_pixels = get_pixels_hu(first_patient)\n",
    "plt.hist(first_patient_pixels.flatten(), bins=80, color='c')\n",
    "plt.xlabel(\"Hounsfield Units (HU)\")\n",
    "plt.ylabel(\"Frequency\")\n",
    "plt.show()\n",
    "\n",
    "import scipy\n",
    "# Show some slice in the middle\n",
    "#data=scipy.ndimage.interpolation.zoom(first_patient_pixels[41],[200,200])\n",
    "plt.figure()\n",
    "plt.imshow(first_patient_pixels[42])\n",
    "plt.annotate('', xy=(317, 367), xycoords='data',\n",
    "             xytext=(0.5, 0.5), textcoords='figure fraction',\n",
    "             arrowprops=dict(arrowstyle=\"->\"))\n",
    "#plt.savefig(\"images/test.png\",dpi=300)\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "_cell_guid": "59c11a48-c6d0-8522-f5cd-b03d8ee812f6",
    "_uuid": "4e0fd5da6c5209dacdfdc55ceeb8e5901630569b",
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def processimage(img):\n",
    "    #function sourced from https://www.kaggle.com/c/data-science-bowl-2017#tutorial\n",
    "    #Standardize the pixel values\n",
    "    mean = np.mean(img)\n",
    "    std = np.std(img)\n",
    "    img = img-mean\n",
    "    img = img/std\n",
    "    #plt.hist(img.flatten(),bins=200)\n",
    "    #plt.show()\n",
    "    #print(thresh_img[366][280:450])\n",
    "    middle = img[100:400,100:400] \n",
    "    mean = np.mean(middle)  \n",
    "    max = np.max(img)\n",
    "    min = np.min(img)\n",
    "    #move the underflow bins\n",
    "    img[img==max]=mean\n",
    "    img[img==min]=mean\n",
    "    kmeans = KMeans(n_clusters=2).fit(np.reshape(middle,[np.prod(middle.shape),1]))\n",
    "    centers = sorted(kmeans.cluster_centers_.flatten())\n",
    "    threshold = np.mean(centers)\n",
    "    thresh_img = np.where(img<threshold,1.0,0.0)  # threshold the image\n",
    "    eroded = morphology.erosion(thresh_img,np.ones([4,4]))\n",
    "    dilation = morphology.dilation(eroded,np.ones([10,10]))\n",
    "    labels = measure.label(dilation)\n",
    "    label_vals = np.unique(labels)\n",
    "    #plt.imshow(labels)\n",
    "    #plt.show()\n",
    "    labels = measure.label(dilation)\n",
    "    label_vals = np.unique(labels)\n",
    "    regions = measure.regionprops(labels)\n",
    "    good_labels = []\n",
    "    for prop in regions:\n",
    "        B = prop.bbox\n",
    "        if B[2]-B[0]<475 and B[3]-B[1]<475 and B[0]>40 and B[2]<472:\n",
    "            good_labels.append(prop.label)\n",
    "    mask = np.ndarray([512,512],dtype=np.int8)\n",
    "    mask[:] = 0\n",
    "    #\n",
    "    #  The mask here is the mask for the lungs--not the nodes\n",
    "    #  After just the lungs are left, we do another large dilation\n",
    "    #  in order to fill in and out the lung mask \n",
    "    #\n",
    "    for N in good_labels:\n",
    "        mask = mask + np.where(labels==N,1,0)\n",
    "    mask = morphology.dilation(mask,np.ones([10,10])) # one last dilation\n",
    "    return mask*img\n",
    "\n",
    "def nodule_coordinates(nodulelocations,meta):\n",
    "    slices=nodulelocations[\"slice no.\"][nodulelocations.index[nodulelocations[\"case\"]==int(meta[\"Patient Id\"][-4:])]]\n",
    "    xlocs=nodulelocations[\"x loc.\"][nodulelocations.index[nodulelocations[\"case\"]==int(meta[\"Patient Id\"][-4:])]]\n",
    "    ylocs=nodulelocations[\"y loc.\"][nodulelocations.index[nodulelocations[\"case\"]==int(meta[\"Patient Id\"][-4:])]]\n",
    "    nodulecoord=[]\n",
    "    for i in range(len(slices)):\n",
    "        nodulecoord.append([slices.values[i]-1,xlocs.values[i]-1,ylocs.values[i]-1])\n",
    "    return nodulecoord"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 451,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#Generate and save nodule images for all samples\n",
    "'''\n",
    "for i in range(15,len(patients)):\n",
    "    print(i)\n",
    "    first_patient = load_scan(patients[i])\n",
    "    first_patient_pixels = get_pixels_hu(first_patient)\n",
    "    nodcord=nodule_coordinates(nodulelocations,meta.loc[i])\n",
    "    for j in range(len(nodcord)):\n",
    "        #plt.imsave(\"images/\"+meta['Patient Id'].loc[i]+\"slice\"+str(slice)+\".png\",first_patient_pixels[slice])\n",
    "        plt.figure()\n",
    "        plt.imshow(first_patient_pixels[nodcord[j][0]])\n",
    "        plt.annotate('', xy=(nodcord[j][1], nodcord[j][2]), xycoords='data',\n",
    "             xytext=(0.5, 0.5), textcoords='figure fraction',\n",
    "             arrowprops=dict(arrowstyle=\"->\"))\n",
    "        plt.savefig(\"images/\"+meta['Patient Id'].loc[i]+\"slice\"+str(nodcord[j])+\".png\",dpi=300)\n",
    "        plt.close()\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processing patient# 0 ETA: 13.88888888888889 hrs\n",
      "Processing patient# 1 ETA: 2.636670792367723 hrs\n",
      "Processing patient# 2 ETA: 3.67324132439163 hrs\n",
      "Processing patient# 3 ETA: 5.957215151256985 hrs\n",
      "Processing patient# 4 ETA: 5.327770197590192 hrs\n",
      "Processing patient# 5 ETA: 5.793750263902877 hrs\n",
      "Processing patient# 6 ETA: 6.373408978614542 hrs\n",
      "Processing patient# 7 ETA: 6.239070732442159 hrs\n",
      "Processing patient# 8 ETA: 6.071023768178291 hrs\n",
      "Processing patient# 9 ETA: 6.182566953235202 hrs\n",
      "Processing patient# 10 ETA: 6.841921355532275 hrs\n",
      "Processing patient# 11 ETA: 8.01078399029645 hrs\n",
      "Processing patient# 12 ETA: 9.588434534768263 hrs\n",
      "Processing patient# 13 ETA: 9.397183720331928 hrs\n",
      "Processing patient# 14 ETA: 8.963372415550172 hrs\n",
      "Processing patient# 15 ETA: 8.756867530372407 hrs\n",
      "Processing patient# 16 ETA: 9.19578843102687 hrs\n",
      "Processing patient# 17 ETA: 9.062609851749894 hrs\n",
      "Processing patient# 18 ETA: 9.139445660809676 hrs\n",
      "Processing patient# 19 ETA: 9.095597724126794 hrs\n",
      "Processing patient# 20 ETA: 9.123473400817975 hrs\n",
      "Processing patient# 21 ETA: 9.164804511789292 hrs\n",
      "Processing patient# 22 ETA: 8.929756330630996 hrs\n",
      "Processing patient# 23 ETA: 8.716978218146568 hrs\n",
      "Processing patient# 24 ETA: 8.781162216812373 hrs\n",
      "Processing patient# 25 ETA: 8.713223342217338 hrs\n",
      "Processing patient# 26 ETA: 8.773954009953728 hrs\n",
      "Processing patient# 27 ETA: 9.086540090596236 hrs\n",
      "Processing patient# 28 ETA: 8.753199710313762 hrs\n",
      "Processing patient# 29 ETA: 8.708800143601794 hrs\n",
      "Processing patient# 30 ETA: 8.603558787776365 hrs\n",
      "Processing patient# 31 ETA: 8.726033651542494 hrs\n",
      "Processing patient# 32 ETA: 8.444797380879107 hrs\n",
      "Processing patient# 33 ETA: 8.380945623619388 hrs\n",
      "Processing patient# 34 ETA: 8.33558594246121 hrs\n",
      "Processing patient# 35 ETA: 8.212101783139364 hrs\n",
      "Processing patient# 36 ETA: 8.300332735843128 hrs\n",
      "Processing patient# 37 ETA: 8.25922375126286 hrs\n",
      "Processing patient# 38 ETA: 8.128183018981714 hrs\n",
      "Processing patient# 39 ETA: 8.523318658924511 hrs\n",
      "Processing patient# 40 ETA: 8.506017835602163 hrs\n",
      "Processing patient# 41 ETA: 8.505169284505248 hrs\n",
      "Processing patient# 42 ETA: 8.807552373243702 hrs\n",
      "Processing patient# 43 ETA: 8.76621825831189 hrs\n",
      "Processing patient# 44 ETA: 8.834178177204095 hrs\n",
      "Processing patient# 45 ETA: 9.272588361740112 hrs\n",
      "Processing patient# 46 ETA: 9.434555155770214 hrs\n",
      "Processing patient# 47 ETA: 9.305274428332106 hrs\n",
      "Processing patient# 48 ETA: 9.45358432509833 hrs\n",
      "Processing patient# 49 ETA: 9.948135394909484 hrs\n",
      "Processing patient# 50 ETA: 9.803329818603729 hrs\n",
      "Processing patient# 51 ETA: 9.763577398568197 hrs\n",
      "Processing patient# 52 ETA: 9.79616602352287 hrs\n",
      "Processing patient# 53 ETA: 9.70138086154026 hrs\n",
      "Processing patient# 54 ETA: 9.583765381707085 hrs\n",
      "Processing patient# 55 ETA: 9.70688255504165 hrs\n",
      "Processing patient# 56 ETA: 9.740606743851824 hrs\n",
      "Processing patient# 57 ETA: 9.662218144065456 hrs\n",
      "Processing patient# 58 ETA: 9.62170404994739 hrs\n",
      "Processing patient# 59 ETA: 9.508423228641014 hrs\n",
      "Processing patient# 60 ETA: 9.562412437627712 hrs\n",
      "Processing patient# 61 ETA: 9.61418341471632 hrs\n",
      "Processing patient# 62 ETA: 9.449230025292085 hrs\n",
      "Processing patient# 63 ETA: 9.43536411605184 hrs\n",
      "Processing patient# 64 ETA: 9.360529953445205 hrs\n",
      "Processing patient# 65 ETA: 9.270792993072769 hrs\n",
      "Processing patient# 66 ETA: 9.633656682567766 hrs\n",
      "Processing patient# 67 ETA: 9.70508868001389 hrs\n",
      "Processing patient# 68 ETA: 9.897442098046636 hrs\n",
      "Processing patient# 69 ETA: 9.850241420821868 hrs\n",
      "Processing patient# 70 ETA: 9.800375845813562 hrs\n",
      "Processing patient# 71 ETA: 9.652146679558477 hrs\n",
      "Processing patient# 72 ETA: 9.597884384045999 hrs\n",
      "Processing patient# 73 ETA: 9.561176273354658 hrs\n",
      "Processing patient# 74 ETA: 9.457358377327074 hrs\n",
      "Processing patient# 75 ETA: 9.541850939883126 hrs\n",
      "Processing patient# 76 ETA: 9.544211920349046 hrs\n",
      "Processing patient# 77 ETA: 9.477939509382152 hrs\n",
      "Processing patient# 78 ETA: 9.436279189550978 hrs\n",
      "Processing patient# 79 ETA: 9.341467458673671 hrs\n",
      "Processing patient# 80 ETA: 9.331684029227329 hrs\n",
      "Processing patient# 81 ETA: 9.270791740770694 hrs\n",
      "Processing patient# 82 ETA: 9.215142116919765 hrs\n",
      "Processing patient# 83 ETA: 9.183154998588435 hrs\n",
      "Processing patient# 84 ETA: 9.259891291797635 hrs\n",
      "Processing patient# 85 ETA: 9.237772252176322 hrs\n",
      "Processing patient# 86 ETA: 9.179872319398001 hrs\n",
      "Processing patient# 87 ETA: 9.0646155924861 hrs\n",
      "Processing patient# 88 ETA: 9.169053584023406 hrs\n",
      "Processing patient# 89 ETA: 9.16485438674279 hrs\n",
      "Processing patient# 90 ETA: 9.121566556612649 hrs\n",
      "Processing patient# 91 ETA: 9.049369242333958 hrs\n",
      "Processing patient# 92 ETA: 8.975566060466756 hrs\n",
      "Processing patient# 93 ETA: 9.042831449320666 hrs\n",
      "Processing patient# 94 ETA: 8.988804868332883 hrs\n",
      "Processing patient# 95 ETA: 8.97034913274698 hrs\n",
      "Processing patient# 96 ETA: 8.867285443198764 hrs\n",
      "Processing patient# 97 ETA: 8.800205862672332 hrs\n",
      "Processing patient# 98 ETA: 8.828781575962665 hrs\n",
      "Processing patient# 99 ETA: 8.763885356621309 hrs\n",
      "Processing patient# 100 ETA: 8.698833500021697 hrs\n",
      "Processing patient# 101 ETA: 8.737346039749475 hrs\n",
      "Processing patient# 102 ETA: 8.6422481881832 hrs\n",
      "Processing patient# 103 ETA: 8.54899441648584 hrs\n",
      "Processing patient# 104 ETA: 8.45753397528496 hrs\n",
      "Processing patient# 105 ETA: 8.399715737963477 hrs\n",
      "Processing patient# 106 ETA: 8.340873055497429 hrs\n",
      "Processing patient# 107 ETA: 8.412273573739258 hrs\n",
      "Processing patient# 108 ETA: 8.381358853683428 hrs\n",
      "Processing patient# 109 ETA: 8.329499794343196 hrs\n",
      "Processing patient# 110 ETA: 8.290852739183588 hrs\n",
      "Processing patient# 111 ETA: 8.261573705397568 hrs\n",
      "Processing patient# 112 ETA: 8.207984499671747 hrs\n",
      "Processing patient# 113 ETA: 8.200775723987155 hrs\n",
      "Processing patient# 114 ETA: 8.172302787281268 hrs\n",
      "Processing patient# 115 ETA: 8.165177113078066 hrs\n",
      "Processing patient# 116 ETA: 8.085817704849317 hrs\n",
      "Processing patient# 117 ETA: 8.103664357438047 hrs\n",
      "Processing patient# 118 ETA: 8.215643224823385 hrs\n",
      "Processing patient# 119 ETA: 8.170345126938086 hrs\n",
      "Processing patient# 120 ETA: 8.13894029128717 hrs\n",
      "Processing patient# 121 ETA: 8.127476949350235 hrs\n",
      "Processing patient# 122 ETA: 8.078055082793552 hrs\n",
      "Processing patient# 123 ETA: 8.03141400447383 hrs\n",
      "Processing patient# 124 ETA: 7.97836510160277 hrs\n",
      "Processing patient# 125 ETA: 7.928870625315772 hrs\n",
      "Processing patient# 126 ETA: 7.927153585212571 hrs\n",
      "Processing patient# 127 ETA: 7.913605759708065 hrs\n",
      "Processing patient# 128 ETA: 7.8672453211196185 hrs\n",
      "Processing patient# 129 ETA: 7.824926474938405 hrs\n",
      "Processing patient# 130 ETA: 7.755994452501974 hrs\n",
      "Processing patient# 131 ETA: 7.7316320071966596 hrs\n",
      "Processing patient# 132 ETA: 7.706265394412206 hrs\n",
      "Processing patient# 133 ETA: 7.676092146809338 hrs\n",
      "Processing patient# 134 ETA: 7.633634819439295 hrs\n",
      "Processing patient# 135 ETA: 7.610115310474678 hrs\n",
      "Processing patient# 136 ETA: 7.571541212681754 hrs\n",
      "Processing patient# 137 ETA: 7.583607155157121 hrs\n",
      "Processing patient# 138 ETA: 7.520103500925976 hrs\n",
      "Processing patient# 139 ETA: 7.49066328545459 hrs\n",
      "Processing patient# 140 ETA: 7.453128792382422 hrs\n",
      "Processing patient# 141 ETA: 7.454521953191599 hrs\n",
      "Processing patient# 142 ETA: 7.416925593126267 hrs\n",
      "Processing patient# 143 ETA: 7.393724376697732 hrs\n",
      "Processing patient# 144 ETA: 7.376271586045623 hrs\n",
      "Processing patient# 145 ETA: 7.332337377825916 hrs\n",
      "Processing patient# 146 ETA: 7.311909728037531 hrs\n",
      "Processing patient# 147 ETA: 7.276116680044705 hrs\n",
      "Processing patient# 148 ETA: 7.237585579952946 hrs\n",
      "Processing patient# 149 ETA: 7.200350471579433 hrs\n",
      "Processing patient# 150 ETA: 7.176707561681005 hrs\n",
      "Processing patient# 151 ETA: 7.142013867489987 hrs\n",
      "Processing patient# 152 ETA: 7.10496184447704 hrs\n",
      "Processing patient# 153 ETA: 7.081586219563205 hrs\n",
      "Processing patient# 154 ETA: 7.045906049072915 hrs\n",
      "Processing patient# 155 ETA: 7.039894762708295 hrs\n",
      "Processing patient# 156 ETA: 6.986655719405056 hrs\n",
      "Processing patient# 157 ETA: 6.9640079076544925 hrs\n",
      "Processing patient# 158 ETA: 6.92920540468728 hrs\n",
      "Processing patient# 159 ETA: 6.909368243247458 hrs\n",
      "Processing patient# 160 ETA: 6.875180284486049 hrs\n",
      "Processing patient# 161 ETA: 6.874210532081794 hrs\n",
      "Processing patient# 162 ETA: 6.861057861793188 hrs\n",
      "Processing patient# 163 ETA: 6.84508654370711 hrs\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processing patient# 164 ETA: 6.807470953385763 hrs\n",
      "Processing patient# 165 ETA: 6.809158936240456 hrs\n",
      "Processing patient# 166 ETA: 6.7984306099141145 hrs\n",
      "Processing patient# 167 ETA: 6.784184024521136 hrs\n",
      "Processing patient# 168 ETA: 6.770676555769548 hrs\n",
      "Processing patient# 169 ETA: 6.754498656070366 hrs\n",
      "Processing patient# 170 ETA: 6.798816377894162 hrs\n",
      "Processing patient# 171 ETA: 6.782449454410732 hrs\n",
      "Processing patient# 172 ETA: 6.845348693788514 hrs\n",
      "Processing patient# 173 ETA: 6.86010672359491 hrs\n",
      "Processing patient# 174 ETA: 6.852058787774081 hrs\n",
      "Processing patient# 175 ETA: 6.828224685145181 hrs\n",
      "Processing patient# 176 ETA: 6.831361465594835 hrs\n",
      "Processing patient# 177 ETA: 6.784694465136123 hrs\n",
      "Processing patient# 178 ETA: 6.793573079629337 hrs\n",
      "Processing patient# 179 ETA: 6.951149829779997 hrs\n",
      "Processing patient# 180 ETA: 7.0948268424868575 hrs\n",
      "Processing patient# 181 ETA: 7.074187315000648 hrs\n",
      "Processing patient# 182 ETA: 7.20301468269365 hrs\n",
      "Processing patient# 183 ETA: 7.1550785182799155 hrs\n",
      "Processing patient# 184 ETA: 7.1076621326163485 hrs\n",
      "Processing patient# 185 ETA: 7.0833060904608836 hrs\n",
      "Processing patient# 186 ETA: 7.3512012351424465 hrs\n",
      "Processing patient# 187 ETA: 7.351189952575233 hrs\n",
      "Processing patient# 188 ETA: 7.3441315036761985 hrs\n",
      "Processing patient# 189 ETA: 7.323958430037927 hrs\n",
      "Processing patient# 190 ETA: 7.352007993095799 hrs\n",
      "Processing patient# 191 ETA: 7.419974203132626 hrs\n",
      "Processing patient# 192 ETA: 7.4536341140822815 hrs\n",
      "Processing patient# 193 ETA: 7.499708935801298 hrs\n",
      "Processing patient# 194 ETA: 7.560333193798314 hrs\n",
      "Processing patient# 195 ETA: 7.559086517295267 hrs\n",
      "Processing patient# 196 ETA: 7.511373025766172 hrs\n",
      "Processing patient# 197 ETA: 7.464145085674453 hrs\n",
      "Processing patient# 198 ETA: 7.417393038432405 hrs\n",
      "Processing patient# 199 ETA: 7.371110855155255 hrs\n",
      "Processing patient# 200 ETA: 7.364786619264218 hrs\n",
      "Processing patient# 201 ETA: 7.336820106095145 hrs\n",
      "Processing patient# 202 ETA: 7.4026642701741245 hrs\n",
      "Processing patient# 203 ETA: 7.396164390952063 hrs\n",
      "Processing patient# 204 ETA: 7.511123761821026 hrs\n",
      "Processing patient# 205 ETA: 7.582668549139649 hrs\n",
      "Processing patient# 206 ETA: 7.550592532478105 hrs\n",
      "Processing patient# 207 ETA: 7.544701097322546 hrs\n",
      "Processing patient# 208 ETA: 7.516947476740002 hrs\n",
      "Processing patient# 209 ETA: 7.4875953152660095 hrs\n",
      "Processing patient# 210 ETA: 7.44271953635651 hrs\n",
      "Processing patient# 211 ETA: 7.418143308632874 hrs\n",
      "Processing patient# 212 ETA: 7.416852724306927 hrs\n",
      "Processing patient# 213 ETA: 7.434032213064798 hrs\n",
      "Processing patient# 214 ETA: 7.390092727835613 hrs\n",
      "Processing patient# 215 ETA: 7.390144983979775 hrs\n",
      "Processing patient# 216 ETA: 7.34676245611299 hrs\n",
      "Processing patient# 217 ETA: 7.58962508976551 hrs\n",
      "Processing patient# 218 ETA: 7.605654618328743 hrs\n",
      "Processing patient# 219 ETA: 7.6439016579638155 hrs\n",
      "Processing patient# 220 ETA: 7.599624385604954 hrs\n",
      "Processing patient# 221 ETA: 7.555746804332541 hrs\n",
      "Processing patient# 222 ETA: 7.512264511579866 hrs\n",
      "Processing patient# 223 ETA: 7.4851035417830944 hrs\n",
      "Processing patient# 224 ETA: 7.451753754423605 hrs\n",
      "Processing patient# 225 ETA: 7.420939386685689 hrs\n",
      "Processing patient# 226 ETA: 7.399121816688114 hrs\n",
      "Processing patient# 227 ETA: 7.38779260140392 hrs\n",
      "Processing patient# 228 ETA: 7.364729801722262 hrs\n",
      "Processing patient# 229 ETA: 7.385694358741004 hrs\n",
      "Processing patient# 230 ETA: 7.363199650737111 hrs\n",
      "Processing patient# 231 ETA: 7.361711816096203 hrs\n",
      "Processing patient# 232 ETA: 7.407957972277854 hrs\n",
      "Processing patient# 233 ETA: 7.554308533679887 hrs\n",
      "Processing patient# 234 ETA: 7.5647936108555545 hrs\n",
      "Processing patient# 235 ETA: 7.5812155686693 hrs\n",
      "Processing patient# 236 ETA: 7.624159855190699 hrs\n",
      "Processing patient# 237 ETA: 7.593529543024914 hrs\n",
      "Processing patient# 238 ETA: 7.597362921897436 hrs\n",
      "Processing patient# 239 ETA: 7.574550784862857 hrs\n",
      "Processing patient# 240 ETA: 7.570100981401073 hrs\n",
      "Processing patient# 241 ETA: 7.528989259494291 hrs\n",
      "Processing patient# 242 ETA: 7.4882172992926765 hrs\n",
      "Processing patient# 243 ETA: 7.474620280932987 hrs\n",
      "Processing patient# 244 ETA: 7.484300970182719 hrs\n",
      "Processing patient# 245 ETA: 7.461959098871062 hrs\n",
      "Processing patient# 246 ETA: 7.457841357325473 hrs\n",
      "Processing patient# 247 ETA: 7.418016481420986 hrs\n",
      "Processing patient# 248 ETA: 7.446457906665821 hrs\n",
      "Processing patient# 249 ETA: 7.406909755313572 hrs\n",
      "Processing patient# 250 ETA: 7.375677400009366 hrs\n",
      "Processing patient# 251 ETA: 7.379637653382281 hrs\n",
      "Processing patient# 252 ETA: 7.364707397705034 hrs\n",
      "Processing patient# 253 ETA: 7.406657084021905 hrs\n",
      "Processing patient# 254 ETA: 7.385795164009196 hrs\n",
      "Processing patient# 255 ETA: 7.374546479602266 hrs\n",
      "Processing patient# 256 ETA: 7.352858887364208 hrs\n",
      "Processing patient# 257 ETA: 7.359695139665188 hrs\n",
      "Processing patient# 258 ETA: 7.374107591994202 hrs\n",
      "Processing patient# 259 ETA: 7.366946485177584 hrs\n",
      "Processing patient# 260 ETA: 7.350284650415182 hrs\n",
      "Processing patient# 261 ETA: 7.326996436502741 hrs\n",
      "Processing patient# 262 ETA: 7.289377599609565 hrs\n",
      "Processing patient# 263 ETA: 7.272456083140597 hrs\n",
      "Processing patient# 264 ETA: 7.4022628484162105 hrs\n",
      "Processing patient# 265 ETA: 7.395754970858432 hrs\n",
      "Processing patient# 266 ETA: 7.3966492304059 hrs\n",
      "Processing patient# 267 ETA: 7.374071897415631 hrs\n",
      "Processing patient# 268 ETA: 7.33676362419677 hrs\n",
      "Processing patient# 269 ETA: 7.299731956807506 hrs\n",
      "Processing patient# 270 ETA: 7.29496831294784 hrs\n",
      "Processing patient# 271 ETA: 7.286974849646186 hrs\n",
      "Processing patient# 272 ETA: 7.34953951772205 hrs\n",
      "Processing patient# 273 ETA: 7.477656464227389 hrs\n",
      "Processing patient# 274 ETA: 7.471585362097982 hrs\n",
      "Processing patient# 275 ETA: 7.4984670511765925 hrs\n",
      "Processing patient# 276 ETA: 7.461231794103909 hrs\n",
      "Processing patient# 277 ETA: 7.424264635611287 hrs\n",
      "Processing patient# 278 ETA: 7.396619792940092 hrs\n",
      "Processing patient# 279 ETA: 7.409186971187592 hrs\n",
      "Processing patient# 280 ETA: 7.4081269734199084 hrs\n",
      "Processing patient# 281 ETA: 7.3974937647951124 hrs\n",
      "Processing patient# 282 ETA: 7.401740140279417 hrs\n",
      "Processing patient# 283 ETA: 7.391170190882113 hrs\n",
      "Processing patient# 284 ETA: 7.373519187211431 hrs\n",
      "Processing patient# 285 ETA: 7.3687163434530545 hrs\n",
      "Processing patient# 286 ETA: 7.332921666551813 hrs\n",
      "Processing patient# 287 ETA: 7.327637264279032 hrs\n",
      "Processing patient# 288 ETA: 7.351796279847622 hrs\n",
      "Processing patient# 289 ETA: 7.34176603022102 hrs\n",
      "Processing patient# 290 ETA: 7.335520189230928 hrs\n",
      "Processing patient# 291 ETA: 7.3002581520711445 hrs\n",
      "Processing patient# 292 ETA: 7.3080745333269865 hrs\n",
      "Processing patient# 293 ETA: 7.349233131669985 hrs\n",
      "Processing patient# 294 ETA: 7.3484419961966365 hrs\n",
      "Processing patient# 295 ETA: 7.3134040165297725 hrs\n",
      "Processing patient# 296 ETA: 7.2964623504792065 hrs\n",
      "Processing patient# 297 ETA: 7.278276899607495 hrs\n",
      "Processing patient# 298 ETA: 7.254202038874874 hrs\n",
      "Processing patient# 299 ETA: 7.238857264532914 hrs\n",
      "Processing patient# 300 ETA: 7.215435652111636 hrs\n",
      "Processing patient# 301 ETA: 7.3381596485465685 hrs\n",
      "Processing patient# 302 ETA: 7.319220980860409 hrs\n",
      "Processing patient# 303 ETA: 7.300042488876611 hrs\n",
      "Processing patient# 304 ETA: 7.29700749556289 hrs\n",
      "Processing patient# 305 ETA: 7.262883500535196 hrs\n",
      "Processing patient# 306 ETA: 7.364403637869685 hrs\n",
      "Processing patient# 307 ETA: 7.380254762926872 hrs\n",
      "Processing patient# 308 ETA: 7.4053946402346424 hrs\n",
      "Processing patient# 309 ETA: 7.394567076491179 hrs\n",
      "Processing patient# 310 ETA: 7.370076779043161 hrs\n",
      "Processing patient# 311 ETA: 7.377763813002784 hrs\n",
      "Processing patient# 312 ETA: 7.362237976262204 hrs\n",
      "Processing patient# 313 ETA: 7.338833161524352 hrs\n",
      "Processing patient# 314 ETA: 7.317403480123099 hrs\n",
      "Processing patient# 315 ETA: 7.283799704699288 hrs\n",
      "Processing patient# 316 ETA: 7.320034409781967 hrs\n",
      "Processing patient# 317 ETA: 7.293256617515829 hrs\n",
      "Processing patient# 318 ETA: 7.277429381873873 hrs\n",
      "Processing patient# 319 ETA: 7.272968187873598 hrs\n",
      "Processing patient# 320 ETA: 7.263060432770807 hrs\n",
      "Processing patient# 321 ETA: 7.25053335681016 hrs\n",
      "Processing patient# 322 ETA: 7.235782349805862 hrs\n",
      "Processing patient# 323 ETA: 7.259617028668201 hrs\n",
      "Processing patient# 324 ETA: 7.260487421099786 hrs\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processing patient# 325 ETA: 7.258254871449105 hrs\n",
      "Processing patient# 326 ETA: 7.238422929314056 hrs\n",
      "Processing patient# 327 ETA: 7.219212023332093 hrs\n",
      "Processing patient# 328 ETA: 7.19886003631119 hrs\n",
      "Processing patient# 329 ETA: 7.1815327459088625 hrs\n",
      "Processing patient# 330 ETA: 7.1612511656886415 hrs\n",
      "Processing patient# 331 ETA: 7.143327732332283 hrs\n",
      "Processing patient# 332 ETA: 7.1707972318941415 hrs\n",
      "Processing patient# 333 ETA: 7.149883003957995 hrs\n",
      "Processing patient# 334 ETA: 7.128551089674612 hrs\n",
      "Processing patient# 335 ETA: 7.096867567666926 hrs\n",
      "Processing patient# 336 ETA: 7.085291445913414 hrs\n",
      "Processing patient# 337 ETA: 7.242506169714709 hrs\n",
      "Processing patient# 338 ETA: 7.310107571766182 hrs\n",
      "Processing patient# 339 ETA: 7.2778107113308375 hrs\n",
      "Processing patient# 340 ETA: 7.2554296232350906 hrs\n",
      "Processing patient# 341 ETA: 7.26919002610412 hrs\n",
      "Processing patient# 342 ETA: 7.254288276820851 hrs\n",
      "Processing patient# 343 ETA: 7.228240308862 hrs\n",
      "Processing patient# 344 ETA: 7.212319975018654 hrs\n",
      "Processing patient# 345 ETA: 7.193979394682364 hrs\n",
      "Processing patient# 346 ETA: 7.174778358738585 hrs\n",
      "Processing patient# 347 ETA: 7.162559498793568 hrs\n",
      "Processing patient# 348 ETA: 7.140933052385905 hrs\n",
      "Processing patient# 349 ETA: 7.117061297322717 hrs\n",
      "Processing patient# 350 ETA: 7.123137375633489 hrs\n",
      "Processing patient# 351 ETA: 7.127740347178234 hrs\n",
      "Processing patient# 352 ETA: 7.1290665936120075 hrs\n",
      "Processing patient# 353 ETA: 7.167863091314818 hrs\n",
      "Processing patient# 354 ETA: 7.143136887836031 hrs\n",
      "Processing patient# 355 ETA: 7.121766152365853 hrs\n",
      "Processing patient# 356 ETA: 7.10428051680996 hrs\n",
      "Processing patient# 357 ETA: 7.10805090829438 hrs\n",
      "Processing patient# 358 ETA: 7.131019502653422 hrs\n",
      "Processing patient# 359 ETA: 7.111267740756355 hrs\n",
      "Processing patient# 360 ETA: 7.091300140773257 hrs\n",
      "Processing patient# 361 ETA: 7.0790461908424405 hrs\n",
      "Processing patient# 362 ETA: 7.068337292945443 hrs\n",
      "Processing patient# 363 ETA: 7.04893521910966 hrs\n",
      "Processing patient# 364 ETA: 7.028933945087323 hrs\n",
      "Processing patient# 365 ETA: 7.023996327875593 hrs\n",
      "Processing patient# 366 ETA: 7.012128094838073 hrs\n",
      "Processing patient# 367 ETA: 6.992911249137523 hrs\n",
      "Processing patient# 368 ETA: 7.0096793122242245 hrs\n",
      "Processing patient# 369 ETA: 7.047144536855746 hrs\n",
      "Processing patient# 370 ETA: 7.0172538271626905 hrs\n",
      "Processing patient# 371 ETA: 6.993381921236085 hrs\n",
      "Processing patient# 372 ETA: 6.968449838184434 hrs\n",
      "Processing patient# 373 ETA: 6.947096052309001 hrs\n",
      "Processing patient# 374 ETA: 7.022444483874741 hrs\n",
      "Processing patient# 375 ETA: 7.033528463659287 hrs\n",
      "Processing patient# 376 ETA: 7.034055167727577 hrs\n",
      "Processing patient# 377 ETA: 7.012418770783072 hrs\n",
      "Processing patient# 378 ETA: 6.9872518503713215 hrs\n",
      "Processing patient# 379 ETA: 6.966704761086935 hrs\n",
      "Processing patient# 380 ETA: 7.025951226912045 hrs\n",
      "Processing patient# 381 ETA: 7.018037279204956 hrs\n",
      "Processing patient# 382 ETA: 7.019713761012107 hrs\n",
      "Processing patient# 383 ETA: 7.0011582965359045 hrs\n",
      "Processing patient# 384 ETA: 6.9719129502700845 hrs\n",
      "Processing patient# 385 ETA: 7.008649327663459 hrs\n",
      "Processing patient# 386 ETA: 7.032889084639773 hrs\n",
      "Processing patient# 387 ETA: 7.020809642273634 hrs\n",
      "Processing patient# 388 ETA: 7.013877709324281 hrs\n",
      "Processing patient# 389 ETA: 7.116275296634146 hrs\n",
      "Processing patient# 390 ETA: 7.096144333556676 hrs\n",
      "Processing patient# 391 ETA: 7.0794175836297395 hrs\n",
      "Processing patient# 392 ETA: 7.058557691031438 hrs\n",
      "Processing patient# 393 ETA: 7.029333352533005 hrs\n",
      "Processing patient# 394 ETA: 7.026771950628619 hrs\n",
      "Processing patient# 395 ETA: 7.016338668780655 hrs\n",
      "Processing patient# 396 ETA: 6.993030300375188 hrs\n",
      "Processing patient# 397 ETA: 7.015636633822406 hrs\n",
      "Processing patient# 398 ETA: 7.013498772676434 hrs\n",
      "Processing patient# 399 ETA: 6.9910898924979366 hrs\n",
      "Processing patient# 400 ETA: 6.99212523982293 hrs\n",
      "Processing patient# 401 ETA: 7.018454527706941 hrs\n",
      "Processing patient# 402 ETA: 7.037160514574344 hrs\n",
      "Processing patient# 403 ETA: 7.015822320112948 hrs\n",
      "Processing patient# 404 ETA: 6.991883239266928 hrs\n",
      "Processing patient# 405 ETA: 7.017018288647687 hrs\n",
      "Processing patient# 406 ETA: 7.004001483119082 hrs\n",
      "Processing patient# 407 ETA: 6.975358454361986 hrs\n",
      "Processing patient# 408 ETA: 6.946855829984338 hrs\n",
      "Processing patient# 409 ETA: 6.918492580026234 hrs\n",
      "Processing patient# 410 ETA: 6.937912096208673 hrs\n",
      "Processing patient# 411 ETA: 6.932781779737078 hrs\n",
      "Processing patient# 412 ETA: 6.904543396904501 hrs\n",
      "Processing patient# 413 ETA: 6.892297867552902 hrs\n",
      "Processing patient# 414 ETA: 6.893410518405518 hrs\n",
      "Processing patient# 415 ETA: 6.8787854051350585 hrs\n",
      "Processing patient# 416 ETA: 6.850851981174518 hrs\n",
      "Processing patient# 417 ETA: 6.832226912085292 hrs\n",
      "Processing patient# 418 ETA: 6.804522864662667 hrs\n",
      "Processing patient# 419 ETA: 6.786267287751402 hrs\n",
      "Processing patient# 420 ETA: 6.7587890448556065 hrs\n",
      "Processing patient# 421 ETA: 6.747534179052598 hrs\n",
      "Processing patient# 422 ETA: 6.7202513984382435 hrs\n",
      "Processing patient# 423 ETA: 6.707102737714212 hrs\n",
      "Processing patient# 424 ETA: 6.701880832160482 hrs\n",
      "Processing patient# 425 ETA: 6.7023747263391025 hrs\n",
      "Processing patient# 426 ETA: 6.711500252972186 hrs\n",
      "Processing patient# 427 ETA: 6.694232647528475 hrs\n",
      "Processing patient# 428 ETA: 6.667273416541447 hrs\n",
      "Processing patient# 429 ETA: 6.660583558786538 hrs\n",
      "Processing patient# 430 ETA: 6.639794195619817 hrs\n",
      "Processing patient# 431 ETA: 6.613104614239435 hrs\n",
      "Processing patient# 432 ETA: 6.586538215657628 hrs\n",
      "Processing patient# 433 ETA: 6.593812823231967 hrs\n",
      "Processing patient# 434 ETA: 6.567356065796452 hrs\n",
      "Processing patient# 435 ETA: 6.552881266945624 hrs\n",
      "Processing patient# 436 ETA: 6.534236587996117 hrs\n",
      "Processing patient# 437 ETA: 6.508064408760595 hrs\n",
      "Processing patient# 438 ETA: 6.497098248994696 hrs\n",
      "Processing patient# 439 ETA: 6.486205761977552 hrs\n",
      "Processing patient# 440 ETA: 6.494045275173556 hrs\n",
      "Processing patient# 441 ETA: 6.475193398317781 hrs\n",
      "Processing patient# 442 ETA: 6.458579911141014 hrs\n",
      "Processing patient# 443 ETA: 6.476929648979763 hrs\n",
      "Processing patient# 444 ETA: 6.478623810476278 hrs\n",
      "Processing patient# 445 ETA: 6.459967988295204 hrs\n",
      "Processing patient# 446 ETA: 6.442291897294025 hrs\n",
      "Processing patient# 447 ETA: 6.440119397755793 hrs\n",
      "Processing patient# 448 ETA: 6.4309071441639265 hrs\n",
      "Processing patient# 449 ETA: 6.4053085155494145 hrs\n",
      "Processing patient# 450 ETA: 6.387471942448617 hrs\n",
      "Processing patient# 451 ETA: 6.376867538358108 hrs\n",
      "Processing patient# 452 ETA: 6.389361631125212 hrs\n",
      "Processing patient# 453 ETA: 6.3827907700412325 hrs\n",
      "Processing patient# 454 ETA: 6.371451756665506 hrs\n",
      "Processing patient# 455 ETA: 6.362541185112372 hrs\n",
      "Processing patient# 456 ETA: 6.346284194656633 hrs\n",
      "Processing patient# 457 ETA: 6.324792148769554 hrs\n",
      "Processing patient# 458 ETA: 6.299713625313297 hrs\n",
      "Processing patient# 459 ETA: 6.2843079821294685 hrs\n",
      "Processing patient# 460 ETA: 6.266864408412417 hrs\n",
      "Processing patient# 461 ETA: 6.242044315399046 hrs\n",
      "Processing patient# 462 ETA: 6.217331666111258 hrs\n",
      "Processing patient# 463 ETA: 6.198584513512908 hrs\n",
      "Processing patient# 464 ETA: 6.19720909542736 hrs\n",
      "Processing patient# 465 ETA: 6.172700327035773 hrs\n",
      "Processing patient# 466 ETA: 6.164568858612676 hrs\n",
      "Processing patient# 467 ETA: 6.151413850002337 hrs\n",
      "Processing patient# 468 ETA: 6.127109964502674 hrs\n",
      "Processing patient# 469 ETA: 6.109580938167071 hrs\n",
      "Processing patient# 470 ETA: 6.1126010066330005 hrs\n",
      "Processing patient# 471 ETA: 6.109069291362506 hrs\n",
      "Processing patient# 472 ETA: 6.099409162204734 hrs\n",
      "Processing patient# 473 ETA: 6.094267688873986 hrs\n",
      "Processing patient# 474 ETA: 6.081785569167506 hrs\n",
      "Processing patient# 475 ETA: 6.063686876822075 hrs\n",
      "Processing patient# 476 ETA: 6.043464681320553 hrs\n",
      "Processing patient# 477 ETA: 6.023314954124908 hrs\n",
      "Processing patient# 478 ETA: 6.060369865524802 hrs\n",
      "Processing patient# 479 ETA: 6.036498416887306 hrs\n",
      "Processing patient# 480 ETA: 6.020414545865108 hrs\n",
      "Processing patient# 481 ETA: 6.006772692153403 hrs\n",
      "Processing patient# 482 ETA: 6.009444481242962 hrs\n",
      "Processing patient# 483 ETA: 5.985794138014933 hrs\n",
      "Processing patient# 484 ETA: 5.97213121780296 hrs\n",
      "Processing patient# 485 ETA: 5.948636508256709 hrs\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processing patient# 486 ETA: 5.936299187028358 hrs\n",
      "Processing patient# 487 ETA: 5.925628283148673 hrs\n",
      "Processing patient# 488 ETA: 5.906098868204026 hrs\n",
      "Processing patient# 489 ETA: 5.886636600877935 hrs\n",
      "Processing patient# 490 ETA: 5.868538619247425 hrs\n",
      "Processing patient# 491 ETA: 5.845474227736724 hrs\n",
      "Processing patient# 492 ETA: 5.846666473198713 hrs\n",
      "Processing patient# 493 ETA: 5.829622630678589 hrs\n",
      "Processing patient# 494 ETA: 5.817484349233311 hrs\n",
      "Processing patient# 495 ETA: 5.7946319086648 hrs\n",
      "Processing patient# 496 ETA: 5.7796850161667 hrs\n",
      "Processing patient# 497 ETA: 5.7652339554888385 hrs\n",
      "Processing patient# 498 ETA: 5.7425930341403975 hrs\n",
      "Processing patient# 499 ETA: 5.733039159087289 hrs\n",
      "Processing patient# 500 ETA: 5.7227418220712085 hrs\n",
      "Processing patient# 501 ETA: 5.700273002953189 hrs\n",
      "Processing patient# 502 ETA: 5.6840195046445094 hrs\n",
      "Processing patient# 503 ETA: 5.668418624070087 hrs\n",
      "Processing patient# 504 ETA: 5.660538838690235 hrs\n",
      "Processing patient# 505 ETA: 5.6430992684107295 hrs\n",
      "Processing patient# 506 ETA: 5.620947843669904 hrs\n",
      "Processing patient# 507 ETA: 5.6125183878213 hrs\n",
      "Processing patient# 508 ETA: 5.59354748072326 hrs\n",
      "Processing patient# 509 ETA: 5.601757839430734 hrs\n",
      "Processing patient# 510 ETA: 5.579769092212314 hrs\n",
      "Processing patient# 511 ETA: 5.564806285012829 hrs\n",
      "Processing patient# 512 ETA: 5.553146055972643 hrs\n",
      "Processing patient# 513 ETA: 5.559016047128227 hrs\n",
      "Processing patient# 514 ETA: 5.539753048386194 hrs\n",
      "Processing patient# 515 ETA: 5.523648644375826 hrs\n",
      "Processing patient# 516 ETA: 5.523073866842869 hrs\n",
      "Processing patient# 517 ETA: 5.508460079806353 hrs\n",
      "Processing patient# 518 ETA: 5.51103675176163 hrs\n",
      "Processing patient# 519 ETA: 5.489395834808557 hrs\n",
      "Processing patient# 520 ETA: 5.473810721839087 hrs\n",
      "Processing patient# 521 ETA: 5.458908324706374 hrs\n",
      "Processing patient# 522 ETA: 5.442693009184695 hrs\n",
      "Processing patient# 523 ETA: 5.421312801702934 hrs\n",
      "Processing patient# 524 ETA: 5.403011724910462 hrs\n",
      "Processing patient# 525 ETA: 5.4330643026473044 hrs\n",
      "Processing patient# 526 ETA: 5.411713981992668 hrs\n",
      "Processing patient# 527 ETA: 5.397704704030768 hrs\n",
      "Processing patient# 528 ETA: 5.415679648597207 hrs\n",
      "Processing patient# 529 ETA: 5.4137458719703435 hrs\n",
      "Processing patient# 530 ETA: 5.409125367507246 hrs\n",
      "Processing patient# 531 ETA: 5.397138613906956 hrs\n",
      "Processing patient# 532 ETA: 5.382880528271821 hrs\n",
      "Processing patient# 533 ETA: 5.382224897911381 hrs\n",
      "Processing patient# 534 ETA: 5.385138936120548 hrs\n",
      "Processing patient# 535 ETA: 5.369124909473234 hrs\n",
      "Processing patient# 536 ETA: 5.359857292302188 hrs\n",
      "Processing patient# 537 ETA: 5.341853146698074 hrs\n",
      "Processing patient# 538 ETA: 5.323439545744906 hrs\n",
      "Processing patient# 539 ETA: 5.317140198031595 hrs\n",
      "Processing patient# 540 ETA: 5.31027214677025 hrs\n",
      "Processing patient# 541 ETA: 5.293603635314161 hrs\n",
      "Processing patient# 542 ETA: 5.280613534393835 hrs\n",
      "Processing patient# 543 ETA: 5.275210773240867 hrs\n",
      "Processing patient# 544 ETA: 5.257017727184286 hrs\n",
      "Processing patient# 545 ETA: 5.241144318601043 hrs\n",
      "Processing patient# 546 ETA: 5.222922903806225 hrs\n",
      "Processing patient# 547 ETA: 5.214462784037416 hrs\n",
      "Processing patient# 548 ETA: 5.193873460444728 hrs\n",
      "Processing patient# 549 ETA: 5.179111674518099 hrs\n",
      "Processing patient# 550 ETA: 5.163129848471557 hrs\n",
      "Processing patient# 551 ETA: 5.146415803930793 hrs\n",
      "Processing patient# 552 ETA: 5.128448908675263 hrs\n",
      "Processing patient# 553 ETA: 5.112920772618789 hrs\n",
      "Processing patient# 554 ETA: 5.10576266769647 hrs\n",
      "Processing patient# 555 ETA: 5.090519755682789 hrs\n",
      "Processing patient# 556 ETA: 5.074495318407755 hrs\n",
      "Processing patient# 557 ETA: 5.0586947566374265 hrs\n",
      "Processing patient# 558 ETA: 5.050987528966319 hrs\n",
      "Processing patient# 559 ETA: 5.033487365249611 hrs\n",
      "Processing patient# 560 ETA: 5.0162427459771886 hrs\n",
      "Processing patient# 561 ETA: 5.001044724258154 hrs\n",
      "Processing patient# 562 ETA: 4.983612725260632 hrs\n",
      "Processing patient# 563 ETA: 4.968230462096631 hrs\n",
      "Processing patient# 564 ETA: 4.950820624885407 hrs\n",
      "Processing patient# 565 ETA: 4.95119496986601 hrs\n",
      "Processing patient# 566 ETA: 4.942003611665195 hrs\n",
      "Processing patient# 567 ETA: 4.93305464133594 hrs\n",
      "Processing patient# 568 ETA: 4.921871346696418 hrs\n",
      "Processing patient# 569 ETA: 4.9046942640966416 hrs\n",
      "Processing patient# 570 ETA: 4.889352393231546 hrs\n",
      "Processing patient# 571 ETA: 4.891655907517951 hrs\n",
      "Processing patient# 572 ETA: 4.881664920823465 hrs\n",
      "Processing patient# 573 ETA: 4.866616935098913 hrs\n",
      "Processing patient# 574 ETA: 4.849674729686166 hrs\n",
      "Processing patient# 575 ETA: 4.840205242922916 hrs\n",
      "Processing patient# 576 ETA: 4.864570550875118 hrs\n",
      "Processing patient# 577 ETA: 4.8553012967362195 hrs\n",
      "Processing patient# 578 ETA: 4.841288433599386 hrs\n",
      "Processing patient# 579 ETA: 4.846558088079291 hrs\n",
      "Processing patient# 580 ETA: 4.850041665588758 hrs\n",
      "Processing patient# 581 ETA: 4.83795206977159 hrs\n",
      "Processing patient# 582 ETA: 4.823681175084047 hrs\n",
      "Processing patient# 583 ETA: 4.815061438723204 hrs\n",
      "Processing patient# 584 ETA: 4.813003970521475 hrs\n",
      "Processing patient# 585 ETA: 4.799548774865958 hrs\n",
      "Processing patient# 586 ETA: 4.784972908792958 hrs\n",
      "Processing patient# 587 ETA: 4.7721912387621 hrs\n",
      "Processing patient# 588 ETA: 4.763136713008761 hrs\n",
      "Processing patient# 589 ETA: 4.765267971785333 hrs\n",
      "Processing patient# 590 ETA: 4.762183417527578 hrs\n",
      "Processing patient# 591 ETA: 4.742992194481509 hrs\n",
      "Processing patient# 592 ETA: 4.733495461203537 hrs\n",
      "Processing patient# 593 ETA: 4.719412576875728 hrs\n",
      "Processing patient# 594 ETA: 4.705542992654474 hrs\n",
      "Processing patient# 595 ETA: 4.697786915563848 hrs\n",
      "Processing patient# 596 ETA: 4.68407814137043 hrs\n",
      "Processing patient# 597 ETA: 4.677765068157234 hrs\n",
      "Processing patient# 598 ETA: 4.661991401173976 hrs\n",
      "Processing patient# 599 ETA: 4.6466449501858955 hrs\n",
      "Processing patient# 600 ETA: 4.631403771937225 hrs\n",
      "Processing patient# 601 ETA: 4.61512793765753 hrs\n",
      "Processing patient# 602 ETA: 4.600307758474273 hrs\n",
      "Processing patient# 603 ETA: 4.585554102837149 hrs\n",
      "Processing patient# 604 ETA: 4.57042550828338 hrs\n",
      "Processing patient# 605 ETA: 4.553979190796203 hrs\n",
      "Processing patient# 606 ETA: 4.537629455009311 hrs\n",
      "Processing patient# 607 ETA: 4.5308103693550645 hrs\n",
      "Processing patient# 608 ETA: 4.515945489819199 hrs\n",
      "Processing patient# 609 ETA: 4.504778829920664 hrs\n",
      "Processing patient# 610 ETA: 4.498042629854277 hrs\n",
      "Processing patient# 611 ETA: 4.483070826852598 hrs\n",
      "Processing patient# 612 ETA: 4.466925530267112 hrs\n",
      "Processing patient# 613 ETA: 4.478389828760856 hrs\n",
      "Processing patient# 614 ETA: 4.462209818435351 hrs\n",
      "Processing patient# 615 ETA: 4.446101218403841 hrs\n",
      "Processing patient# 616 ETA: 4.432640560854219 hrs\n",
      "Processing patient# 617 ETA: 4.420624176017146 hrs\n",
      "Processing patient# 618 ETA: 4.410443309268711 hrs\n",
      "Processing patient# 619 ETA: 4.39742049401912 hrs\n",
      "Processing patient# 620 ETA: 4.386073329178875 hrs\n",
      "Processing patient# 621 ETA: 4.370046715655763 hrs\n",
      "Processing patient# 622 ETA: 4.354272732696562 hrs\n",
      "Processing patient# 623 ETA: 4.336278276852965 hrs\n",
      "Processing patient# 624 ETA: 4.320433798685798 hrs\n",
      "Processing patient# 625 ETA: 4.309116739367166 hrs\n",
      "Processing patient# 626 ETA: 4.293336385691212 hrs\n",
      "Processing patient# 627 ETA: 4.277062177794337 hrs\n",
      "Processing patient# 628 ETA: 4.276145383004001 hrs\n",
      "Processing patient# 629 ETA: 4.2613019183372325 hrs\n",
      "Processing patient# 630 ETA: 4.25640631760586 hrs\n",
      "Processing patient# 631 ETA: 4.243612462743357 hrs\n",
      "Processing patient# 632 ETA: 4.229565231707446 hrs\n",
      "Processing patient# 633 ETA: 4.214048212502366 hrs\n",
      "Processing patient# 634 ETA: 4.20521638598122 hrs\n",
      "Processing patient# 635 ETA: 4.195609618157747 hrs\n",
      "Processing patient# 636 ETA: 4.184246337750234 hrs\n",
      "Processing patient# 637 ETA: 4.178188516445732 hrs\n",
      "Processing patient# 638 ETA: 4.160661962672275 hrs\n",
      "Processing patient# 639 ETA: 4.1464995136115474 hrs\n",
      "Processing patient# 640 ETA: 4.1310485176728635 hrs\n",
      "Processing patient# 641 ETA: 4.1252143713398475 hrs\n",
      "Processing patient# 642 ETA: 4.109761447317875 hrs\n",
      "Processing patient# 643 ETA: 4.097592435200143 hrs\n",
      "Processing patient# 644 ETA: 4.090578771449004 hrs\n",
      "Processing patient# 645 ETA: 4.0752338755531206 hrs\n",
      "Processing patient# 646 ETA: 4.057987811376046 hrs\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processing patient# 647 ETA: 4.042658665439997 hrs\n",
      "Processing patient# 648 ETA: 4.033742225326504 hrs\n",
      "Processing patient# 649 ETA: 4.019162230133255 hrs\n",
      "Processing patient# 650 ETA: 4.01238861427409 hrs\n",
      "Processing patient# 651 ETA: 3.9969108170756167 hrs\n",
      "Processing patient# 652 ETA: 3.9832806893338035 hrs\n",
      "Processing patient# 653 ETA: 3.9680462139809385 hrs\n",
      "Processing patient# 654 ETA: 3.9510946160816154 hrs\n",
      "Processing patient# 655 ETA: 3.939004831689813 hrs\n",
      "Processing patient# 656 ETA: 3.923465130472693 hrs\n",
      "Processing patient# 657 ETA: 3.9083558130482015 hrs\n",
      "Processing patient# 658 ETA: 3.8915763210754104 hrs\n",
      "Processing patient# 659 ETA: 3.88105168922296 hrs\n",
      "Processing patient# 660 ETA: 3.8643472577763935 hrs\n",
      "Processing patient# 661 ETA: 3.851362489038885 hrs\n",
      "Processing patient# 662 ETA: 3.834742926948521 hrs\n",
      "Processing patient# 663 ETA: 3.8199186803582577 hrs\n",
      "Processing patient# 664 ETA: 3.813859340481888 hrs\n",
      "Processing patient# 665 ETA: 3.8172148768776344 hrs\n",
      "Processing patient# 666 ETA: 3.822777884613287 hrs\n",
      "Processing patient# 667 ETA: 3.8196344292453777 hrs\n",
      "Processing patient# 668 ETA: 3.812944692249148 hrs\n",
      "Processing patient# 669 ETA: 3.801601161134735 hrs\n",
      "Processing patient# 670 ETA: 3.7866880670805685 hrs\n",
      "Processing patient# 671 ETA: 3.7727469205688533 hrs\n",
      "Processing patient# 672 ETA: 3.7738463017646042 hrs\n",
      "Processing patient# 673 ETA: 3.757316798254546 hrs\n",
      "Processing patient# 674 ETA: 3.7408361998242676 hrs\n",
      "Processing patient# 675 ETA: 3.7393798210479607 hrs\n",
      "Processing patient# 676 ETA: 3.7313112429592628 hrs\n",
      "Processing patient# 677 ETA: 3.716410752970971 hrs\n",
      "Processing patient# 678 ETA: 3.7043200693858993 hrs\n",
      "Processing patient# 679 ETA: 3.697247837636383 hrs\n",
      "Processing patient# 680 ETA: 3.683669013634226 hrs\n",
      "Processing patient# 681 ETA: 3.6703335727574027 hrs\n",
      "Processing patient# 682 ETA: 3.6662687996804784 hrs\n",
      "Processing patient# 683 ETA: 3.6626614435612708 hrs\n",
      "Processing patient# 684 ETA: 3.646356925863272 hrs\n",
      "Processing patient# 685 ETA: 3.631347169111149 hrs\n",
      "Processing patient# 686 ETA: 3.61978787133531 hrs\n",
      "Processing patient# 687 ETA: 3.6057408435404854 hrs\n",
      "Processing patient# 688 ETA: 3.592858933233379 hrs\n",
      "Processing patient# 689 ETA: 3.584578553008911 hrs\n",
      "Processing patient# 690 ETA: 3.568471020316443 hrs\n",
      "Processing patient# 691 ETA: 3.5547981057427345 hrs\n",
      "Processing patient# 692 ETA: 3.5427698213236223 hrs\n",
      "Processing patient# 693 ETA: 3.5298572209593537 hrs\n",
      "Processing patient# 694 ETA: 3.518163277517708 hrs\n",
      "Processing patient# 695 ETA: 3.5022249552715685 hrs\n",
      "Processing patient# 696 ETA: 3.4944210536030065 hrs\n",
      "Processing patient# 697 ETA: 3.4814598964956915 hrs\n",
      "Processing patient# 698 ETA: 3.4656084100713755 hrs\n",
      "Processing patient# 699 ETA: 3.449802276841446 hrs\n",
      "Processing patient# 700 ETA: 3.442528708116972 hrs\n",
      "Processing patient# 701 ETA: 3.439748679244361 hrs\n",
      "Processing patient# 702 ETA: 3.4239792271472127 hrs\n",
      "Processing patient# 703 ETA: 3.41873976941732 hrs\n",
      "Processing patient# 704 ETA: 3.4127727949020987 hrs\n",
      "Processing patient# 705 ETA: 3.397044266725544 hrs\n",
      "Processing patient# 706 ETA: 3.3836879098732444 hrs\n",
      "Processing patient# 707 ETA: 3.3707045761983987 hrs\n",
      "Processing patient# 708 ETA: 3.359337713970977 hrs\n",
      "Processing patient# 709 ETA: 3.350973187950108 hrs\n",
      "Processing patient# 710 ETA: 3.345291925815816 hrs\n",
      "Processing patient# 711 ETA: 3.329705722523138 hrs\n",
      "Processing patient# 712 ETA: 3.315601874310313 hrs\n",
      "Processing patient# 713 ETA: 3.3146844870282117 hrs\n",
      "Processing patient# 714 ETA: 3.3034765822435515 hrs\n",
      "Processing patient# 715 ETA: 3.292504794440904 hrs\n",
      "Processing patient# 716 ETA: 3.281453545375003 hrs\n",
      "Processing patient# 717 ETA: 3.2687171784072415 hrs\n",
      "Processing patient# 718 ETA: 3.2532843300839462 hrs\n",
      "Processing patient# 719 ETA: 3.242166170696077 hrs\n",
      "Processing patient# 720 ETA: 3.2287612162306907 hrs\n",
      "Processing patient# 721 ETA: 3.2176709688806557 hrs\n",
      "Processing patient# 722 ETA: 3.2078171504680357 hrs\n",
      "Processing patient# 723 ETA: 3.194591443058859 hrs\n",
      "Processing patient# 724 ETA: 3.182132779534715 hrs\n",
      "Processing patient# 725 ETA: 3.1697110718179022 hrs\n",
      "Processing patient# 726 ETA: 3.1639455265553846 hrs\n",
      "Processing patient# 727 ETA: 3.149793458331092 hrs\n",
      "Processing patient# 728 ETA: 3.151778312071759 hrs\n",
      "Processing patient# 729 ETA: 3.138534520754927 hrs\n",
      "Processing patient# 730 ETA: 3.1306700054892485 hrs\n",
      "Processing patient# 731 ETA: 3.115494165044549 hrs\n",
      "Processing patient# 732 ETA: 3.103402145825773 hrs\n",
      "Processing patient# 733 ETA: 3.0906442614618674 hrs\n",
      "Processing patient# 734 ETA: 3.075566171904494 hrs\n",
      "Processing patient# 735 ETA: 3.0622919761815584 hrs\n",
      "Processing patient# 736 ETA: 3.0491348024485583 hrs\n",
      "Processing patient# 737 ETA: 3.036253808501905 hrs\n",
      "Processing patient# 738 ETA: 3.0250977885650414 hrs\n",
      "Processing patient# 739 ETA: 3.0152361746213256 hrs\n",
      "Processing patient# 740 ETA: 3.002196128308505 hrs\n",
      "Processing patient# 741 ETA: 2.993279051017075 hrs\n",
      "Processing patient# 742 ETA: 2.982411234421747 hrs\n",
      "Processing patient# 743 ETA: 2.9711290542946034 hrs\n",
      "Processing patient# 744 ETA: 2.960956997060647 hrs\n",
      "Processing patient# 745 ETA: 2.9505860285762537 hrs\n",
      "Processing patient# 746 ETA: 2.9412901825548134 hrs\n",
      "Processing patient# 747 ETA: 2.93369852081839 hrs\n",
      "Processing patient# 748 ETA: 2.9239921562587003 hrs\n",
      "Processing patient# 749 ETA: 2.910279006994438 hrs\n",
      "Processing patient# 750 ETA: 2.8994284533739076 hrs\n",
      "Processing patient# 751 ETA: 2.88803960198851 hrs\n",
      "Processing patient# 752 ETA: 2.874105736589936 hrs\n",
      "Processing patient# 753 ETA: 2.859457779158634 hrs\n",
      "Processing patient# 754 ETA: 2.8448486742521326 hrs\n",
      "Processing patient# 755 ETA: 2.8385101459910542 hrs\n",
      "Processing patient# 756 ETA: 2.8296471574051045 hrs\n",
      "Processing patient# 757 ETA: 2.8310091429968938 hrs\n",
      "Processing patient# 758 ETA: 2.8182236583394156 hrs\n",
      "Processing patient# 759 ETA: 2.8135769945841176 hrs\n",
      "Processing patient# 760 ETA: 2.7989841194050857 hrs\n",
      "Processing patient# 761 ETA: 2.7901587119027984 hrs\n",
      "Processing patient# 762 ETA: 2.775612610926621 hrs\n",
      "Processing patient# 763 ETA: 2.7650294328603904 hrs\n",
      "Processing patient# 764 ETA: 2.752332524022196 hrs\n",
      "Processing patient# 765 ETA: 2.7473892200881345 hrs\n",
      "Processing patient# 766 ETA: 2.7359912275478626 hrs\n",
      "Processing patient# 767 ETA: 2.7232334074310227 hrs\n",
      "Processing patient# 768 ETA: 2.71614275791139 hrs\n",
      "Processing patient# 769 ETA: 2.716619941804161 hrs\n",
      "Processing patient# 770 ETA: 2.7049009452430375 hrs\n",
      "Processing patient# 771 ETA: 2.6951570075881763 hrs\n",
      "Processing patient# 772 ETA: 2.6807243167007195 hrs\n",
      "Processing patient# 773 ETA: 2.679324279180354 hrs\n",
      "Processing patient# 774 ETA: 2.6672680241146756 hrs\n",
      "Processing patient# 775 ETA: 2.6604491481936545 hrs\n",
      "Processing patient# 776 ETA: 2.651510707704353 hrs\n",
      "Processing patient# 777 ETA: 2.6447610528824 hrs\n",
      "Processing patient# 778 ETA: 2.634441056649062 hrs\n",
      "Processing patient# 779 ETA: 2.6239055644865643 hrs\n",
      "Processing patient# 780 ETA: 2.6181730361606323 hrs\n",
      "Processing patient# 781 ETA: 2.603787871088882 hrs\n",
      "Processing patient# 782 ETA: 2.596643502104093 hrs\n",
      "Processing patient# 783 ETA: 2.586442399630907 hrs\n",
      "Processing patient# 784 ETA: 2.5746038352292615 hrs\n",
      "Processing patient# 785 ETA: 2.5612134569354366 hrs\n",
      "Processing patient# 786 ETA: 2.5549733996719906 hrs\n",
      "Processing patient# 787 ETA: 2.5429918259327535 hrs\n",
      "Processing patient# 788 ETA: 2.528722385276746 hrs\n",
      "Processing patient# 789 ETA: 2.514489114164652 hrs\n",
      "Processing patient# 790 ETA: 2.5027501448747476 hrs\n",
      "Processing patient# 791 ETA: 2.490799529060484 hrs\n",
      "Processing patient# 792 ETA: 2.4781100952038244 hrs\n",
      "Processing patient# 793 ETA: 2.4639853370952998 hrs\n",
      "Processing patient# 794 ETA: 2.451727054844608 hrs\n",
      "Processing patient# 795 ETA: 2.4442657138451596 hrs\n",
      "Processing patient# 796 ETA: 2.430198885658928 hrs\n",
      "Processing patient# 797 ETA: 2.417027790204395 hrs\n",
      "Processing patient# 798 ETA: 2.4110074213607753 hrs\n",
      "Processing patient# 799 ETA: 2.3969946541291836 hrs\n",
      "Processing patient# 800 ETA: 2.3887640541324173 hrs\n",
      "Processing patient# 801 ETA: 2.3793089725908714 hrs\n",
      "Processing patient# 802 ETA: 2.366337386788954 hrs\n",
      "Processing patient# 803 ETA: 2.3552915497350377 hrs\n",
      "Processing patient# 804 ETA: 2.3476167397223295 hrs\n",
      "Processing patient# 805 ETA: 2.340667354003902 hrs\n",
      "Processing patient# 806 ETA: 2.330661393124881 hrs\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processing patient# 807 ETA: 2.3180904248488536 hrs\n",
      "Processing patient# 808 ETA: 2.316291924637258 hrs\n",
      "Processing patient# 809 ETA: 2.306327914953264 hrs\n",
      "Processing patient# 810 ETA: 2.2937364133493388 hrs\n",
      "Processing patient# 811 ETA: 2.286457296569701 hrs\n",
      "Processing patient# 812 ETA: 2.2725560346806906 hrs\n",
      "Processing patient# 813 ETA: 2.2617019531706317 hrs\n",
      "Processing patient# 814 ETA: 2.251034232953144 hrs\n",
      "Processing patient# 815 ETA: 2.2417898317603897 hrs\n",
      "Processing patient# 816 ETA: 2.2294368812746184 hrs\n",
      "Processing patient# 817 ETA: 2.219648920466718 hrs\n",
      "Processing patient# 818 ETA: 2.205850871338757 hrs\n",
      "Processing patient# 819 ETA: 2.195107054755509 hrs\n",
      "Processing patient# 820 ETA: 2.1879454139882952 hrs\n",
      "Processing patient# 821 ETA: 2.175421501018146 hrs\n",
      "Processing patient# 822 ETA: 2.170169224909718 hrs\n",
      "Processing patient# 823 ETA: 2.157458074163197 hrs\n",
      "Processing patient# 824 ETA: 2.1476923447520253 hrs\n",
      "Processing patient# 825 ETA: 2.1348969293151234 hrs\n",
      "Processing patient# 826 ETA: 2.1283025555226454 hrs\n",
      "Processing patient# 827 ETA: 2.1145997537811247 hrs\n",
      "Processing patient# 828 ETA: 2.1062926469505694 hrs\n",
      "Processing patient# 829 ETA: 2.094295404055469 hrs\n",
      "Processing patient# 830 ETA: 2.0836191664824057 hrs\n",
      "Processing patient# 831 ETA: 2.0740148964068816 hrs\n",
      "Processing patient# 832 ETA: 2.0654819308808006 hrs\n",
      "Processing patient# 833 ETA: 2.0564778292126618 hrs\n",
      "Processing patient# 834 ETA: 2.0493494363042193 hrs\n",
      "Processing patient# 835 ETA: 2.039825969443508 hrs\n",
      "Processing patient# 836 ETA: 2.0290846199297103 hrs\n",
      "Processing patient# 837 ETA: 2.01546348579753 hrs\n",
      "Processing patient# 838 ETA: 2.005447883919312 hrs\n",
      "Processing patient# 839 ETA: 1.9933035449275385 hrs\n",
      "Processing patient# 840 ETA: 1.9812912975719983 hrs\n",
      "Processing patient# 841 ETA: 1.9753400090185198 hrs\n",
      "Processing patient# 842 ETA: 1.9638249546655202 hrs\n",
      "Processing patient# 843 ETA: 1.9514639384197876 hrs\n",
      "Processing patient# 844 ETA: 1.937949926474727 hrs\n",
      "Processing patient# 845 ETA: 1.9281037407843076 hrs\n",
      "Processing patient# 846 ETA: 1.9190993229329736 hrs\n",
      "Processing patient# 847 ETA: 1.9061921579426822 hrs\n",
      "Processing patient# 848 ETA: 1.897727656750089 hrs\n",
      "Processing patient# 849 ETA: 1.8880667505575062 hrs\n",
      "Processing patient# 850 ETA: 1.8770137554382968 hrs\n",
      "Processing patient# 851 ETA: 1.8682536056029575 hrs\n",
      "Processing patient# 852 ETA: 1.8558800645825553 hrs\n",
      "Processing patient# 853 ETA: 1.8479423173181688 hrs\n",
      "Processing patient# 854 ETA: 1.834523809828966 hrs\n",
      "Processing patient# 855 ETA: 1.8222395945473726 hrs\n",
      "Processing patient# 856 ETA: 1.8104207574260465 hrs\n",
      "Processing patient# 857 ETA: 1.7987228732836735 hrs\n",
      "Processing patient# 858 ETA: 1.789100652370188 hrs\n",
      "Processing patient# 859 ETA: 1.777950811450717 hrs\n",
      "Processing patient# 860 ETA: 1.7741327617209228 hrs\n",
      "Processing patient# 861 ETA: 1.7637005062228814 hrs\n",
      "Processing patient# 862 ETA: 1.753690597628942 hrs\n",
      "Processing patient# 863 ETA: 1.744196951749996 hrs\n",
      "Processing patient# 864 ETA: 1.7446075173163849 hrs\n",
      "Processing patient# 865 ETA: 1.7345443637488966 hrs\n",
      "Processing patient# 866 ETA: 1.7229643270377164 hrs\n",
      "Processing patient# 867 ETA: 1.710528968916816 hrs\n",
      "Processing patient# 868 ETA: 1.698456728216384 hrs\n",
      "Processing patient# 869 ETA: 1.6879593382298137 hrs\n",
      "Processing patient# 870 ETA: 1.6755701560953578 hrs\n",
      "Processing patient# 871 ETA: 1.664889187809915 hrs\n",
      "Processing patient# 872 ETA: 1.6538566858423192 hrs\n",
      "Processing patient# 873 ETA: 1.6412230363935385 hrs\n",
      "Processing patient# 874 ETA: 1.6293372688358168 hrs\n",
      "Processing patient# 875 ETA: 1.6165276867630363 hrs\n",
      "Processing patient# 876 ETA: 1.6044321183374934 hrs\n",
      "Processing patient# 877 ETA: 1.5917258635002831 hrs\n",
      "Processing patient# 878 ETA: 1.5797360400493097 hrs\n",
      "Processing patient# 879 ETA: 1.5665868960120335 hrs\n",
      "Processing patient# 880 ETA: 1.556935818351202 hrs\n",
      "Processing patient# 881 ETA: 1.5452628296743731 hrs\n",
      "Processing patient# 882 ETA: 1.534062700845352 hrs\n",
      "Processing patient# 883 ETA: 1.5273584722689582 hrs\n",
      "Processing patient# 884 ETA: 1.5142454711247066 hrs\n",
      "Processing patient# 885 ETA: 1.5011621026058877 hrs\n",
      "Processing patient# 886 ETA: 1.4881082664061251 hrs\n",
      "Processing patient# 887 ETA: 1.4750838626316585 hrs\n",
      "Processing patient# 888 ETA: 1.4630588895729084 hrs\n",
      "Processing patient# 889 ETA: 1.450679409550125 hrs\n",
      "Processing patient# 890 ETA: 1.438400992488221 hrs\n",
      "Processing patient# 891 ETA: 1.4265461897274712 hrs\n",
      "Processing patient# 892 ETA: 1.4136378979936832 hrs\n",
      "Processing patient# 893 ETA: 1.4030989810532568 hrs\n",
      "Processing patient# 894 ETA: 1.39177392817717 hrs\n",
      "Processing patient# 895 ETA: 1.3797340155771094 hrs\n",
      "Processing patient# 896 ETA: 1.3687283580883276 hrs\n",
      "Processing patient# 897 ETA: 1.3610914508634575 hrs\n",
      "Processing patient# 898 ETA: 1.3519448976547979 hrs\n",
      "Processing patient# 899 ETA: 1.3406462999016973 hrs\n",
      "Processing patient# 900 ETA: 1.3282397487428452 hrs\n",
      "Processing patient# 901 ETA: 1.315425795448858 hrs\n",
      "Processing patient# 902 ETA: 1.307663963225916 hrs\n",
      "Processing patient# 903 ETA: 1.2962642768059494 hrs\n",
      "Processing patient# 904 ETA: 1.2834722645746337 hrs\n",
      "Processing patient# 905 ETA: 1.2716347566666668 hrs\n",
      "Processing patient# 906 ETA: 1.259271020848931 hrs\n",
      "Processing patient# 907 ETA: 1.2472313063081593 hrs\n",
      "Processing patient# 908 ETA: 1.237394071814991 hrs\n",
      "Processing patient# 909 ETA: 1.2246931507406447 hrs\n",
      "Processing patient# 910 ETA: 1.2135186849339112 hrs\n",
      "Processing patient# 911 ETA: 1.2020535815570514 hrs\n",
      "Processing patient# 912 ETA: 1.1900829400104744 hrs\n",
      "Processing patient# 913 ETA: 1.1774578079626594 hrs\n",
      "Processing patient# 914 ETA: 1.1654297070223685 hrs\n",
      "Processing patient# 915 ETA: 1.1559700630588405 hrs\n",
      "Processing patient# 916 ETA: 1.1455256752792735 hrs\n",
      "Processing patient# 917 ETA: 1.1329470557992014 hrs\n",
      "Processing patient# 918 ETA: 1.1221031839006093 hrs\n",
      "Processing patient# 919 ETA: 1.110407747569158 hrs\n",
      "Processing patient# 920 ETA: 1.0990909054651496 hrs\n",
      "Processing patient# 921 ETA: 1.0865790941125892 hrs\n",
      "Processing patient# 922 ETA: 1.0765005560973866 hrs\n",
      "Processing patient# 923 ETA: 1.0643278972583377 hrs\n",
      "Processing patient# 924 ETA: 1.0529928972992457 hrs\n",
      "Processing patient# 925 ETA: 1.0408684916221338 hrs\n",
      "Processing patient# 926 ETA: 1.030209115970069 hrs\n",
      "Processing patient# 927 ETA: 1.01840183069405 hrs\n",
      "Processing patient# 928 ETA: 1.0065156731481935 hrs\n",
      "Processing patient# 929 ETA: 0.9954391341636579 hrs\n",
      "Processing patient# 930 ETA: 0.9847513505402014 hrs\n",
      "Processing patient# 931 ETA: 0.9731169205842121 hrs\n",
      "Processing patient# 932 ETA: 0.9611886767731792 hrs\n",
      "Processing patient# 933 ETA: 0.9491434733226237 hrs\n",
      "Processing patient# 934 ETA: 0.9368400798427784 hrs\n",
      "Processing patient# 935 ETA: 0.9255338299611584 hrs\n",
      "Processing patient# 936 ETA: 0.9140406214789699 hrs\n",
      "Processing patient# 937 ETA: 0.9017927867555106 hrs\n",
      "Processing patient# 938 ETA: 0.8908903338226547 hrs\n",
      "Processing patient# 939 ETA: 0.8790499859165963 hrs\n",
      "Processing patient# 940 ETA: 0.867645670229168 hrs\n",
      "Processing patient# 941 ETA: 0.8571213235079793 hrs\n",
      "Processing patient# 942 ETA: 0.8457575261867047 hrs\n",
      "Processing patient# 943 ETA: 0.8338529387366785 hrs\n",
      "Processing patient# 944 ETA: 0.8217133166986867 hrs\n",
      "Processing patient# 945 ETA: 0.8095993858014461 hrs\n",
      "Processing patient# 946 ETA: 0.7975110645771787 hrs\n",
      "Processing patient# 947 ETA: 0.7858112282418975 hrs\n",
      "Processing patient# 948 ETA: 0.7743810826747479 hrs\n",
      "Processing patient# 949 ETA: 0.7636945285008248 hrs\n",
      "Processing patient# 950 ETA: 0.7526866500427847 hrs\n",
      "Processing patient# 951 ETA: 0.7408978711493264 hrs\n",
      "Processing patient# 952 ETA: 0.7291934508826833 hrs\n",
      "Processing patient# 953 ETA: 0.717613753560846 hrs\n",
      "Processing patient# 954 ETA: 0.7058432728658186 hrs\n",
      "Processing patient# 955 ETA: 0.6987053400374478 hrs\n",
      "Processing patient# 956 ETA: 0.6928846353811342 hrs\n",
      "Processing patient# 957 ETA: 0.6810718704415962 hrs\n",
      "Processing patient# 958 ETA: 0.6694656042223384 hrs\n",
      "Processing patient# 959 ETA: 0.6595618164232716 hrs\n",
      "Processing patient# 960 ETA: 0.6477108281881859 hrs\n",
      "Processing patient# 961 ETA: 0.6356853566901353 hrs\n",
      "Processing patient# 962 ETA: 0.6243337347955498 hrs\n",
      "Processing patient# 963 ETA: 0.612603263201371 hrs\n",
      "Processing patient# 964 ETA: 0.6011416018090252 hrs\n",
      "Processing patient# 965 ETA: 0.5893107740026688 hrs\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processing patient# 966 ETA: 0.5782392379871878 hrs\n",
      "Processing patient# 967 ETA: 0.5664571811793172 hrs\n",
      "Processing patient# 968 ETA: 0.5550505765623954 hrs\n",
      "Processing patient# 969 ETA: 0.5433182724472762 hrs\n",
      "Processing patient# 970 ETA: 0.5316573555100149 hrs\n",
      "Processing patient# 971 ETA: 0.5205682803516679 hrs\n",
      "Processing patient# 972 ETA: 0.508727682949094 hrs\n",
      "Processing patient# 973 ETA: 0.4980411447653205 hrs\n",
      "Processing patient# 974 ETA: 0.4870250405290608 hrs\n",
      "Processing patient# 975 ETA: 0.4752110044446757 hrs\n",
      "Processing patient# 976 ETA: 0.46504625133118277 hrs\n",
      "Processing patient# 977 ETA: 0.4539306261454577 hrs\n",
      "Processing patient# 978 ETA: 0.4434611245786639 hrs\n",
      "Processing patient# 979 ETA: 0.4318696981290325 hrs\n",
      "Processing patient# 980 ETA: 0.4210811269784063 hrs\n",
      "Processing patient# 981 ETA: 0.40988899986313804 hrs\n",
      "Processing patient# 982 ETA: 0.3980974162817256 hrs\n",
      "Processing patient# 983 ETA: 0.3863963788954627 hrs\n",
      "Processing patient# 984 ETA: 0.37465066828903826 hrs\n",
      "Processing patient# 985 ETA: 0.3631752270280615 hrs\n",
      "Processing patient# 986 ETA: 0.3524106742597158 hrs\n",
      "Processing patient# 987 ETA: 0.34108943489909505 hrs\n",
      "Processing patient# 988 ETA: 0.3293860870505907 hrs\n",
      "Processing patient# 989 ETA: 0.318196762893832 hrs\n",
      "Processing patient# 990 ETA: 0.30668428376046 hrs\n",
      "Processing patient# 991 ETA: 0.29526219972621526 hrs\n",
      "Processing patient# 992 ETA: 0.2841154608231267 hrs\n",
      "Processing patient# 993 ETA: 0.2728992208917488 hrs\n",
      "Processing patient# 994 ETA: 0.26126532581590556 hrs\n",
      "Processing patient# 995 ETA: 0.24965481433543674 hrs\n",
      "Processing patient# 996 ETA: 0.2388495031098925 hrs\n",
      "Processing patient# 997 ETA: 0.22764489951240546 hrs\n",
      "Processing patient# 998 ETA: 0.21609847485388753 hrs\n",
      "Processing patient# 999 ETA: 0.2045199511251647 hrs\n",
      "Processing patient# 1000 ETA: 0.19352955870158137 hrs\n",
      "Processing patient# 1001 ETA: 0.1821247825755927 hrs\n",
      "Processing patient# 1002 ETA: 0.17060915948209487 hrs\n",
      "Processing patient# 1003 ETA: 0.1593062786302168 hrs\n",
      "Processing patient# 1004 ETA: 0.14777992801474385 hrs\n",
      "Processing patient# 1005 ETA: 0.13640223957175798 hrs\n",
      "Processing patient# 1006 ETA: 0.1249908159530686 hrs\n",
      "Processing patient# 1007 ETA: 0.11354451434614626 hrs\n",
      "Processing patient# 1008 ETA: 0.10232848926314343 hrs\n",
      "Processing patient# 1009 ETA: 0.09153430935360019 hrs\n",
      "Processing patient# 1010 ETA: 0.0802527884914404 hrs\n",
      "Processing patient# 1011 ETA: 0.06891869134648408 hrs\n",
      "Processing patient# 1012 ETA: 0.0574127095984194 hrs\n",
      "Processing patient# 1013 ETA: 0.04591412992190776 hrs\n",
      "Processing patient# 1014 ETA: 0.03444034594324775 hrs\n",
      "Processing patient# 1015 ETA: 0.02294412677889745 hrs\n",
      "Processing patient# 1016 ETA: 0.011465803991060158 hrs\n"
     ]
    }
   ],
   "source": [
    "noduleimages=np.ndarray([len(nodulelocations)*3,512,512],dtype=np.float32)\n",
    "nodulemasks=np.ndarray([len(nodulelocations)*3,512,512],dtype=np.bool)\n",
    "nodulemaskscircle=np.ndarray([len(nodulelocations)*3,512,512],dtype=np.bool)\n",
    "index=0\n",
    "totaltime=50000\n",
    "start_time=time.time()\n",
    "elapsed_time=0\n",
    "nodulemeanhu=[]\n",
    "nonnodulemeanhu=[]\n",
    "thresh=-500\n",
    "for i in range(len(patients)):\n",
    "    print(\"Processing patient#\",i,\"ETA:\",(totaltime-elapsed_time)/3600,\"hrs\")\n",
    "    coord=nodule_coordinates(nodulelocations,meta.iloc[i])\n",
    "    if len(coord)>0:\n",
    "        patient=load_scan(patients[i])\n",
    "        patient_pix=get_pixels_hu(patient)\n",
    "        radius=nodulelocations[\"eq. diam.\"][nodulelocations.index[nodulelocations[\"case\"]==int(meta[\"Patient Id\"][i][-4:])]]\n",
    "        nodulemask=np.ndarray([len(coord),512,512],dtype=np.bool)\n",
    "        for j,cord in enumerate(coord):\n",
    "            segmented_mask_fill=segment_lung_mask(patient_pix,True,False)\n",
    "            if radius.iloc[j]>5:\n",
    "                #slice nodulecenter-1\n",
    "                noduleimages[index]=processimage(patient_pix[cord[0]-1])\n",
    "                nodulemasks[index]=cmw.cell_magic_wand(-patient_pix[int(cord[0])-1],[int(cord[2]),int(cord[1])],2,int(radius.iloc[j])+2)\n",
    "                rr,cc=circle(int(cord[2]),int(cord[1]),int(radius.iloc[j]))\n",
    "                imgcircle = np.zeros((512, 512), dtype=np.int16)\n",
    "                imgcircle[rr,cc]=1\n",
    "                nodulepixcircle=imgcircle*patient_pix[cord[0]-1]\n",
    "                nodulepixcircle[nodulepixcircle<thresh]=0\n",
    "                nodulepixcircle[nodulepixcircle!=0]=1\n",
    "                nodulemaskscircle[index]=nodulepixcircle.astype(np.bool)\n",
    "                \n",
    "                nodulepix=nodulemasks[index]*patient_pix[cord[0]-1]\n",
    "                nodulepix[nodulepix<thresh]=0\n",
    "                nodulepix[nodulepix!=0]=1\n",
    "                nodulemasks[index]=nodulepix.astype(np.bool)\n",
    "                index+=1\n",
    "                \n",
    "                #slice nodulecenter\n",
    "                noduleimages[index]=processimage(patient_pix[cord[0]])\n",
    "                nodulemasks[index]=cmw.cell_magic_wand(-patient_pix[int(cord[0])],[int(cord[2]),int(cord[1])],2,int(radius.iloc[j])+2)\n",
    "                nodulepix=nodulemasks[index]*patient_pix[cord[0]]\n",
    "                nodulepix[nodulepix<thresh]=0\n",
    "                nodulepixcircle=imgcircle*patient_pix[cord[0]]\n",
    "                nodulepixcircle[nodulepixcircle<thresh]=0\n",
    "                \n",
    "                #get mean nodule HU value\n",
    "\n",
    "                #get mean non-nodule HU value\n",
    "                nonnodule=(nodulemasks[index].astype(np.int16)-1)*-1*segmented_mask_fill[cord[0]]*patient_pix[cord[0]]\n",
    "                nonnodule[nonnodule<thresh]=0\n",
    "                nonnodulemeanhu.append(np.mean(nonnodule[nonnodule!=0]))\n",
    "                plt.figure()\n",
    "                #plt.hist(nodulepix[nodulepix!=0].flatten(),bins=80, alpha=0.5, color='blue')\n",
    "                plt.hist(nonnodule[nonnodule!=0].flatten(),bins=80, alpha=0.5, color='orange')\n",
    "                plt.hist(nodulepixcircle[nodulepix!=0].flatten(),bins=80,alpha=0.5, color='green')\n",
    "                plt.savefig(\"histplots/\"+meta['Patient Id'].loc[i]+\"slice\"+str(cord)+\".png\",dpi=300)\n",
    "                plt.close()\n",
    "                nodulemeanhu.append(np.mean(nodulepix[nodulepix!=0]))\n",
    "                nodulepix[nodulepix!=0]=1\n",
    "                nodulemasks[index]=nodulepix.astype(np.bool)\n",
    "                nodulepixcircle[nodulepixcircle!=0]=1\n",
    "                nodulemaskscircle[index]=nodulepixcircle.astype(np.bool)\n",
    "                index+=1\n",
    "                \n",
    "                #slice nodulecenter+1\n",
    "                noduleimages[index]=processimage(patient_pix[cord[0]+1])\n",
    "                nodulemasks[index]=cmw.cell_magic_wand(-patient_pix[int(cord[0])+1],[int(cord[2]),int(cord[1])],2,int(radius.iloc[j])+2)\n",
    "                nodulepix=nodulemasks[index]*patient_pix[cord[0]+1]\n",
    "                nodulepix[nodulepix<thresh]=0\n",
    "                nodulepix[nodulepix!=0]=1\n",
    "                nodulemasks[index]=nodulepix.astype(np.bool)\n",
    "                nodulepixcircle=imgcircle*patient_pix[cord[0]+1]\n",
    "                nodulepixcircle[nodulepixcircle<thresh]=0\n",
    "                nodulepixcircle[nodulepixcircle!=0]=1\n",
    "                nodulemaskscircle[index]=nodulepixcircle.astype(np.bool)\n",
    "                index+=1\n",
    "    elapsed_time=time.time()-start_time\n",
    "    totaltime=elapsed_time/(i+1)*len(patients)\n",
    "np.save(datafolder+'/noduleimages.npy',noduleimages)\n",
    "np.save(datafolder+'/nodulemasks.npy',nodulemasks)\n",
    "np.save(datafolder+'/nodulemaskscircle.npy',nodulemaskscircle)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd48ef60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Exploratory analysis\n",
    "plt.hist(nodulemeanhu, bins=20)\n",
    "plt.hist(nonnodulemeanhu)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nKHYo/bgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ab0b208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n6anL0F3akAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ab0bcf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ae8b908>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd2a7128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(nodulelocations['eq. diam.'], bins=80)\n",
    "plt.xlabel(\"Nodule Diameter (mm)\")\n",
    "plt.ylabel(\"Frequency\")\n",
    "plt.show()\n",
    "\n",
    "plt.hist(nodulelocations['volume'].loc[nodulelocations['volume']<6000], bins=80)\n",
    "plt.xlabel(\"volume (cc)\")\n",
    "plt.ylabel(\"Frequency\")\n",
    "plt.show()\n",
    "plt.hist(nodulelocations['volume'].loc[nodulelocations['volume']<1000], bins=80)\n",
    "plt.xlabel(\"volume (cc)\")\n",
    "plt.ylabel(\"Frequency\")\n",
    "plt.show()\n",
    "plt.hist(nodulelocations['volume'].loc[nodulelocations['volume']<400], bins=80)\n",
    "plt.xlabel(\"volume (cc)\")\n",
    "plt.ylabel(\"Frequency\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nRK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ae606a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nodcount=[]\n",
    "for i in range(len(patients)):\n",
    "    coord=nodule_coordinates(nodulelocations,meta.iloc[i])\n",
    "    nodcount.append(len(coord))\n",
    "    \n",
    "plt.hist(nodcount, bins=25)\n",
    "plt.xlabel(\"Number of Nodules per Patient\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "_change_revision": 0,
  "_is_fork": false,
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}