{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nimport imageio\n# for dirname, _, filenames in os.walk('/kaggle/input'):\n#     for filename in filenames[:10]:\n#         print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session\n\nimport matplotlib.pyplot as plt","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!pip install \"../input/pycocotools/pycocotools-2.0-cp37-cp37m-linux_x86_64.whl\"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!pip install \"../input/hpapytorchzoozip/pytorch_zoo-master\"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!pip install \"../input/hpacellsegmentatormaster/HPA-Cell-Segmentation-master\"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def build_image_names_test(image_id: str) -> list:\n    # mt is the mitchondria\n    mt = f'/kaggle/input/hpa-single-cell-image-classification/test/{image_id}_red.png'\n    \n    # er is the endoplasmic reticulum\n    er = f'/kaggle/input/hpa-single-cell-image-classification/test/{image_id}_yellow.png'\n    \n    # nu is the nuclei\n    nu = f'/kaggle/input/hpa-single-cell-image-classification/test/{image_id}_blue.png'\n    \n    # the protein of interest\n    poi = f'/kaggle/input/hpa-single-cell-image-classification/test/{image_id}_green.png'\n    \n    #return [mt], [er], [nu], [poi], [[mt], [er], [nu], [poi]]\n    return [mt], [er], [nu], [[mt], [er], [nu]]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def build_image_names_train(image_id: str) -> list:\n    # mt is the mitchondria\n    mt = f'/kaggle/input/hpa-single-cell-image-classification/train/{image_id}_red.png'\n    \n    # er is the endoplasmic reticulum\n    er = f'/kaggle/input/hpa-single-cell-image-classification/train/{image_id}_yellow.png'\n    \n    # nu is the nuclei\n    nu = f'/kaggle/input/hpa-single-cell-image-classification/train/{image_id}_blue.png'\n    \n    # the protein of interest\n    poi = f'/kaggle/input/hpa-single-cell-image-classification/train/{image_id}_green.png'\n    \n    #return [mt], [er], [nu], [poi], [[mt], [er], [nu], [poi]]\n    return [mt], [er], [nu], [poi], [[mt], [er], [nu]]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import hpacellseg.cellsegmentator as cellsegmentator\nfrom hpacellseg.utils import label_cell, label_nuclei\n\nNUC_MODEL = '../input/hpacellsegmentatormodelweights/dpn_unet_nuclei_v1.pth'\nCELL_MODEL = '../input/hpacellsegmentatormodelweights/dpn_unet_cell_3ch_v1.pth'\n\nsegmentator = cellsegmentator.CellSegmentator(\n    NUC_MODEL,\n    CELL_MODEL,\n    scale_factor=0.25,\n    device='cuda',\n    padding=False,\n    multi_channel_model=True\n)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# so this is showing the yellow part\nj = 0\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# this is showing the first cell\nj = 1\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# this is showing the second cell?\nj = 2\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 3\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 4\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 5\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 6\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 7\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 8\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 9\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 10\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 11\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 12\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 13\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 14\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 15\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 16\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 17\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 18\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 19\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 20\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 21\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 22\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 23\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 25\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 26\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 27\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# so the cell masks correspond to j = 1, ..., np.max(cell_mask)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Plot of just the mask\nplt.imshow(mask, alpha=0.6)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"i = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = nuclei_mask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Plot of just the mask\nplt.imshow(mask, alpha=0.6)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# now do a classification for all testing and training images\nTEST_IMGS_FOLDER = '../input/hpa-single-cell-image-classification/test/'\nTRAIN_IMGS_FOLDER = '../input/hpa-single-cell-image-classification/train/'","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# read all IDs of training images from train.csv\ntrain_csv = pd.read_csv('../input/hpa-single-cell-image-classification/train.csv')\ntrain_IDs = train_csv['ID'].tolist()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"len(train_IDs)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# produce nuclei mask and cell mask for each training image\n#for i in range(len(train_IDs)):\nfor i in range(1):\n    cell_mask_lst = []\n    train_id = train_IDs[i]\n    if i % 100 == 0:\n        print(i)\n    mt, er, nu, poi, images = build_image_names_train(image_id=train_id)\n    # For nuclei (blue channel)\n    nuc_segmentations = segmentator.pred_nuclei(images[2])\n    # For full cells (all channels)\n    cell_segmentations = segmentator.pred_cells(images)\n    nuclei_mask, cell_mask = label_cell(nuc_segmentations[0], cell_segmentations[0])\n    microtubule = plt.imread(mt[0])    \n    endoplasmicrec = plt.imread(er[0])    \n    nuclei = plt.imread(nu[0])\n    protein = plt.imread(poi[0])\n    print(i)\n    plt.figure(figsize=(20, 10))\n    mask = cell_mask\n    img = np.dstack((microtubule, endoplasmicrec, nuclei))\n    plt.imshow(img)\n    #plt.imshow(mask, alpha=0.6)\n    plt.show()\n    for j in range(np.max(cell_mask) + 1):\n        print(j)\n        bmask = (cell_mask == j)\n        row_ranges = [min(np.nonzero(bmask)[0]), max(np.nonzero(bmask)[0])]\n        col_ranges = [min(np.nonzero(bmask)[1]), max(np.nonzero(bmask)[1])]\n        seg_bmask = bmask[row_ranges[0]:row_ranges[1], col_ranges[0]:col_ranges[1]]\n        seg_img = np.dstack((np.multiply(microtubule[row_ranges[0]:row_ranges[1], col_ranges[0]:col_ranges[1]], seg_bmask), \n                     np.multiply(endoplasmicrec[row_ranges[0]:row_ranges[1], col_ranges[0]:col_ranges[1]], seg_bmask), \n                     np.multiply(nuclei[row_ranges[0]:row_ranges[1], col_ranges[0]:col_ranges[1]], seg_bmask)))#, \n                     #np.multiply(protein[row_ranges[0]:row_ranges[1], col_ranges[0]:col_ranges[1]], seg_bmask)))\n        cell_mask_lst.append(seg_img)\n        plt.figure(figsize=(20, 10))\n        mask = seg_bmask\n        img = seg_img\n        plt.imshow(img)\n        #plt.imshow(mask, alpha=0.6)\n        plt.show()\n    np.savez(train_id + '_cell_mask_lst.npz', cell_mask_lst)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.max(cell_mask)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"i = 0\ncell_mask_lst = []\ntrain_id = train_IDs[i]\nmt, er, nu, poi, images = build_image_names_train(image_id=train_id)\n# For nuclei (blue channel)\nnuc_segmentations = segmentator.pred_nuclei(images[2])\n# For full cells (all channels)\ncell_segmentations = segmentator.pred_cells(images)\nnuclei_mask, cell_mask = label_cell(nuc_segmentations[0], cell_segmentations[0])\nmicrotubule = plt.imread(mt[0])    \nendoplasmicrec = plt.imread(er[0])    \nnuclei = plt.imread(nu[0])\nprotein = plt.imread(poi[0])","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# thhis one looks cropped because it was cropped in the picture\nj = 7\nbmask = (cell_mask == j)\nrow_ranges = [min(np.nonzero(bmask)[0]), max(np.nonzero(bmask)[0])]\ncol_ranges = [min(np.nonzero(bmask)[1]), max(np.nonzero(bmask)[1])]\nseg_bmask = bmask[row_ranges[0]:row_ranges[1], col_ranges[0]:col_ranges[1]]\nseg_img = np.dstack((np.multiply(microtubule[row_ranges[0]:row_ranges[1], col_ranges[0]:col_ranges[1]], seg_bmask), \n             np.multiply(endoplasmicrec[row_ranges[0]:row_ranges[1], col_ranges[0]:col_ranges[1]], seg_bmask), \n             np.multiply(nuclei[row_ranges[0]:row_ranges[1], col_ranges[0]:col_ranges[1]], seg_bmask), \n             np.multiply(protein[row_ranges[0]:row_ranges[1], col_ranges[0]:col_ranges[1]], seg_bmask)))\ncell_mask_lst.append(seg_img)\nplt.figure(figsize=(20, 10))\nmask = seg_bmask\nimg = seg_img\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"i = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = cell_mask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# it gets this weird one\nj = 1\nbmask = (cell_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.max(nuclei_mask)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# no need to keep nuclei_mask == 0?\nj = 0\nbmask = (nuclei_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 1\nbmask = (nuclei_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"j = 8\nbmask = (nuclei_mask == j)\ni = 0\nplt.figure(figsize=(20, 10))\nmicrotubule = plt.imread(mt[i])    \nendoplasmicrec = plt.imread(er[i])    \nnuclei = plt.imread(nu[i])\nmask = bmask\nimg = np.dstack((microtubule, endoplasmicrec, nuclei))\nplt.imshow(img)\nplt.imshow(mask, alpha=0.6)\nplt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}