免疫组织化学染色分色

颜色反卷积包括按颜色对特征进行分离。

在本例中,我们将免疫组织化学(IHC)染色与苏木素反染色分开。分离是通过中描述的方法实现的 1, 这就是所谓的“颜色去卷积”。

FHL2蛋白的IHC染色表达用二氨基联苯胺(DAB)显示,呈棕色。

1

A.C.鲁伊弗罗克和D.A.约翰斯顿,<通过颜色去卷积的组织化学染色的量化>,<分析和定量细胞学和组织学/国际细胞学学会 [and] 美国细胞学学会,第23卷,第4期,第291-9页,2001年8月。

import numpy as np
import matplotlib.pyplot as plt

from skimage import data
from skimage.color import rgb2hed, hed2rgb

# Example IHC image
ihc_rgb = data.immunohistochemistry()

# Separate the stains from the IHC image
ihc_hed = rgb2hed(ihc_rgb)

# Create an RGB image for each of the stains
null = np.zeros_like(ihc_hed[:, :, 0])
ihc_h = hed2rgb(np.stack((ihc_hed[:, :, 0], null, null), axis=-1))
ihc_e = hed2rgb(np.stack((null, ihc_hed[:, :, 1], null), axis=-1))
ihc_d = hed2rgb(np.stack((null, null, ihc_hed[:, :, 2]), axis=-1))

# Display
fig, axes = plt.subplots(2, 2, figsize=(7, 6), sharex=True, sharey=True)
ax = axes.ravel()

ax[0].imshow(ihc_rgb)
ax[0].set_title("Original image")

ax[1].imshow(ihc_h)
ax[1].set_title("Hematoxylin")

ax[2].imshow(ihc_e)
ax[2].set_title("Eosin")  # Note that there is no Eosin stain in this image

ax[3].imshow(ihc_d)
ax[3].set_title("DAB")

for a in ax.ravel():
    a.axis('off')

fig.tight_layout()
Original image, Hematoxylin, Eosin, DAB

现在我们可以很容易地操纵苏木素和DAB的“通道”:

from skimage.exposure import rescale_intensity

# Rescale hematoxylin and DAB signals and give them a fluorescence look
h = rescale_intensity(ihc_hed[:, :, 0], out_range=(0, 1),
                      in_range=(0, np.percentile(ihc_hed[:, :, 0], 99)))
d = rescale_intensity(ihc_hed[:, :, 2], out_range=(0, 1),
                      in_range=(0, np.percentile(ihc_hed[:, :, 2], 99)))

# Put the two channels into an RGB image as green and blue channels
zdh = np.dstack((null, d, h))

fig = plt.figure()
axis = plt.subplot(1, 1, 1, sharex=ax[0], sharey=ax[0])
axis.imshow(zdh)
axis.set_title("Stain separated image (rescaled)")
axis.axis('off')
plt.show()
Stain separated image (rescaled)

脚本的总运行时间: (0分1.021秒)

Gallery generated by Sphinx-Gallery