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