{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"Exploring the kidney vascular images. WIP. ","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19"}},{"cell_type":"code","source":"from skimage.io import imread, imshow\nimport matplotlib.pylab as plt\nimport numpy as np\nimport pandas as pd\n%matplotlib inline","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# From https://www.kaggle.com/code/leonidkulyk/eda-hubmap-hhv-interactive-annotations\ndef get_cartesian_coords(coords, img_height=512):\n    coords_array = np.array(coords).squeeze()\n    xs = coords_array[:, 0]\n    ys = coords_array[:, 1]\n    \n    return xs, ys","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import json\nwith open(\"../input/hubmap-hacking-the-human-vasculature/polygons.jsonl\") as f:\n    data = f.read()\n    \n    \nres = []\nfor file in data.splitlines():\n    d = json.loads(file)\n    res.append(d)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"d = res[500]\nimg_id = d[\"id\"]\npath = f\"../input/hubmap-hacking-the-human-vasculature/train/{img_id}.tif\"\nimg = imread(path)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, ax = plt.subplots(1, 1, figsize=(10, 10))\nax.imshow(img)\nfor e in d[\"annotations\"]:\n    if e[\"type\"] == \"blood_vessel\":\n        coordinates = e[\"coordinates\"]\n        xs, ys = get_cartesian_coords(coordinates)\n        ax.plot(xs, ys, c=\"red\")\nfig.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Meta Files Exploration","metadata":{}},{"cell_type":"code","source":"wsi_meta_df = pd.read_csv(\"../input/hubmap-hacking-the-human-vasculature/wsi_meta.csv\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"wsi_meta_df","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tile_meta_df = pd.read_csv(\"../input/hubmap-hacking-the-human-vasculature/tile_meta.csv\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tile_meta_df.head()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tile_meta_df.groupby(\"source_wsi\").count()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tile_meta_df.groupby(\"dataset\").count()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tile_meta_df.groupby([\"dataset\", \"source_wsi\"]).count()[\"id\"]","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Stitching tiles","metadata":{}},{"cell_type":"markdown","source":"In what follows, I will stitch the tiles of the same WSI.\n\nLet's do this for WSI 1.","metadata":{"execution":{"iopub.status.busy":"2023-06-27T18:43:10.567144Z","iopub.execute_input":"2023-06-27T18:43:10.567565Z","iopub.status.idle":"2023-06-27T18:43:10.582785Z","shell.execute_reply.started":"2023-06-27T18:43:10.567536Z","shell.execute_reply":"2023-06-27T18:43:10.581174Z"}}},{"cell_type":"code","source":"df  = tile_meta_df[tile_meta_df.source_wsi == 1]","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}