谭鑫平,甘 浪,林成旭,李雪梅,李 倩,闫 旺,陈 刚,廖广兰,刘智勇
(1.华中科技大学机械科学与工程学院,湖北 武汉 430074;2.武汉康录生物技术股份有限公司,湖北 武汉 430000)
病理染色技术应用于细胞观察和病理分析中,对疾病的诊断有着关键的作用[1-2]。FISH(fluorescence in situ hybridization,荧光原位杂交)染色是一种以 DAPI(4',6-Diamidino-2-phenylindole dihydrochloride,4',6-二脒基-2-苯基吲哚)作为荧光染料的病理检测技术,常被用于检测细胞是否凋亡,并在癌细胞诊断、肿瘤检测与治疗中得到广泛应用[3]。
传统的手工病理切片染色须耗费人力和物力,且存在周期长、操作繁琐等缺点,不适用于对大量样本的染色[4-5];同时,染色过程中的操作失误和环境变化也会对染色结果产生影响。在机电一体化技术不断发展的背景下,自动化病理染色系统应运而生。然而,目前国内的自动化病理染色技术还不成熟,FISH染色的全自动化水平不高。如厦门通灵生物医药科技有限公司推出的Aliya自动免疫组化染色仪,只能实现烤片、脱蜡等部分FISH染色功能。国外自动染色系统的价格昂贵,而采用国产自动化染色机进行FISH染色时可能出现多种问题而导致临床诊断出现失误[6-10],比如:在染色过程中会出现试剂少滴、多滴或未滴的情况,导致染色效果不佳;在加下一试剂时,上一次滴加的试剂未完全去除而产生弱染色;染色剂滴加位置产生偏差,导致染色不均匀。究其原因,是染色控制系统存在诸多缺陷。
因此,笔者面向FISH染色技术,以全自动病理染色控制系统为研究对象,针对当前自动化染色技术存在的缺陷与不足,利用Keil5开发系统、QT和Microsoft Visual Studio开发软件,基于STM32和GUI(graphical user interface,图形用户界面)开展染色控制系统的优化设计与实现,解决自动染色控制系统存在的关键问题,研发高效率、高鲁棒性、高度集成化的染色控制系统,以提高病理染色的质量和效率。
染色控制系统包括指令控制系统、执行控制系统和电源模块三大部分,如图1所示。指令控制系统由上位机和下位机组成,其根据用户选择生成控制指令。执行控制系统包括运动控制模块、传感反馈模块、温度控制模块、继电器模块和故障报警模块,各模块分别与上位机或下位机直接连接。其中:运动控制模块实现对电机、蠕动泵、注射泵运动的控制;传感反馈模块采用下位机反馈与多种传感器监测相结合的模式,实现对系统开机状态、启停状态、运行时间、剩余时间、运行步骤、空腔温度及湿度、串口连接状态、电机状态等的实时监测。上位机、下位机和执行控制系统之间通过有线连接的方式进行通信。
图1 染色控制系统组成Fig.1 Composition of staining control system
为了满足染色控制系统响应快速和功耗低的要求,选用意法半导体有限公司(ST Microelectronics)生产的STM32F103ZET6单片微型计算机作为下位机控制器。这种嵌入式单片机采用32位CM3作为内核处理器[11],其芯片采用最佳代码密度,具有可预见的运行时间和改进的调试功能,能够在低动态功耗下实现高性能。该单片机的I/O(input/output,输入/输出)口多达112个,一共具有8个定时器[12-13];另外,开发板不仅板载了一组3.3 V和一组5 V的电源输出,还有一个适合DC 6~24 V输入的外部电源输入口来保证5 V电源的稳定性。单片机提供USB(universal serial bus,通用串行总线)串口、电源接口和数字/模拟组合接口等10多种接口,能够满足复杂控制系统的需求。
本研究中,传感系统主要包括气泡传感器、光电开关、光纤传感器和气体压力传感器等传感器件。
气泡传感器用于检测蠕动泵运转是否正常。选用美国泰科电子有限公司的AD-101超声波气泡传感器,其响应时间为0.22 ms,工作温度范围为0~40℃,输出3.3 V的TTL(transistor-transistor logic,晶体管-晶体管逻辑)电平信号。
光电开关用于电机初始位置校准。选用日本Panasonic公司的PM-L25光学传感器,其检测间距为6 mm,重复精度可达0.1 mm,反应时间小于80 μs,工作温度范围为-25~55℃。
光纤传感器用于检测移液枪头是否提取成功。选用惠州博得公司的漫反射光纤传感器,其反应时间为400 μs,消耗电流在400 mA以下,工作温度范围为-10~55℃。
气体压力传感器用于检测盖玻片是否提取成功。选用风启电子科技有限公司的XGZP6847A气体压力传感器,其测压范围为-100~0 kPa,工作温度范围为-20~100℃。
采用平板电脑作为上位机,型号为Surface Go 2,其配置如下:CPU为Intel(R)Pentium(R)Gold Processor 4425Y@1.70 GHz;GPU 为 Intel(R)UHD Graphics 615;内存容量为4 GB,存储容量为128 GB;操作系统为Windows 10。为了实现电机、蠕动泵、注射泵等部件的协调运动,设计了以STM32为核心的主电路。其包括电脑与STM32之间的串口通信电路、STM32与运动部件(M1至M6)之间的驱动电路和电源与STM32电源控制器(power controller,PWR)之间的外围电路。主电路连接如图2所示。
图2 染色控制系统主电路连接示意Fig.2 Main circuit connection schematic of staining control system
运动部件主要包括伺服电机(M1)、直线电机(M2)、蠕动泵(M3)、微量注射泵(M4)、真空泵(M5)和气泵(M6)。M1选用雷赛智能控制股份有限公司的42CME08伺服电机;M2选用宁波格特威电机有限公司的11HY3401-25D52型直线步进电机;M3选用卡默尔流体科技(上海)有限公司的KCS-SA-A-B166蠕动泵;M4选用美国TRICONTINENT公司的Air-Z Legacy微量注射泵;M5和M6分别选用德国THOMAS公司的1410隔膜真空泵和6015SE气泵。主要运动部件的参数如表1所示。Driver1至Driver4为驱动器,除与电机或泵配套的驱动器外,其余驱动器选用德轩电机有限公司的DM420驱动器。
表1 染色控制系统主要运动部件的参数Table 1 Parameters of main moving parts of staining control system
多个伺服电机与直线电机的配合运动使机械部件达到预定位置。利用蠕动泵实现染色过程中试剂滴加功能。对于体积精度要求较高的微量试剂,则利用高精度微量注射泵实现对试剂量的精确控制,以避免试剂量误差对染色效果的影响。利用真空泵实现盖玻片的吸取,避免在高温下试剂挥发,充分保证试剂与样本反应,以保证染色效果。利用气泵对残留试剂进行清除,以避免弱染色。
以STM32F103ZET6为核心的下位机包括中央处理器(central processing unit,CPU)、通信模块、中断模块、时钟模块和I/O模块,如图3所示。STM32的通信模式有串行和并行两种,不同的串口有不同的I/O引脚配置,上位机传输的数据经过转换后被下位机接收;中断模块用来处理主程序以外的异常情况,初始化时须设置中断的抢占优先级和响应优先级,产生中断时进入中断服务函数进行事件处理;时钟模块在一定的时钟频率下通过装载计数的方式实现定时器功能,在初始化时须进行时钟使能和预分频设置;I/O模块通过端口使能和工作模式设置配置引脚功能,引脚除了作为普通I/O端口使用外,还具有复用和重映射功能。通信模块与中断模块共同负责下位机与上位机之间的通信,时钟模块负责设置外设所需要的时钟频率,I/O模块通过控制引脚信号或脉冲的输入输出来控制执行部件的运动。
图3 下位机模块构成Fig.3 Module composition of lower computer
染色控制系统的执行部件主要有2种驱动方式:脉冲驱动和电源直接驱动。脉冲驱动方式是指在相应的硬件连接下,单片机输出有一定规律的脉冲就能使执行部件工作的驱动方式。系统中M1、M2、M3、M4的驱动方式为脉冲驱动,其运动方向由方向控制信号的电平高低决定。电源直接驱动方式是指将执行部件连上电源就能使其工作的驱动方式,其通过设置单片机电平引脚的高低电平控制继电器的通断来实现执行部件的启停控制。系统中M5和M6由电源直接驱动。在硬件连接的基础上,通过单片机的脉冲引脚和电平引脚控制执行部件的运动。STM32 I/O模块的引脚分配如表2所示。
表2 STM32 I/O模块的引脚分配Table 2 Pin assignment of STM32 I/O module
在Keil5开发系统中,采用C语言编写执行部件运动控制程序,经编译后用FlyMcu软件烧录至STM32开发板。系统上电后,单片机首先进行初始化,包括使能时钟、设置端口模式、配置串口中断等;随后,控制系统实现自动复位,并等候上位机发出运动指令;待控制系统收到上位机发出的运动指令后,单片机控制执行部件作出相应的运动来完成全自动病理染色工作。下位机程序流程框图如图4所示。
图4 下位机程序流程框图Fig.4 Program flow chart of lower computer
上位机包括GUI、显示单元、人机交互单元、逻辑处理单元和通信单元,如图5所示。GUI由文本框、分组框、菜单栏和工具栏等组成;显示单元实现图形、图像、文本和文件的显示;人机交互单元通过按钮、编辑框、单选框和下拉框等控件实现人机直接交互;逻辑处理单元在读取数据后对数据进行处理,也能实现文件加载和API(application programming interface,应用程序接口)调用;通信单元根据通信协议进行串口配置,从而实现数据的发送和接收。GUI、显示单元和人机交互单元共同实现人机交互功能,逻辑处理单元用以保存和处理用户数据,通信单元完成上位机与下位机、温度控制模块之间的通信。
图5 上位机模块构成Fig.5 Module composition of upper computer
完整的染色过程分为以下11个步骤:烤片、脱蜡、洗涤、通透、水处理、酶处理、乙醇处理、变性、杂交、洗涤和染色[14-16]。每一个步骤所需试剂及时间如表3所示。为了提高染色系统的工作效率,系统应能对多块载玻片上的切片同时进行处理。另外,考虑实际染色情况,某些切片可能只需要其中几个步骤。
表3 面向FISH染色的全自动病理染色系统的染色步骤Table 3 Staining steps of fully automatic pathological staining system for FISH staining
根据控制要求设计人机交互界面。在MicrosoftVisual Studio软件中添加QT库,采用QT Designer Version 5.13.0设计GUI界面,在Microsoft Visual Studio 2017开发环境中采用C++语言进行界面程序编写。所开发的染色控制系统的GUI界面如图6所示。该系统可以控制12块切片的染色过程,配置了3种染色模式,每种模式对应不同切片类型的染色流程。通过点击主窗口上方代表载玻片位置的数字按钮选择每一块载玻片上样本的执行模式,在复选框选择试剂类型,利用中心表格和剩余时间显示当前系统的运行进度。染色过程中通透剂和蛋白酶的反应时间、杂交和变性的温度和时间可以进行设置,其他步骤的温度和时间是固定的。
图6 染色控制系统GUI界面Fig.6 GUI interface of staining control system
用户通过鼠标和键盘设置染色系统的执行步骤,界面控件状态用底层数据记录。控件主要包括按钮(PushBotton)、分 组 框(GroupBox)、文 本 框(Label)、菜单栏(MenuBar)、编辑框(LineEdit)和复选框(ComboBox),在C++程序中定义状态变量来记录控件状态。界面状态变量及其事件、设定值如表4所示。
表4 界面状态变量及其事件、设定值Table 4 Interface state variables and their events and set values
上位机通信单元通过USB数据线分别与STM32开发板和温度控制模块进行实时通信,并分别定义通信协议。上位机与开发板之间遵循USART(universal synchronous/asynchronous receiver/transmitter,通用同步/异步串行接收/发送器)串口通信协议,由上位机传输给开发板的数据通过输入移位寄存器后存至输入数据缓冲器,再由MCU(micro control unit,微控制单元)内核处理。上位机与温度控制模块之间采用Modbus通信协议,采用RS485接口标准,上位机传输数据格式为1个起始位、无校验位、2个停止位,数据传输速率为9 600 bit/s。GUI界面的相关设置数据通过T口USB数据线由电脑发送给STM32开发板从而控制执行部件的运动,界面将所需温度传输给温度控制模块以控制试剂反应温度;在运行过程中,系统当前状态和当前温度也实时反馈给上位机。通信内容及STM32数据传输过程如图7所示。
图7 通信内容及STM32数据传输过程Fig.7 Communication content and STM32 data transmission process
系统当前状态通过多传感器监测,下位机获取传感器信号后将其传输给上位机。上位机得到多源信息数据后利用并联融合的功能结构及决策层融合的方式进行多传感信息融合。融合流程如图8所示。首先,系统通过处理每个传感器的原始信号得出各监测对象的特征和属性,包括蠕动泵状态电机状态、枪头状态和盖玻片状态等;然后,将所有的属性判别结果进行关联分析得到系统当前状态;最后,根据融合结果对系统运行作出决策。该融合方式使得系统实时性好[17-20]、抗干扰能力强,且具有很好的灵活性。
根据FISH染色需求设计并开发了全自动病理染色系统。其模型渲染图及结构实物图如图9所示。系统长为850 mm,宽为500 mm,高为540 mm,净重60 kg;主要由X、Y、Z三轴运动模块、切片预处理模块、微量试剂滴加模块、密封模块和加热模块等构成。系统可同时完成12个样本的FISH染色,温控范围为室温至110℃,温控精度为±1℃,可以在2 min内从37℃升温至95℃。
图9 全自动病理染色系统模型渲染图及结构实物图Fig.9 Model rendering diagram and physical structure diagram of fully automatic pathological staining system
利用所研发的全自动病理染色系统进行实验。在通透25 min、酶处理30 min、变性85℃-5 min和杂交42℃-2 h的条件下进行单片组织样本染色实验。人机交互时间为55 s,整个流程运行时间为281 min,其中试剂反应时间占比为92.17%,机械运动时间占比为7.83%。实验中通过测量可知,滴加试剂的位置精度达到0.05 mm,试剂体积精度达到0.6 μL,在盖玻片作用下试剂对样本的覆盖率达到93%以上,气泵处理后试剂残留小于50 μL,设备故障响应时间小于0.5 s。实验完成后将样本置于荧光显微镜下观察,得到的荧光图像如图10所示。由图可知,荧光图像的对比度高,信号点明显,细胞边界清晰,染色均匀,达到了病理判读的要求。在不同温湿度环境下对不同样本进行多次染色实验后可知,设备运行故障率小于3%,滴加试剂类型的准确率为100%,且染色效果良好,图像可判读率达到90%以上。
图10 实验所得的荧光图像Fig.10 Fluorescence images obtained from experiments
实验结果表明,所研发的全自动病理染色控制系统能够实现多样本FISH染色的全自动化过程控制。该控制系统采用有线传输方式实现了上位机、下位机与执行控制系统三者之间的有效通信,保证了数据传输的稳定性。采用多传感器融合的传感反馈模块实时监控系统运行状态,有效提升了系统鲁棒性和病理染色质量。选择STM32F103ZET6单片微型计算机作为下位机控制器,设计了控制系统主电路及辅助电路,实现了多个执行部件在互不干扰状态下的协调运动,提高了系统稳定性。选用高精度伺服电机和微量注射泵用于试剂的提取与滴加,结合传感反馈模块保证了试剂量的准确性,有效避免了弱染色和染色不均的情况,保证了染色效果。基于QT开发软件和Microsoft Visual Studio开发环境设计了上位机人机交互GUI界面,采用C++状态变量记录用户操作,通过优化染色模式选择方案节约了人机交互时间成本。利用该控制系统能够一次性实现12个样本的FISH染色全自动化,且可以同时处理不同类型的样本,极大地提升了染色效率,同时避免了手工染色中的环境干扰因素,进一步提升了染色质量。
将所研发的全自动病理染色系统与市场上已有的FISH自动染色系统进行比较,相关参数对比如表5所示。可以看出,相较于已有的染色系统,本系统在整机尺寸、质量、温度范围、升温速度、温控精度和自动化程度等方面具有一定优势。
表5 所研发的全自动病理染色系统与已有自动化染色系统的参数对比Table 5 Parameter comparison between the fully automatic pathological staining system developed and the existing automated staining system
面向FISH染色技术,利用Keil5和Microsoft Visual Studio 2017开发环境,采用C语言和C++语言开发了基于STM32和GUI的全自动病理染色控制系统,取得了以下良好效果:
1)所研发的病理染色控制系统能够实现对多样本FISH染色过程的全自动化控制,且控制系统具有高稳定性、高精度和良好的鲁棒性。
2)采用传感反馈模块实现对染色过程的实时监测,结合伺服电机和高精度注射泵能够在防止环境干扰的前提下保证试剂量的精准度,有效避免了染色不均和弱染色现象,提升了病理染色质量。
3)所设计的GUI人机交互界面能够在实现相关参数设置的前提下节约人机交互成本,方便用户操作,体现了人机工程相关理念。