王剛,李嶺
(1.東北大學中荷生物醫(yī)學與信息工程學院,沈陽 110819;2.四川大學生命科學學院遺傳醫(yī)學研究所,生物治療國家重點實驗室,成都 610041)
人類基因組計劃(human genome project,HGP)的實施,使越來越多的疾病相關基因得到了闡明。在此基礎上,通過基因篩查來檢測疾病正在迅速普及,被列入篩查范圍的疾病也越來越多。構建高效的基因篩查系統(tǒng),是及早發(fā)現(xiàn)攜帶者并指導臨床干預的重要前提。
聚合酶鏈反應-反向點雜交技術(Polymerase chain reaction-reverse dot blotting,PCR-RDB)是一種將探針固定在玻璃芯片或尼龍膜上,以檢測PCR擴增產(chǎn)物中是否包含目的基因的技術。該技術特異性好、結果直觀、并且可以在一次實驗中檢測多份樣本,因此,已成為基因分型的常用方法。目前已有多種經(jīng)CFDA批準的基于PCR-RDB技術的試劑盒,用于人乳頭瘤病毒(Human papilloma virus,HPV)分型診斷、地中海貧血常見突變篩查、乙型肝炎基因分型及耐藥基因檢測、丙型肝炎病毒基因分型、結核分枝桿菌利福平耐藥突變檢測、解脲脲原體基因分型檢測等。然而,對于篩查結果的輸出,不同廠家的設備都有自己的方式,有的輸出PDF文檔,有的輸出XML文件,有的直接輸出圖像等。許多設備的輸出結果完全依靠肉眼判讀,不僅效率低下,而且容易發(fā)生誤讀。本研究以凱普HMM-2I醫(yī)用核酸分子快速雜交儀檢測地中海貧血以及HPV病毒分型為例,介紹一種通過圖像識別來快速判讀PCR-RDB雜交結果的方法。
HMM-2I醫(yī)用核酸分子快速雜交儀是廣東凱普生物科技股份有限公司開發(fā)的一種高效篩查基因突變的設備,后者以圖像的方式提呈篩查的結果。在實驗室中,該篩查系統(tǒng)完整的業(yè)務流程可分為以下7步:
(1)被篩查人填寫《知情同意書》
(2)提取樣本
(3)檢測前分析
(4)檢測
(5)檢測后處理
(6)報告審核
(7)生成實驗報告
本研究主要針對實驗后處理過程,意圖解決下列問題:
在實際檢測中,為了防止實驗室計算機被病毒感染,往往將其與應用系統(tǒng)的網(wǎng)絡分開,使之處于單機狀態(tài)或位于實驗室單獨的網(wǎng)絡中。這將導致實驗后處理獨立于應用系統(tǒng),使應用系統(tǒng)和實驗室之間缺乏數(shù)據(jù)溝通的橋梁。
采用凱普HMM-2I醫(yī)用核酸分子快速雜交儀來篩查地中海貧血,每份樣本的實驗結果被以圖像的方式輸出在一張約4 cm2的小紙片上(見圖1)。該設備可同時檢測3種α缺失型地中海貧血、2種α突變型地中海貧血和11種β突變型地中海貧血,采用6 × 5的網(wǎng)格圖形提呈結果。若某種指標為陽性,則在相應的網(wǎng)格出現(xiàn)標記,否則為空。由于標記的范圍較小(直徑在3 mm左右),而且顏色深淺不均,這就增加了用肉眼識別的難度。利用相同的原理,凱普公司還開發(fā)了兩種HPV分型診斷試劑盒,可以分別檢測15種高危型別和6種低危型別以及上述21種和16種未定型的HPV病毒亞型。上述試劑盒亦能每次對15個樣本進行同時檢測。檢測結果同樣被以一定的順序輸出在紙片的網(wǎng)格中(見圖2)。
圖1凱普HMM-2I醫(yī)用核酸分子快速雜交儀篩查地中海貧血常見突變的結果示例
Fig1ExampleofapplicationofHybribioHMM-2IRapidHybridizerforthescreeningofcommonmutationsinthalassemia
圖2凱普HMM-2I醫(yī)用核酸分子快速雜交儀篩查常見HPV分型的結果示例
Fig2ExampleofapplicationofHybribioHMM-2IRapidHybridizerforthedeterminationofcommonHPVsubtypes
無線移動終端[1]是指利用無線傳輸協(xié)議來提供無線連接的設備,如平板電腦、智能手機等。這類終端同時具有一定的計算能力。將無線終端作為地中海貧血篩查系統(tǒng)的終端設備,可以將實驗室系統(tǒng)同篩查應用系統(tǒng)無縫集成到一起,將篩查應用系統(tǒng)延伸到實驗室中。此外,利用無線終端設備的計算能力,將篩查結果圖像識別成為數(shù)字信息,并利用無線網(wǎng)絡將這些數(shù)字信息導入服務端篩查應用系統(tǒng),則有望解決應用系統(tǒng)與實驗室之間的溝通問題。
我們開發(fā)的篩查應用系統(tǒng)由移動終端和服務端兩個部分組成。移動終端主要負責將篩查結果采用圖像識別的技術轉換成為數(shù)字信息,并將其同圖像一起發(fā)送給服務端。服務端在接收到移動端的數(shù)字信息后,首先解碼信息,并將數(shù)據(jù)按照不同的患者進行持久化存儲。之后可將上傳的圖片和識別出的數(shù)字信息進行人工核對,最后的結果將提供給報告審核和生成實驗報告等后續(xù)處理環(huán)節(jié)。
下面我們以地中海貧血為例,介紹PCR-RDB雜交結果的自動化判讀過程。
在本研究中,圖像識別的任務完全由手機或平板電腦完成,移動端則依賴于運行Android系統(tǒng)的平板電腦。后者在安裝了單獨開發(fā)的移動端應用軟件后,不僅可以識別篩查結果,還可以同服務端應用系統(tǒng)進行實時的數(shù)據(jù)交互。移動端應用系統(tǒng)圖像識別的數(shù)學定義和公式推導參考文獻[4-7],圖像識別則主要包括以下過程:
通過平板電腦的攝像頭對篩查的輸出結果進行拍照,產(chǎn)生的照片(見圖3)將作為處理的對象,同時也是輸入圖像。
對篩查結果照片進行相應的處理,然后交給識別模塊進行識別,之前的處理過程則稱為圖像預處理。圖像預處理包括創(chuàng)建灰度圖(見圖4)、圖像的二值化處理和降噪處理[3]等3個步驟。
對于輸入圖像f(x,y),將通過提取像素值和轉換T形成新的相同大小的圖像g(x,y),并且輸出圖像的每一幅像素都由輸入圖像的相對應像素確定其值的大小。由以下公式:
g(x,y) = T(f(x,y)) 且 0 ≤ g(x,y) ≤ 255
圖像的二值化處理是將圖像中像素的灰度值設置成0或255,將圖像以黑色或者白色顯示[2]。將256個亮度級別的灰度圖像用某個閾值作為分水嶺,從而獲取依然可以反映圖像整體或者局部特征的、只有黑白二值的圖像(見圖5)。二值化圖像[2]不僅簡單,其數(shù)據(jù)計算量也小。因此,大部分的數(shù)字圖像處理算法的輸入源均要求二值化圖像,這在數(shù)字圖像處理中占有非常重要的地位。
圖3照片圖4灰度圖
Fig3ImageofthehybridizationFig4Greyscaleimage
閾值(threshold)的確定采用的是計算像素平均值的方法。二值化圖像bin(x,y)由灰度圖g(x,y)通過和閾值的比較計算而來。其計算公式如下:
由這種通過平均值獲得閾值的方法所求得的二值化圖像,在閾值以下的所有非圖像信息均會被識別成正常圖像,圖像的噪聲將由此而產(chǎn)生。中值濾波不僅可以剔除孤點噪聲,而且能保持圖像的邊緣特性,不會讓圖像有明顯的模糊感,較適合篩查結果的二值化圖像處理。
中值濾波[3]的基本方法是把局部區(qū)域的像素按照灰度等級排序,求該區(qū)域內(nèi)灰度值的中值作為當前像素的灰度值。中值濾波的步驟為:
(1)將濾波模版(本文選取3 × 3矩陣rounds[0..8])在圖像中滑動,并將模版中心與圖中某個像素位置重合;
(2)讀取模版中各個對應像素的灰度值;
(3)將灰度值從小到大排序(參見算法medianSort);
(4)取序列中的中間數(shù)值rounds[4]賦予對應模版中心位置的像素。
中值濾波JAVA算法如下:
short[] rounds = new short[MATRIX_SIZE];
int tmp = 0;
for(inty=1; y tmp=imageWidth*y; for(intx=1; x //3×3 matrix rounds[0]=data[tmp-imageWidth+(x-1)]; rounds[1]=data[tmp-imageWidth+x]; rounds[2]=data[tmp-imageWidth+(x+1)]; rounds[3]=data[tmp+(x-1)]; rounds[4]=data[tmp+(x)]; rounds[5]=data[tmp+(x+1)]; rounds[6]=data[tmp+imageWidth+(x-1)]; rounds[7]=data[tmp+imageWidth+x]; rounds[8]=data[tmp+imageWidth+(x+1)]; data[imageWidth*y+x]=medianSort(rounds); } } 模版排序的JAVA算法: short medianSort(short[] rounds) { short t=0; for (inti=0; i for (intj=1;j<(MATRIX_SIZE - i); j++) { if (rounds[j-1]>rounds[j]) { t=rounds[j-1]; rounds[j-1]=rounds[j]; rounds[j]=t; } } } return rounds[4]; } 圖5二值化圖圖6降噪后的圖像 Fig5BinarizedimageFig6Denoisedimage 由圖5可見,二值化后的圖像校驗噪聲明顯,但經(jīng)過中值濾波后,輸出的圖像(見圖6)噪聲消除,而關鍵特征依然保留,毫無損失。 經(jīng)過預處理后的圖像(見圖6)基本消除了背景圖像,方格內(nèi)的圓點代表在該位置的指標呈陽性。因此,對于地中海貧血篩查結果的圖像識別即為識別這些圓點和其相應位置的信息(見圖7)。 在對一個圓點(陽性指標)進行識別時,首先需要識別出包含該圓點的方格,即由縱橫兩條直接組成的矩形,之后定位矩形的左上角和右下角,以確定圓點的位置信息。 因此,對于多個圓點的識別的關鍵變成了識別圖6中的多條直線以及橫向直線與縱向直線的交點。 圖7地中海貧血指標矩陣 Fig7Indicatormatrixforthalassemia 霍夫變換(Hough Transform)是計算機視覺領域從圖像中識別幾何形狀的基本方法之一。檢測直線是霍夫變換提供的一種簡單有效的算法。它利用直角坐標系中的直線和極坐標系中的點的對偶關系,從極坐標系反推出直角坐標系中的直線,反之亦然。 在直角坐標系中的二維點集T映射到極坐標上的一個點p,這個點p記錄了點集T中點的數(shù)目。數(shù)目的大小決定直線的長度,越大則代表極坐標中的直線越長??梢酝ㄟ^查詢p點的數(shù)值來確定該點是否為極坐標中的一條直線。通過圖8,可以推算出含極坐標參數(shù)的直線方程為: ρ=xcosθ+ysinθ 圖8坐標系 Fig8Rectangularcoordinatesystem 圖5中直線的方程在直角坐標系中表示為: y=yi(橫線) x=xi(豎線) 圖5中的直線在極坐標系中表示為: ρ=y(90度) ρ=x(0度) 霍夫變換JAVA算法: int radius=(int) Math.ceil(Math.hypot(imageWidth, imageHeight)); int halfHeight=imageHeight>>>1; HoughData houghData=new HoughData(imageWidth, imageHeight); double thetaRadians=0.0; double[]sinArray=new double[imageWidth]; double[]cosArray=new double[imageWidth]; // Initialize for(int theta=imageWidth-1; theta>=0; theta--) { thetaRadians=theta*Math.PI/imageWidth; sinArray[theta]=Math.sin(thetaRadians); cosArray[theta]=Math.cos(thetaRadians); } // Hough Transform double p=0.0; int scaled=0; for (inty=0;y for(intx=0;x if(input.validate(x,y, minContrast)) { for(int theta=imageWidth-1; theta >=0; theta--) { p=cosArray[theta]*x+sinArray[theta]*y; scaled=(int)Math.round(r*halfHeight/radius)+halfHeight; houghData.add(theta, scaled, 1); } } } } 圖9霍夫空間圖像 Fig9ImageofHoughspace 如霍夫空間圖片(見圖9),每個亮點都代表了極坐標中的一條直線。在所有直線方程都確定之后,可通過求解直線方程的交點確定矩形的頂點。 在確定每個矩形的頂點后,可通過遍歷算法檢測矩形內(nèi)部是否具有圖像前景特征的顏色。若含量達到一定的數(shù)量,則認為該區(qū)域含有特征值而非噪聲。我們在中值濾波中的模版采用了3 × 3的9點矩陣,故此處閾值設為9,即如果區(qū)域內(nèi)前景色像素數(shù)量大于9,則認為該區(qū)域代表陽性指標,否則為陰性。多區(qū)域檢測的JAVA算法如下: int xSize=X.length; int ySize=Y.length; int idx=0; for(inty=0;y idx=y*(xSize-1); for(intx=0;x int flag=imageData.recognizeMark(X[x], Y[y], X[x+1], Y[y+1]); } } int recognizeMark (int leftX, int leftY, int rightX, int rightY) { int count=0; for(intny=leftY+WIDTH; ny count=0; for (int nx=leftX+WIDTH; nx if(data[ny*imageWidth+nx]==0) { count++; if(count>WIDTH) return 0x01; } } } return 0×00; } 在地中海貧血篩查結果中,元素與指標矩陣(見圖7)內(nèi)的指標一一對應。例如,若CSN指標呈陽性,則篩查結果圖片中的第4行第2列將有圓點標識。如果將篩查結果全部標記出來,需要使用30個表達式或變量來完成。 計算機內(nèi)數(shù)值將通過二進制的形式來存儲,用0或者1來表示任何數(shù)值或變量。30個數(shù)值正好可以保存到一個32 bit的整型(int)變量中,從低位向高位,每個bit將代表一個指標,通過位運算的方式將一位患者的檢測結果全部放進一個整數(shù)中。 移動端將識別出篩查結果,并以數(shù)字方式將信息提交給服務端篩查應用系統(tǒng)。本節(jié)將主要描述服務端如何接收信息,對信息進行處理和為生成報告做的準備工作。 移動終端同服務端的連接將通過超文本傳輸協(xié)議(HTTP)進行數(shù)據(jù)通訊。HTTP是客戶端同服務端進行請求和應答的標準協(xié)議,在互聯(lián)網(wǎng)中是以網(wǎng)頁為交互的基本單位,但屬于無狀態(tài)的協(xié)議。 本系統(tǒng)的移動終端將通過HTTP中的GET方法來獲取服務端患者信息。由于GET請求一般不產(chǎn)生副作用,而只是獲取資源信息,就像文件讀取一樣,不會有修改文件內(nèi)容或者刪除文件等變更操作,以保證遠程服務端數(shù)據(jù)安全。 當識別出篩查結果后,移動終端會通過使用HTTP的POST方法將識別結果的整型數(shù)據(jù)和拍攝到的原始圖片一起提交到服務端。POST方法表示可以改變服務器資源的請求,它把要提交的數(shù)據(jù)放置在HTTP協(xié)議包的包體中,不通過URL進行數(shù)據(jù)的傳遞,每次傳遞的數(shù)據(jù)量要比GET方法大得多。數(shù)據(jù)量的大小由各種服務器產(chǎn)品自行限制,一般通過配置文件即可修改。本系統(tǒng)數(shù)據(jù)來自于移動終端,數(shù)據(jù)量很小,不需要在服務器上做任何設置,默認即可。 移動端將從服務器獲取患者的信息列表?;颊咝畔⒈仨毎芪ㄒ粎^(qū)別患者的ID信息,使之可以和篩查結果進行一一對應。服務端從移動終端主要獲取3種信息:患者ID、照片和篩查結果(32 bit的1個整數(shù))信息?;颊逫D信息主要用于確定當前檢測結果的所屬,是為患者創(chuàng)建報告必需的參數(shù)。 當服務端接收到移動終端提交的識別結果和照片信息后,則需要人工介入來確認篩查結果是否識別正確。為了便于肉眼比對,系統(tǒng)會自動將從移動終端采集來的照片放大,這樣比單純用肉眼來識別小紙片更為方便、快捷和準確。當發(fā)現(xiàn)不正確的識別項時,操作人員通過直接點擊指標數(shù)據(jù)按鈕,即可完成對于篩查結果的修正。 我們運用開發(fā)的軟件對113份地中海貧血突變以及86份HPV分型的PCR-RDB結果進行了自動讀取,并同人工的判讀結果進行了比較,二者的符合率均達到了100%。 伴隨著基因測序的快速發(fā)展與分子生物學技術的突破,海量的生物數(shù)據(jù)亟待提取與分析。如何充分利用多學科交叉的方法進行自動化的基因數(shù)據(jù)分析,已成為當前生命科學的共同課題。2009年,陳光磊將霍夫算法用于基因微陣列芯片圖像數(shù)據(jù)的自動化提取。在保證基因點定位與數(shù)據(jù)提取的準確性的前提下,實現(xiàn)了圖像的整體自動化提取[8]。在醫(yī)學圖像分析方面,耿春明等提出了融合區(qū)域生長與霍夫變換的內(nèi)窺圖像分割算法,即首先利用區(qū)域生長大致分割出感興趣區(qū)域,再通過二值形態(tài)處理對圖像進行平滑濾波和去噪,采用Canny算子在抑制噪聲的同時進行邊緣檢測,之后用霍夫變換檢測圓的算法準確劃分實際內(nèi)窺圖像的有效檢測區(qū)域[9]。 將移動終端應用與服務端應用相結合已成為信息服務的主流框架。移動終端的引入,將原本不在同一個網(wǎng)絡中的篩查應用系統(tǒng)和實驗室系統(tǒng)緊密聯(lián)系起來,既建立了信息通訊的快速通道,又可保證檢測的正常進行。對紙質的篩查結果進行電子化的管理,可以節(jié)省更多的翻閱查找時間,極大地提高工作效率。 我們在篩查的后處理中,采用了以霍夫變換進行圖像識別為主,以人工核對為輔的模式。在113例地中海貧血篩查樣本以及86份HPV篩查樣本的實際檢測中,均無需人工介入進行手動調(diào)整,系統(tǒng)可以完全自動地判讀出結果,證明上述方案是完全可行的。 我們所開發(fā)的移動端應用系統(tǒng)目前每次只能對一份結果進行識別和上傳。今后還需要持續(xù)改進算法,實現(xiàn)對多份結果進行同時識別,并上傳原始照片到遠端服務器。此外,系統(tǒng)目前還無法識別不端正的網(wǎng)格圖像。在采集圖像時,只能通過肉眼判斷來大致保證網(wǎng)格的橫線的水平夾角更小。對于任意角度的圖像進行識別是下一步重點研究的內(nèi)容。2.3 霍夫變換
2.4 信息編碼
3 信息處理
3.1 信息傳輸
3.2 信息處理
3.3 識別結果核對
4 使用結果
5 結論
6 問題