Pool PCR, A Way to Improve Test Efficiency

Zeddy
8 min readApr 14, 2020

--

keywords: Pool PCR, Binary Search Algorithm

武漢肺炎的疫情目前在全世界大流行,累積感染人數隨著時間成指數性的爆炸成長令人不寒而慄。然而,在期望疫苗和解藥被開發之前,我們能做的就是盡可能的降低感染人數,暫緩疫情的擴張,同時避免僅存的醫療體系崩潰。對於疫情的擴張和感染人數的關係,我們先前已經有用簡單的數學模型描述了,今天我們針對武漢肺炎檢測的方法提供新的觀點。

為了有效控制疫情的擴張,除了降低不必要的接觸以外,最重要的是快速的篩檢出群體中已被感染的帶原者。這些帶原者在不知情的狀況下持續的進出公共場所,使得接觸者暴露在被感染的風險,使得疫情不斷擴散。因此,快速的檢測出感染者並從人群中隔離,成了控制疫情最關鍵的步驟。

但是受到醫療設備資源的限制(尤其是篩檢這種具有生物感染性的檢體,需要更謹慎小心的操作),台灣目前每日的篩檢量大約只有5~6000件,尤其是對於疑似社區感染的民眾,只能利用居家隔離的方式來排除確診案例等等。因此,有效的提高檢驗的效率成了現在關切的目標。

因此德國十字會醫生…日前在歐洲醫療的網頁上提出Pool PCR這個概念,目前在德國運用的檢測方法,用來加速檢測的效率。

https://healthcare-in-europe.com/en/news/corona-pool-testing-increases-worldwide-capacities-many-times-over.html

在了解如何使用Pool PCR,的檢測方法前,我們先來簡單的大略介紹目前標準的檢測方法:目前最常使用的檢測方法稱為核酸檢測,所檢測的核酸通常為檢體內的去氧核醣核酸(DNA)、或是*核醣核酸(RNA),接下來我們以DNA來解釋

PCR (Polymerase chain reaction) 聚合酶連鎖反應

By Enzoklop — Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=32003643

其原理是當專一性的引子(Primer)和目標核酸序列相互補時,病毒的DNA序列會被放大;反之若是檢體內沒有目標的核酸序列,則由於primer無序列可以互補,因此PCR反應不會進行。此外PCR過程十分的靈敏,只需極少量的模板股(目標核酸序列),即可以被大量放大。最後待PCR反應結束以後,在利用凝膠電泳,去分離不同長度片段的DNA,來確認此次PCR為成功陽性(檢體內含有病毒)、或者是PCR失敗因性(檢體內不含有病毒)做判斷

因此簡單來說,PCR核酸檢驗的過程,只要檢體內混有病毒核酸就會呈現陽性,若是結果呈現是陰性級代表檢體內部含有病毒核酸。(假設理想情形,且實驗進行順利)

左圖為凝膠電泳實驗圖,右圖為在紫外燈下觀察Band的跑膠結果

*註:武漢病毒屬於RNA病毒,因此在檢測過程中須經過反轉錄成cDNA再進行PCR,因此稱為rtPCR(reverse transcription-PCR, RT-PCR),後續的過程就和一般的PCR相同

在了解PCR的過程以後我們現在就介紹Pool PCR吧!

Pool PCR

Pool 這個詞就是泳池的意思,也就是說在反應測試前,將多個樣本先混合後在一起測量(進行PCR反應測試)。接著測試以後,若是呈現陰性則代表所有的樣本都是陰性,即非感染者;反之若是呈現陽性則要將整個pool中的人群分別檢驗,以找出感染者。

舉例來說,假設平均1000人內大約有5位是感染者(即感染率0.5%),若是我們要分別篩檢出這1000人來找出感染者,我們可以先把1000人隨機分成50組,也就是說每20個人一組。假設5位感染者平均分配在所有人之中,因此平均來說會有15組呈現全陰性,其他5組因為有感染者而呈現陽性,因此需要個別篩檢,因此總共要測量的次數即為 20 + 5 x 20=120次。

比起一個個測量的方式,需要1000次的測量節省了820次,可見Pool PCR,確實潛在著提高效率的可能性。

https://www.pexels.com/photo/woman-in-teal-scrub-suit-holding-injection-3952379/

那麼我們現在的問題就變成,在平均多少的感染率下,我們應該選幾個人一組做一次篩檢呢?

因此我們現在針對這樣的問題做簡單的數學建模,來描述並解釋這樣的問題:

首先我們先假設整體的感染率為q,則整體群眾的健康率即為1-q=p,我們用p來代表健康率。而每次檢驗我們取N個人為一組進行篩檢,若是為陰性即代表此組N人皆為陰性不需要二篩;反之若是呈現陽性則代表此組N人內可能有感染者,需要進行二篩一個個檢驗。

若是考慮機率的情形:N個人皆為陰性即代表所有人都是健康的因此機率即為p^N,而陽性的機率即為全部減掉陰性的機率,1-p^N。

因此我們現在的檢驗次數期望值為一篩陰性的機率p^N乘上篩檢的次數1次加上一篩陽性的機率1-p^N乘上一篩和N個人分別二篩的次數,N+1。

因此檢驗次數期望值可以寫成以下式子

若是我們要跟一般的篩檢方法做比較,即N人篩檢N次,其期望值為N,並要求我們的Pool PCR method的期望值小於N

因此展開可以得到

同時我們令Np^N為一個factor,若是大於1即代表這樣S的p,N組合式符合效益的情形。

由於Np^N這樣的函數無法容易處理,因此我們這裡使用MATLAB直接幫我把這樣的函數畫出來。

可以看到是個右邊的是x軸,代表我們一篩的分組人數N,從1~20人;右邊的是y軸,代表我們整體的健康率分別從0到1,1即代表百分之百健康群眾;上面的z軸則代表我們所計算出來的Np^N Factor,一個我們用來判斷是否符合效益的指標,若是大於1則為符合效益。

Plot 出來的圖形就會呈現像這樣的一個曲面,不同(N,p)的點對應到個別的Factor,而我們現在關心的是在哪個區域的(N,p)符合效益呢?

因此我設定了顏色的 scale-bar,若是大於1的值為黃色,因此只要點落在黃色區域即為符合效益的地方,可以發現隨者整體健康度p越小,則一篩可測的人數也越小了。

由這個圖表可以發現,若是像義大利的疫情嚴重到幾乎篩檢約一半的人為感染者(~50%),從圖表可以看到感染率50的狀態沒有黃色的區域,因此無論一篩人數如何改變都無法達到有效益的狀態,也就是說Pool PCR method 對於疫情爆發時沒有太大的效用。

結論

1. Pool PCR 的方法僅適用於尚未爆發群聚感染的狀態下所適用 (感染率即低的狀態下(<20%))

2. 善用次方法可以提高單位時間檢測數量,因此對於尋找位之社區感染源可能是可使用的方法

3. 本介紹只限學術討論用途,實際醫療檢測和政策執行仍需更縝密的評估

我也把內容用講解的方式拍成影片,有興趣的讀者可以看看
(其實內容根本文差不多)

後記

此文是有一天晚上我在PTT 看到網友分享了篇德國醫生提出提高檢測武漢肺炎方法的文章,覺得十分有趣,是個生活化的數學例子。此文一出隨後也引起網友們的討論,因此我簡單推導了mini pool 的數學model,並提出我的想法,歡迎各界朋友參與討論!

--

--

Zeddy
Zeddy

Written by Zeddy

A boy with enthusiasm for discovering science and interesting thing. Contact: kevinwang0723@gmail.com

No responses yet