{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Color thresholding semantic segmentation\n", "\n", "Whole-slide images often contain artifacts like marker or acellular regions that\n", "need to be avoided during analysis. In this example we show how HistomicsTK can\n", "be used to develop saliency detection algorithms that segment the slide at low\n", "magnification to generate a map to guide higher magnification analyses. Here we\n", "show how how colorspace analysis can detect various elements such as inking\n", "or blood, as well as dense cellular regions, to improve the quality of\n", "subsequent image analysis tasks.\n", "\n", "This uses a thresholding and stain unmixing based pipeline to detect\n", "highly-cellular regions in a slide. The `run()` method of the\n", "`CDT_single_tissue_piece()` class has the key steps of the pipeline.\n", "\n", "Additional functionality includes contour extraction to get the final segmentation boundaries and to visualize them in DSA using one's preferred styles.\n", "\n", "**Here are some sample results:**\n", "\n", "![saliency_results](https://user-images.githubusercontent.com/22067552/80079317-1bcaa580-851e-11ea-9353-a435a2afc6eb.jpg)\n", "\n", "**Where to look?**\n", "\n", "```\n", " |_ histomicstk/\n", " |_saliency/\n", " |_cellularity_detection_thresholding.py \n", " |_tests/\n", " |_test_saliency.py\n", "```" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import tempfile\n", "import girder_client\n", "import numpy as np\n", "from pandas import read_csv\n", "from histomicstk.annotations_and_masks.annotation_and_mask_utils import (\n", " delete_annotations_in_slide)\n", "from histomicstk.saliency.cellularity_detection_thresholding import (\n", " Cellularity_detector_thresholding)\n", "\n", "import matplotlib.pylab as plt\n", "from matplotlib.colors import ListedColormap\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prepwork" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "APIURL = 'http://candygram.neurology.emory.edu:8080/api/v1/'\n", "SAMPLE_SLIDE_ID = '5d8c296cbd4404c6b1fa5572'\n", "\n", "gc = girder_client.GirderClient(apiUrl=APIURL)\n", "gc.authenticate(apiKey='kri19nTIGOkWH01TbzRqfohaaDWb6kPecRqGmemb')\n", "\n", "# This is where the run logs will be saved\n", "logging_savepath = tempfile.mkdtemp()\n", "\n", "# read GT codes dataframe\n", "GTcodes = read_csv('../../histomicstk/saliency/tests/saliency_GTcodes.csv')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# deleting existing annotations in target slide (if any)\n", "delete_annotations_in_slide(gc, SAMPLE_SLIDE_ID)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Let's explore the GTcodes dataframe" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
groupoverlay_orderGT_codeis_roiis_background_classcolorcomments
0outside_tissue-125500rgb(40,40,40)NaN
1roi025400rgb(0,0,0)NaN
2not_specified025301rgb(255,50,255)NaN
3blue_sharpie1600rgb(0,224,255)NaN
4blood2700rgb(255,255,0)NaN
5whitespace3800rgb(70,70,70)NaN
6maybe_cellular4900rgb(145,109,189)NaN
7top_cellular51000rgb(50,250,20)NaN
\n", "
" ], "text/plain": [ " group overlay_order GT_code is_roi is_background_class \\\n", "0 outside_tissue -1 255 0 0 \n", "1 roi 0 254 0 0 \n", "2 not_specified 0 253 0 1 \n", "3 blue_sharpie 1 6 0 0 \n", "4 blood 2 7 0 0 \n", "5 whitespace 3 8 0 0 \n", "6 maybe_cellular 4 9 0 0 \n", "7 top_cellular 5 10 0 0 \n", "\n", " color comments \n", "0 rgb(40,40,40) NaN \n", "1 rgb(0,0,0) NaN \n", "2 rgb(255,50,255) NaN \n", "3 rgb(0,224,255) NaN \n", "4 rgb(255,255,0) NaN \n", "5 rgb(70,70,70) NaN \n", "6 rgb(145,109,189) NaN \n", "7 rgb(50,250,20) NaN " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "GTcodes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Initialize the cellularity detector" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Explore the docs\n", "\n", "Get some idea about the implementation details and default behavior. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Detect cellular regions in a slide using thresholding.\n", "\n", " This uses a thresholding and stain unmixing based pipeline\n", " to detect highly-cellular regions in a slide. The run()\n", " method of the CDT_single_tissue_piece() class has the key\n", " steps of the pipeline. In summary, here are the steps\n", " involved...\n", "\n", " 1. Detect tissue from background using the RGB slide\n", " thumbnail. Each \"tissue piece\" is analysed independently\n", " from here onwards. The tissue_detection modeule is used\n", " for this step. A high sensitivity, low specificity setting\n", " is used here.\n", "\n", " 2. Fetch the RGB image of tissue at target magnification. A\n", " low magnification (default is 3.0) is used and is sufficient.\n", "\n", " 3. The image is converted to HSI and LAB spaces. Thresholding\n", " is performed to detect various non-salient components that\n", " often throw-off the color normalization and deconvolution\n", " algorithms. Thresholding includes both minimum and maximum\n", " values. The user can set whichever thresholds of components\n", " they would like. The development of this workflow was focused\n", " on breast cancer so the thresholded components by default\n", " are whote space (or adipose tissue), dark blue/green blotches\n", " (sharpie, inking at margin, etc), and blood. Whitespace\n", " is obtained by thresholding the saturation and intensity,\n", " while other components are obtained by thresholding LAB.\n", "\n", " 4. Now that we know where \"actual\" tissue is, we do a MASKED\n", " color normalization to a prespecified standard. The masking\n", " ensures the normalization routine is not thrown off by non-\n", " tissue components.\n", "\n", " 5. Perform masked stain unmixing/deconvolution to obtain the\n", " hematoxylin stain channel.\n", "\n", " 6. Smooth and threshold the hematoxylin channel. Then\n", " perform connected component analysis to find contiguous\n", " potentially-cellular regions.\n", "\n", " 7. Keep the n largest potentially-cellular regions. Then\n", " from those large regions, keep the m brightest regions\n", " (using hematoxylin channel brightness) as the final\n", " salient/cellular regions.\n", "\n", " \n" ] } ], "source": [ "print(Cellularity_detector_thresholding.__doc__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The only required arguments to initialize are `gc`, `slide_id`, and `GTcodes`.\n", "Everything else is optional and assigned defaults, but you may want to read up on\n", "what each argument does to adjust to your specific needs. The default behavior\n", "is defined at the beginning of the `__init__()` method." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Init Cellularity_Detector_Superpixels object.\n", "\n", " Arguments:\n", " -----------\n", " gc : object\n", " girder client object\n", "\n", " slide_id : str\n", " girder ID of slide\n", "\n", " GTcodes : pandas Dataframe\n", " the ground truth codes and information dataframe.\n", " WARNING: Modified inside this method so pass a copy.\n", " This is a dataframe that is indexed by the annotation group name\n", " and has the following columns...\n", "\n", " group: str\n", " group name of annotation, eg. mostly_tumor\n", " overlay_order: int\n", " how early to place the annotation in the\n", " mask. Larger values means this annotation group is overlayed\n", " last and overwrites whatever overlaps it.\n", " GT_code: int\n", " desired ground truth code (in the mask).\n", " Pixels of this value belong to corresponding group (class)\n", " is_roi: bool\n", " whether this group encodes an ROI\n", " is_background_class: bool\n", " whether this group is the default fill value inside the ROI.\n", " For example, you may decide that any pixel inside the ROI\n", " is considered stroma.\n", " color: str\n", " rgb format. eg. rgb(255,0,0)\n", "\n", " The following indexes must be present...\n", " outside_tissue, not_specified, maybe_cellular, top_cellular\n", "\n", " verbose : int\n", " 0 - Do not print to screen\n", " 1 - Print only key messages\n", " 2 - Print everything to screen\n", " 3 - print everything including from inner functions\n", "\n", " monitorPrefix : str\n", " text to prepend to printed statements\n", "\n", " logging_savepath : str or None\n", " where to save run logs\n", "\n", " suppress_warnings : bool\n", " whether to suppress warnings\n", "\n", " MAG : float\n", " magnification at which to detect cellularity\n", "\n", " color_normalization_method : str\n", " Must be in ['reinhard', 'macenko_pca', 'none']\n", "\n", " target_W_macenko : np array\n", " 3 by 3 stain matrix for macenko normalization\n", " obtained using rgb_separate_stains_macenko_pca()\n", " and reordered such that hematoxylin and eosin are\n", " the first and second channels, respectively.\n", "\n", " target_stats_reinhard : dict\n", " must contains the keys mu and sigma. Mean and sigma\n", " of target image in LAB space for reinhard normalization.\n", "\n", " get_tissue_mask_kwargs : dict\n", " kwargs for the get_tissue_mask() method. This is used\n", " to detect tissue from the slide thumbnail.\n", "\n", " keep_components : list\n", " list of strings. Names of components to exclude by\n", " HSI thresholding. These much be present in the index\n", " of the GTcodes dataframe\n", "\n", " get_tissue_mask_kwargs2 : dict\n", " kwargs for get_tissue_mask() used for iterative smoothing\n", " and thresholding the component masks after initial\n", " thresholding using the user-defined HSI/LAB thresholds.\n", "\n", " hsi_thresholds : dict\n", " each entry is a dict containing the keys hue, saturation\n", " and intensity. Each of these is in turn also a dict\n", " containing the keys min and max. See default value below\n", " for an example.\n", "\n", " lab_thresholds : dict\n", " each entry is a dict containing the keys l, a, and b.\n", " Each of these is in turn also a dict containing the keys\n", " min and max. See default value below for an example.\n", "\n", " stain_unmixing_routine_params : dict\n", " kwargs passed as the stain_unmixing_routine_params\n", " argument to the deconvolution_based_normalization method\n", "\n", " cellular_step1_sigma : float\n", " sigma of gaussian smoothing for first cellularity step\n", "\n", " cellular_step1_min_size : int\n", " minimum contiguous size for first cellularity step\n", "\n", " cellular_step2_sigma : float\n", " sigma of gaussian smoothing for second cellularity step\n", "\n", " cellular_largest_n : int\n", " Number of large contiguous cellular regions to keep\n", "\n", " cellular_top_n : int\n", " Number of final \"top\" cellular regions to keep\n", "\n", " visualize : bool\n", " whether to visualize results in DSA\n", "\n", " opacity : float\n", " opacity of superpixel polygons when posted to DSA.\n", " 0 (no opacity) is more efficient to render.\n", "\n", " lineWidth : float\n", " width of line when displaying region boundaries.\n", "\n", " \n" ] } ], "source": [ "print(Cellularity_detector_thresholding.__init__.__doc__)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving logs to: /tmp/tmpclyolr1y/2019-10-27_17-51.log\n" ] } ], "source": [ "# init cellularity detector\n", "cdt = Cellularity_detector_thresholding(\n", " gc, slide_id=SAMPLE_SLIDE_ID, GTcodes=GTcodes,\n", " verbose=2, monitorPrefix='test',\n", " logging_savepath=logging_savepath)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Set the color normalization values (optional)\n", "\n", "By default, color normalization is performed using the macenko method and standardizing to\n", "a hematoxylin and eosin standard from the target image\n", "TCGA-A2-A3XS-DX1_xmin21421_ymin37486 from Amgad et al, 2019.\n", "\n", "If you don't like this behavior, and would prefer to use your own target image or a\n", "different color normalization method, use the set_color_normalization_method() below." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set color normalization values to use from target image.\n", "\n", " Arguments:\n", " -----------\n", " ref_image_path : str\n", " path to target (reference) image\n", "\n", " color_normalization_method : str\n", " color normalization method to use. Currently, only\n", " 'reinhard' and 'macenko_pca' are accepted.\n", "\n", " \n" ] } ], "source": [ "print(cdt.set_color_normalization_target.__doc__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run the detector" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "test: set_slide_info_and_get_tissue_mask()\n", "test: Tissue piece 1 of 1\n", "test: Tissue piece 1 of 1: set_tissue_rgb()\n", "test: Tissue piece 1 of 1: initialize_labeled_mask()\n", "test: Tissue piece 1 of 1: assign_components_by_thresholding()\n", "test: Tissue piece 1 of 1: -- get HSI and LAB images ...\n", "test: Tissue piece 1 of 1: -- thresholding blue_sharpie ...\n", "test: Tissue piece 1 of 1: -- thresholding blood ...\n", "test: Tissue piece 1 of 1: -- thresholding whitespace ...\n", "test: Tissue piece 1 of 1: color_normalize_unspecified_components()\n", "test: Tissue piece 1 of 1: -- macenko normalization ...\n", "test: Tissue piece 1 of 1: find_potentially_cellular_regions()\n", "test: Tissue piece 1 of 1: find_top_cellular_regions()\n", "test: Tissue piece 1 of 1: visualize_results()\n" ] } ], "source": [ "tissue_pieces = cdt.run()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Check the results\n", "\n", "The resultant list of objects correspond to the results for each \"tissue piece\" detected in the slide. You may explore various attributes like the offset coordinates and labeled mask." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tissue piece 0: xmin 30455 xmax 113472 ymin 5403 ymax 67297\n" ] } ], "source": [ "print(\n", " 'Tissue piece 0: ',\n", " 'xmin', tissue_pieces[0].xmin,\n", " 'xmax', tissue_pieces[0].xmax,\n", " 'ymin', tissue_pieces[0].ymin,\n", " 'ymax', tissue_pieces[0].ymax,\n", ")" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# color map\n", "tmp = tissue_pieces[0].labeled.copy()\n", "tmp[0, :256] = np.arange(256)\n", "vals = ['black'] * 256\n", "vals[6] = 'cyan' # sharpie / ink\n", "vals[7] = 'yellow' # blood\n", "vals[8] = 'grey' # whitespace\n", "vals[9] = 'indigo' # maybe cellular\n", "vals[10] = 'green' # salient / top cellular\n", "cMap = ListedColormap(vals)\n", "\n", "plt.figure(figsize=(10,10))\n", "plt.imshow(tmp, cmap=cMap)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Check the visualization on HistomicsUI\n", "\n", "Now you may go to the slide on Digital Slide Archive and check the posted annotations." ] } ], "metadata": { "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.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }