陆恩泽,林志松,朱滨△,邢军芬
(1.上海应用技术学院 电气与电子工程学院,上海 201418;2.上海百傲科技股份有限公司 上海 201418)
生物芯片技术是近些年产生的一项生物高新技术,它以载玻片,塑料片或者硅片为介质,上面固定了大量按特定方式和手段排列的核酸片段作为探针,探针代表了特定的基因信息[1-2]。其主要用于疾病的检测预防,用药指导,食品安全检测等领域[3]。目前市场上的生物芯片根据探针标记方法可分为两大类:荧光标记生物芯片和显色标记生物芯片,由于显色标记芯片的原料易得、制作成本低,并且显色芯片检测设备价格低廉、稳定性好,显色生物芯片逐渐成为市场主流。生物芯片与生物靶标进行反应后,可以获得人体内生物靶标的各种信息并以图像呈现,生物芯片识读仪对图像进行采集、分析、处理,并输出人体内生物靶标的各种信息。
目前同类型显色生物芯片识图像读仪配套软件存在一些缺陷,比如上海百傲科技生产的第二代生物芯片识读仪是将扫描得到的图片通过USB数据线传输到PC端,再使用Visual C++编写的图像处理程序对图片进行分析,然而单独使用Visual C++编写图像处理程序,代码较为复杂。而且对于微阵列图像信号点的识别和定位,还需以人工手动操作的方式进行。这无疑降低了工作效率,一定程度上制约了显色生物芯片产品的发展。而且现有的显色生物芯片识读仪软件,缺乏对于原始数据的记录保存。鉴于此,我们开发了一套新型显色生物芯片识读仪配套软件。本软件在Linux嵌入式系统下使用,配置了opencv的eclipse编写图像处理程序。opencv是开源发型的计算机视觉库,支持Windows和Linux操作系统,具有优化代码,统一结构和强大的图像和矩阵运算能力,减少图像处理算法难度[4]。
前期已自主研制了基于CCD的显色生物芯片识读仪,在此基础上设计本研究所报道的识读配套软件,配套软件由分析软件和判型软件构成。芯片识读仪通过CCD工业相机拍摄生物芯片生成原始图像,图像以BMP格式存储。每张芯片贴有CODE128条形码,条形码代表芯片图像的阵列信息,识读仪扫描条码信息传递给分析软件,分析软件对图像进行处理分析。本图像分析软件是在CCD相机中运行的,直接在识读仪内部对生物芯片图像进行处理分析,最终输出相关基因信号点的强度值。识读仪与PC端通过有线以太网连接进行数据传递。分析数据传递到PC端,根据生物芯片产品的类型以及获得的信号值进行基因判型。软件的硬件拓扑结构见图1。
图1 软件硬件拓扑结构图
图像分析软件主要是实现基因信号点的精准读值[5]。从软件功能上来讲,本研究设计的图像分析软件思路是对原始图像进行预处理,从而完成信号点识别和坐标信息提取,最终根据坐标信息读取原始图像信号点真实值。软件还应具备信息存储功能,以及实现软件与PC端的通信。见图2。
图2 图像分析软件架构
图像预处理是为了实现信号点准确定位。生物芯片是通过高精度的点样仪制备的,因此,信号点的区域位置和机械尺寸是固定的。本软件先对原始图像(图3)裁剪取出成像ROI区域,ROI区域的提取减少了图像处理工作量。接着使用亮度归一化方法增强信号点与背景的对比度,有效提高了轮廓识别效果。亮度进行归一化采用直方图均衡法,本研究使用了opencv中的cvEqualizeHist函数用于此操作。接着对归一化后的图像进行反色二值化,由于生物芯片图像的每个信号点强度值不一,且受背景光源的影响导致背景不均匀,在此采用局部自适应阈值法对反色后的图像进行二值化,阈值由局部邻域块高斯加权得出。根据本生物芯片图像信号点大小,通过反复实验,设定局部邻域块大小为15。
图3 显色生物芯片图像
生物芯片图像的噪声主要来源于芯片制备过程中灰尘的污染,杂交的实验污染,待检测样品中核酸,蛋白质,细胞或组织碎片的干扰,以及识读仪使用过程中的污染[6]。图像的噪声影响信号点的识别和定位,因此图像去噪至关重要。根据显色生物芯片图像噪声特点,本软件使用数学形态学运算[7]对图像进行去噪,运算方法为开运算,内核的形状为圆形。图4为对图3预处理后的效果图。
图4 预处理后二值化图像
本研究在图像预处理中使用亮度归一化,增强了前后景对比度,因此,信号点识别中主要使用轮廓搜索的方法。使用Canny边缘检测算法进行边缘检测,同时使用opencv提供的cvFindContours()函数搜寻信号点轮廓。形态学去噪并不能完全消除噪声的影响,图4中依然会存在噪点。软件在轮廓搜索时势必会取到灰尘轮廓,导致对信号点的坐标定位错误。通过大量生物芯片图像分析可见,灰尘轮廓远小于信号点轮廓,且噪点所处的位置不在阵列位置上(见图4)。本软件搭建了配置文件处理模块,文件中设置了信号点识别与信号点取值所需的配置参数。软件对所有轮廓进行搜索排序,筛选出轮廓大小符合设定阈值的信号点。对于每个轮廓中心位置,使用opencv中的cvBoundingRect()计算出该轮廓的外接矩形记为rect,该矩形的位置和长宽分别为rect.x,rect.y,rect.width和rect.height,则轮廓中心坐标公式为(rect.x+rect.width/2, rect.y-rect.height/2)。
本软件运行的识读仪在扫描过程中自动读取芯片条码信息,其代表芯片图像的阵列信息。本软件根据条码信息实现信号点自动定位代替人工输入阵列信息的步骤,有效避免自动定位的错误。见图3,本软件处理的所有生物芯片图像均存在最左边3列标志列,而其他列探针区域信号点不一定显色,而荧光生物芯片探针区域均有强度值不一的荧光点。在本设计中,软件先确定三列质控点位置,再定位其他信号点。若采用文献[8]所示的基于图像投影定位方法,当存在大面积未消除背景噪声时会定位失败。而本软件算法会对找到的每个点轮廓遍历搜索邻居点,根据点的坐标值判断是否为某种间距的点阵,再找点阵中的最左列和最上行,最后确定标志列区域位置,再根据配置文件预设行列间距生成虚拟定位网格。对其他确定位置点阵各列各行点的分别计算横纵坐标值和虚拟定位网格线坐标值的差值,按误差最小来拟合某行和某列的垂直线和水平直线,实现对虚拟网格线坐标的修正。按照此算法实现的信号点识别和定位效果见图5。
图5 信号点识别和定位结果
本软件对信号点区域透光率值从大到小排序,根据配置文件设定的正常透光率范围阈值参数,剔除超过正常透光范围的像素点,计算其余像素点透光率的平均值,作为该信号点区域的透光率,从而能排除灰尘噪点干扰准确取值。在选取背景值上,软件对框定背景范围内所有像素点的透光率值,将其从小到大排序,取透光率最大的5%的像素点平均值做为全局背景值。再使用同样方法对每个信号点所在大小为15像素局部块区域计算得出局部背景值。比较局部背景值与全局背景值的差异,当受到噪声影响差值大于阈值时,选择全局背景值进行计算。实际输出信号值计算公式如下:
式中v代表输出信号值,f为前景信号值,bj为局部背景值,bq为全局背景值,th为本软件设定的差值阈值。
数据输出模块将所有的信号点位置和取值信息输出到Linux系统下搭建的samba服务器的共享文件夹中,同时输出原始图像,格式为BMP。PC端软件根据识读仪的IP地址通过网上邻居获取相关数据文件。
配置文件使用LUA脚本,其中定义了信号点定位与取值所需的相关配置参数,本软件在进行一系列图像处理分析过程中均会调用此配置文件。Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。
设备读取的信号值最终传送到PC端基因判型软件,基因判型软件根据芯片的类型,将信号值填入相应内嵌公式的excel模板表格,自动计算各探针点信号比值,通过与实验统计确定的纯合/杂合基因判定阈值[9]进行比较分析,判定所检测各基因类型并自动以表格形式输出结果。
本图像软件使用ANSI C语言开发,使用GCC编译器,程序开发IDE工具为Eclipse,开发环境为Linux。使用C语言开发能保证在大数据量的图像处理工作中,保持比较高的运行效率。本软件在图像处理过程中还调用了opencv库函数。基因判型软件在Windows环境下使用Visual C++开发。
在本实验中,分别用批准上市的BE-2.0生物芯片识读仪(沪食药监械(准)字2012第2400062号)软件和本文设计的生物芯片识读仪软件对来自临床实验室的三种(CYP2C19、MTHFR、ALDH2)显色型基因芯片产品各200张进行检测,将检测结果按照kappa检验法[10]分析。分别得到4组kappa系数,以此评价软件性能的一致性,结果如下:
(1)CYP2C19检测结果
对于636位点,两者均检出的有195例,两者检测结果100%相同,其中GG型178例,AG型17例,AA型0例,kappa系数为1。对于681位点[9],两者均检出的有197例,两者检测结果100%相同,其中GG型89例,AG型92例,AA型16例,kappa系数为1。
(2)MTHFR检测结果
两者均检出的有188例,两者检测结果100%相同,其中CC型49例,CT型89例,TT型50例,kappa系数为1。
(3)ALDH2检测结果
两者均检出的有190例,两者检测结果100%相同,其中Glu504Glu型129例,Glu504Lys型55例,TT型6例,kappa系数为1。
表1是二者检出率的比较。本研究设计的软件检出率略优于已上市产品BE-2.0生物芯片识读仪软件。判型的准确性从侧面论证本软件的信号点识别定位以及读值准确性,因此,本研究设计的软件是可靠的。
表1 检出率对比
本软件系统分为嵌入式图像分析软件和PC端判型软件,嵌入式软件通过读取条码信息实现了在识读仪扫描过程中自动输出相关数据,PC端软件通过调取扫描数据直接输出检测结果。这一配套软件数据输出准确,使用方便,分析效率高,可在以玻璃材质为载体的显色生物芯片识读仪上推广使用,并为显色生物芯片图像分析软件设计提供思路。