diff --git a/example.ipynb b/example.ipynb index fd273be..ed48a04 100644 --- a/example.ipynb +++ b/example.ipynb @@ -2,49 +2,40 @@ "cells": [ { "cell_type": "code", - "execution_count": 18, - "id": "7418ef57-3ed3-4d71-b09c-06db2e283651", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "plt.style.use('dark_background')\n", - "import matplotlib as mpl\n", - "%matplotlib inline\n", - "mpl.rcParams['figure.dpi'] = 300" - ] - }, - { - "cell_type": "code", - "execution_count": 47, + "execution_count": 1, "id": "30a3c190-5045-4840-b4c2-6d263b7a3178", "metadata": {}, "outputs": [], "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", "import skimage.io\n", "import os\n", "from pathlib import Path\n", + "import ncolor\n", + "\n", "masks_dir = Path(os.path.dirname(ncolor.__file__)).parent.absolute()\n", "masks = skimage.io.imread(os.path.join(masks_dir,'example.png'))" ] }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 2, "id": "8f85ebf1-19a9-4bd7-afca-e077d99f9018", "metadata": {}, "outputs": [ { - "ename": "AttributeError", - "evalue": "module 'ncolor' has no attribute 'label'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/var/folders/3y/nc3wp7354710z8t3xkmylq180000gn/T/ipykernel_21279/4065097680.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0my1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0my2\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mx1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mx2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbbx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0mm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmasks\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0my1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0my2\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mx1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mx2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 60\u001b[0;31m \u001b[0mnc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mncolor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 61\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0mcombined\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrescale\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mrescale\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mAttributeError\u001b[0m: module 'ncolor' has no attribute 'label'" - ] + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "dark" + }, + "output_type": "display_data" } ], "source": [ @@ -53,6 +44,13 @@ " T = np.interp(T, (T[:].min(), T[:].max()), (0, 1))\n", " return T\n", "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "plt.style.use('dark_background')\n", + "import matplotlib as mpl\n", + "%matplotlib inline\n", + "mpl.rcParams['figure.dpi'] = 300\n", + "\n", "from skimage import measure \n", "from scipy.ndimage import find_objects, binary_dilation\n", "\n", @@ -102,8 +100,7 @@ " return [[0,ylim,0,xlim]]\n", " return bboxes\n", "\n", - "import ncolor.ncolor as ncolor\n", - "# import ncolor\n", + "import ncolor\n", "bbx = crop_bbx(masks)\n", "y1,y2,x1,x2 = bbx[0]\n", "m = masks[y1:y2,x1:x2]\n", @@ -122,63 +119,163 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": null, "id": "a3fd6807-a5d6-408a-a8a1-fae9dcfa1d5b", "metadata": {}, + "outputs": [], + "source": [ + "rnc = rescale(nc)\n", + "splitview = rescale(m)\n", + "sz = m.shape\n", + "x, y = np.indices(sz)\n", + "mask = y-x*sz[1]/sz[0]>0 # y < x\n", + "splitview[mask] = rnc[mask]\n", + "plt.imshow(splitview)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "98835a5d-081e-4bee-b2bc-595e01638033", + "metadata": {}, + "outputs": [], + "source": [ + "ncolor.__dict__\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "bbdcfb3f-2eb0-4218-9d39-755d3e89ec79", + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "['__builtins__',\n", + " '__cached__',\n", + " '__doc__',\n", + " '__file__',\n", + " '__loader__',\n", + " '__name__',\n", + " '__package__',\n", + " '__path__',\n", + " '__spec__',\n", + " 'format_labels',\n", + " 'label']" ] }, - "execution_count": 49, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" - }, + } + ], + "source": [ + "dir(ncolor)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60af2068-6890-4f61-91ff-8c16c3bf3b27", + "metadata": {}, + "outputs": [], + "source": [ + "ncolor.label(m)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0ba8d82e-3de3-4cc2-a7ea-8511ef8c8792", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2022-01-05 14:17:03,680 [INFO] WRITING LOG OUTPUT TO /Users/kcutler/.cellpose/run.log\n" + ] + } + ], + "source": [ + "import cellpose" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "e150615d-8164-4b22-a221-26e5bca48bd9", + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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\n", "text/plain": [ - "
" + "['__builtins__',\n", + " '__cached__',\n", + " '__doc__',\n", + " '__file__',\n", + " '__loader__',\n", + " '__name__',\n", + " '__package__',\n", + " '__path__',\n", + " '__spec__',\n", + " 'dynamics',\n", + " 'io',\n", + " 'log_file',\n", + " 'logger',\n", + " 'logger_setup',\n", + " 'metrics',\n", + " 'omnipose',\n", + " 'plot',\n", + " 'resnet_torch',\n", + " 'transforms',\n", + " 'utils']" ] }, - "metadata": { - "needs_background": "dark" - }, - "output_type": "display_data" + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "rnc = rescale(nc)\n", - "splitview = rescale(m)\n", - "sz = m.shape\n", - "x, y = np.indices(sz)\n", - "mask = y-x*sz[1]/sz[0]>0 # y < x\n", - "splitview[mask] = rnc[mask]\n", - "plt.imshow(splitview)" + "dir(cellpose)\n" ] }, { "cell_type": "code", "execution_count": null, - "id": "98835a5d-081e-4bee-b2bc-595e01638033", + "id": "558c5be9-64b8-430c-8465-28acd2478d1e", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "dir(cellpose.plot.ncolorlabel)" + ] }, { "cell_type": "code", "execution_count": null, - "id": "bbdcfb3f-2eb0-4218-9d39-755d3e89ec79", + "id": "dc4dd340-af54-44dc-b694-d6a90ee8952a", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "cellpose.plot.ncolorlabel(m)" + ] }, { "cell_type": "code", "execution_count": null, - "id": "60af2068-6890-4f61-91ff-8c16c3bf3b27", + "id": "66731abe-a4ec-413b-b3da-65e55bd49bf6", + "metadata": {}, + "outputs": [], + "source": [ + "import ncolor\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6f81164-0d34-4f48-a0ac-6f9ddba72766", "metadata": {}, "outputs": [], "source": [] diff --git a/ncolor/__init__.py b/ncolor/__init__.py index e69de29..496049c 100644 --- a/ncolor/__init__.py +++ b/ncolor/__init__.py @@ -0,0 +1,2 @@ +from .label import label +from .format_labels import format_labels \ No newline at end of file diff --git a/ncolor/ncolor.py b/ncolor/ncolor.py deleted file mode 100644 index 98d00cd..0000000 --- a/ncolor/ncolor.py +++ /dev/null @@ -1,156 +0,0 @@ -#4-color algorthm based on https://forum.image.sc/t/relabel-with-4-colors-like-map/33564 with extensions and improvements - -import numpy as np -from numba import njit -import scipy -from scipy.ndimage.morphology import binary_dilation, binary_erosion -import edt -import random -import fastremap -from skimage import measure - -def label(lab,n=4,conn=2): - # needs to be in standard label form - # but also needs to be in int32 data type to work properly; the formatting automatically - # puts it into the smallest datatype to save space - lab = format_labels(lab).astype(np.int32) - idx = connect(lab, conn) - idx = mapidx(idx) - colors = render_net(idx, n=n, rand=10) - lut = np.ones(lab.max()+1, dtype=np.uint8) - for i in colors: lut[i] = colors[i] - lut[0] = 0 - return lut[lab] - -def neighbors(shape, conn=1): - dim = len(shape) - block = scipy.ndimage.generate_binary_structure(dim, conn) - block[tuple([1]*dim)] = 0 - idx = np.where(block>0) - idx = np.array(idx, dtype=np.uint8).T - idx = np.array(idx-[1]*dim) - acc = np.cumprod((1,)+shape[::-1][:-1]) - return np.dot(idx, acc[::-1]) - -@njit(fastmath=True) -def search(img, nbs): - s, line = 0, img.ravel() - rst = np.zeros((len(line),2), img.dtype) - for i in range(len(line)): - if line[i]==0:continue - for d in nbs: - if line[i+d]==0: continue - if line[i]==line[i+d]: continue - rst[s,0] = line[i] - rst[s,1] = line[i+d] - s += 1 - return rst[:s] - -def connect(img, conn=1): - buf = np.pad(img, 1, 'constant') - nbs = neighbors(buf.shape, conn) - rst = search(buf, nbs) - if len(rst)<2: - return rst - rst.sort(axis=1) - key = (rst[:,0]<<16) - key += rst[:,1] - order = np.argsort(key) - key[:] = key[order] - diff = key[:-1]!=key[1:] - idx = np.where(diff)[0]+1 - idx = np.hstack(([0], idx)) - return rst[order][idx] - -def mapidx(idx): - dic = {} - for i in np.unique(idx): dic[i] = [] - for i,j in idx: - dic[i].append(j) - dic[j].append(i) - return dic - -# create a connection mapping -def render_net(conmap, n=4, rand=12, depth=0, max_depth=5): - thresh = 1e4 - if depth0 and count0]: - mask = labels==j - lbl = measure.label(mask) - regions = measure.regionprops(lbl) - regions.sort(key=lambda x: x.area, reverse=True) - if len(regions) > 1: - print('Warning - found mask with disjoint label.') - for rg in regions[1:]: - if rg.area <= min_area: - labels[rg.coords[:,0], rg.coords[:,1]] = 0 - print('secondary disjoint part smaller than min_area. Removing it.') - else: - print('secondary disjoint part bigger than min_area, relabeling. Area:',rg.area, - 'Label value:',np.unique(labels[rg.coords[:,0], rg.coords[:,1]])) - labels[rg.coords[:,0], rg.coords[:,1]] = np.max(labels)+1 - - rg0 = regions[0] - if rg0.area <= min_area: - labels[rg0.coords[:,0], rg0.coords[:,1]] = 0 - print('Warning - found mask area less than', min_area) - print('Removing it.') - - fastremap.renumber(labels,in_place=True) # convenient to have unit increments from 1 to N cells - labels = fastremap.refit(labels) # put into smaller data type if possible - return labels \ No newline at end of file diff --git a/setup.py b/setup.py index 5a22241..424d4f6 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup install_deps = ['numpy>=1.20.0', 'scipy', 'numba', - 'edt','fastremap','scikit-image'] + 'fastremap','scikit-image'] with open("README.md", "r") as fh: long_description = fh.read() @@ -23,9 +23,9 @@ packages=setuptools.find_packages(), use_scm_version=True, install_requires = install_deps, - # tests_require=[ - # 'pytest' - # ], + tests_require=[ + 'pytest' + ], include_package_data=True, classifiers=( "Programming Language :: Python :: 3", diff --git a/test_ncolor.py b/test_ncolor.py index 147c48a..3d3b35d 100644 --- a/test_ncolor.py +++ b/test_ncolor.py @@ -2,7 +2,7 @@ import os from pathlib import Path import skimage.io -import ncolor.ncolor as ncolor +import ncolor def test_ncolor():