从单分子图像测量 DNA 纤维的长度

信息处理 图像处理
2021-12-30 04:43:56

我是一名生物学家,在图像处理方面经验很少,但对 MATLAB 有足够的了解,并且拥有图像处理工具箱。理想情况下,我正在寻找一个基于 MATLAB 的解决方案,但概述如何去做的方法也会有所帮助。

更新(2011 年 11 月 28 日 )在使用合成图像(这是我在最初的问题中提出的)时,似乎存在某些问题(例如信号重叠和颜色定义)。我从 2 个通道附加了单独的图像:绿色在此处输入图像描述和红色在此处输入图像描述(合成图像中的绿松石区域可以忽略),以及合成图像在此处输入图像描述红色通道不好有两个原因:1. 由于背景较高,对比度较差,2. 由于红色似乎在背景级别渗入绿色。

特征被定义为合成图像上具有绿-红-绿松石-红-绿的区域,或者等效地,绿色和红色上的 2 个相邻线性段是共线且具有传染性的

我希望从两个单独的通道中查看图像可以更容易地识别特征。

我对算法有以下建议:

  1. 首先识别共线绿色段(并确定绿色段的长度)

  2. 确定红色通道中是否存在相互面对的相邻传染性和共线段(即绿色->红色-> <-红色<-绿色)。如果是,则定义从绿色线段结束的点(因为它们将与绿色线段重叠)到红色线段上最接近要素的另一个红色线段的点的红色线段长度。(即红色段的末端之一设置为重叠绿色段的末端)。

非常感谢!

背景

我的问题与从图像中提取特征有关:

在此处输入图像描述

原始图像 (tif) 位于此处:

图片示例 1(保管箱)

此图像由 3 个通道(tif 格式)合成:红色、绿色和绿松石色。绿松石色的纤维简单地标记了我们在盖玻片上的所有 DNA。感兴趣的特征是图像中间的单条 DNA 链上的绿-红-绿松石-红-绿特征。

红色通常是最嘈杂的。这个例子很好,因为对比度很好。但是,有时图像不是很好,并且整个图像都有色调,因此硬编码绿色和红色的特定 RGB 值可能不适用于所有图像。另外,请注意,纤维不一定是水平的,它们可能会旋转(但绝不是垂直的)。

请参阅此图像以获取示例:

在此处输入图像描述 原始图像 (tif) 位于此处:

图片示例 2(保管箱)

此外,有时单个图像具有许多此类特征,有时同一 DNA 链上有多个特征。最后,有时可能只有部分特征(即孤立的绿色或孤立的红色或孤立的绿红片段,但未配对)。

题:

如果有人可以帮助我获得绿色和红色段的各个部分的长度,我将不胜感激,即因为感兴趣的特征是绿色-红色--绿松石--红色-绿色,每个特征都有一个 5 个值的数组(第一个绿色段的长度,第一个红色段的长度,绿松石段的长度,第二个红色段的长度和第二个绿色段的长度)。

1个回答

Mathematica 中的示例:

(* Get your image*)
img = Import["http://dl.dropbox.com/u/18072545/c_29.tif"];
(*Detect the extended minima and remove background*)
nB = ImageSubtract[img, ColorNegate@FillingTransform@ColorNegate[img]]  

在此处输入图像描述

(*Separate RGB channels*)
cS = ImageAdjust /@ ColorSeparate[img]

在此处输入图像描述

(*Binarize*)
bcS = Binarize[#, .4] & /@ cS  

在此处输入图像描述

(*Remove large elements*)
tH = TopHatTransform[#, DiskMatrix[2]] & /@ bcS  

在此处输入图像描述

(*Detect lines using a Hough Transform*)
lines = ImageLines[#, .01, .8] & /@ tH
(*Plot them*)
Show[img, Graphics[{
   Thickness[.01], Red, Line /@ (lines[[1]]),
   Thickness[.006], Green, Line /@ (lines[[2]]),
   Thickness[.004], Blue, Line /@ (lines[[3]])}]]
(*Red and green are superimposed*)  

在此处输入图像描述

编辑

在这里,您可能会看到红色和绿色集群分开。正如您可以想象的那样,您必须决定一部分何时是红色的!

在此处输入图像描述