郭雪清,宋莉莉
(廣州軍區(qū)武漢總醫(yī)院 信息科,湖北 武漢 430070)
近年來(lái),實(shí)驗(yàn)研究顯示單細(xì)胞生物分子的隨機(jī)交互與其行為變化存在關(guān)聯(lián),因此即使是基因完全相同的細(xì)胞也可能表現(xiàn)出不同行為[1]。這些研究表明,通過信號(hào)進(jìn)行傳遞的細(xì)胞分子之間的隨機(jī)事件對(duì)單個(gè)細(xì)胞的行為具有重要意義。而現(xiàn)有大部分計(jì)算模型一般僅刻畫了生物系統(tǒng)某個(gè)方面的特性,如分子組成,分子間相互作用,以及細(xì)胞行為等,細(xì)胞的群體特性往往采用微分方程進(jìn)行描述[2-3]。這些方法都不不足以反應(yīng)細(xì)菌隨機(jī)運(yùn)動(dòng)方式和行為隨外界情況變化而產(chǎn)生的適應(yīng)性改變,而基于Agent的建模仿真方法能夠比較有效地解決這一問題。
文中對(duì)如何采用基于Agent的建模仿真方法來(lái)研究這一特性進(jìn)行了初步探討?;赗epast仿真平臺(tái),建立Agent仿真模型,對(duì)細(xì)胞內(nèi)部的生物化學(xué)過程進(jìn)行建模,同時(shí)將其運(yùn)動(dòng)過程(行為)在三維環(huán)境中進(jìn)行顯示。為了對(duì)該方法進(jìn)行演示,文中以細(xì)菌趨化仿真模型為例進(jìn)行詳細(xì)說明。
Agent建模方法起源于復(fù)雜適應(yīng)系統(tǒng) (Complex Adaptive System,CAS)理論,其基本思想是:CAS的復(fù)雜性起源于主體的適應(yīng)性,主體與環(huán)境以及與其它主體之間的相互作用,不斷改變著它們的自身,同時(shí)也改變著環(huán)境,各個(gè)主體通過相互間交互,可以在整體層次上突現(xiàn)出新的結(jié)構(gòu)、現(xiàn)象和更復(fù)雜的行為。基于Agent的建模與仿真方法已成為研究CAS最具活力和影響力的方法之一。
Repast是目前應(yīng)用最廣泛的、免費(fèi)、開源的Agent建模與仿真工具包。Repast最早由美國(guó)芝加哥大學(xué)以及Argonne國(guó)家重點(diǎn)實(shí)驗(yàn)室的研究人員開發(fā),現(xiàn)在由非盈利性組織ROAD(Repast Organization for Architecture and Development)負(fù)責(zé)維護(hù)。其最初的設(shè)計(jì)目標(biāo)是提供一個(gè)易于使用和擴(kuò)展且功能強(qiáng)大的社會(huì)系統(tǒng)仿真工具包,隨著不斷的發(fā)展和完善,現(xiàn)在已經(jīng)成為一個(gè)成熟通用的多Agent仿真平臺(tái)[4-5]。Repast系統(tǒng)體系結(jié)構(gòu)如圖1所示[6]。
圖1 Repast系統(tǒng)體系結(jié)構(gòu)圖Fig.1 Architecture of Repast
Repast系統(tǒng)體系結(jié)構(gòu)功能非常強(qiáng)大,主要由一系列模塊組成,包括引擎模塊 (Engine Module)、日志模塊(Logging Module)、交互運(yùn)行模塊(Interactive Module)、批量運(yùn)行模塊(Batch Run Module)、 自適應(yīng)行為模塊 (Adaptive Behaviors Module)和域模塊(Domains Module)6個(gè)部分。這些模塊可分為固定模塊和可變模塊兩類。
引擎模塊主要用于控制仿真中的活動(dòng)狀態(tài),它包括引擎控制器、程序調(diào)度器、發(fā)生器和Agent組件。引擎控制器與交互運(yùn)行模塊和批量運(yùn)行模塊一起工作,實(shí)現(xiàn)仿真運(yùn)行中的初始化、開始、暫停、步長(zhǎng)、停止和重新啟動(dòng)功能。引擎模塊是一個(gè)固定模塊。
記錄模塊負(fù)責(zé)記錄仿真結(jié)果,根據(jù)輸入的復(fù)雜性又分為數(shù)據(jù)記錄器和對(duì)象記錄器兩種類型的記錄組件。記錄模塊是一個(gè)固定模塊。
交互運(yùn)行模塊是一個(gè)固定模塊,主要協(xié)助用戶對(duì)仿真運(yùn)行過程進(jìn)行控制和管理,在用戶和引擎模塊之間起中介作用,主要包括接口控制器和可視化環(huán)境等組件。
批量運(yùn)行模塊是一個(gè)固定模塊,主要實(shí)現(xiàn)在不需要用戶干涉的情況下就能批量完成一系列仿真運(yùn)行計(jì)算,由參數(shù)掃描框架和批量控制器兩個(gè)組件構(gòu)成,模型的參數(shù)組合通過參數(shù)掃描框架傳遞給批量控制器,每個(gè)批量控制器在仿真運(yùn)行過程中管理一個(gè)引擎控制器。
自適應(yīng)行為模塊是一個(gè)可變模塊,如果Agent需要完成相應(yīng)的行為(如學(xué)習(xí)和適應(yīng)行為),就可以為此提供相應(yīng)的組件,如遺傳算法、神經(jīng)網(wǎng)絡(luò)等。
域模塊也是一個(gè)可變模塊,主要提供一些特殊功能,有助于完善模型功能,如普通網(wǎng)絡(luò)、社會(huì)系統(tǒng)、地理信息系統(tǒng)等工具。
目前,Repast已經(jīng)發(fā)展到Repast3,提供了3種語(yǔ)言版本:Repast for Java (Repast J),Repast for Microsoft.NET(Repast.NET)和 Repast for Python Scripting(Repast Py)。 2007 又發(fā)布了新型的可視化仿真平臺(tái) Repat Simphony(Repast S),文中將采用Repast S來(lái)設(shè)計(jì)和開發(fā)細(xì)菌趨化仿真模型。
考慮到生物學(xué)中細(xì)菌趨化性的典型信息處理過程[7],文中以埃希氏大腸桿菌為例,僅考慮細(xì)菌與其所處的化學(xué)環(huán)境進(jìn)行交互,對(duì)其趨化行為進(jìn)行仿真。該細(xì)菌趨化模型采用多Agent方法建立,每個(gè)細(xì)菌都被視為一個(gè)具有獨(dú)立的化學(xué)向性網(wǎng)絡(luò)、發(fā)動(dòng)機(jī)和鞭毛的Agent,它可以在一個(gè)三維環(huán)境中自由移動(dòng)。通過該模型就可以獲得單個(gè)細(xì)菌和細(xì)菌群的趨化性試驗(yàn)數(shù)據(jù)。在該模型中,外部環(huán)境的信號(hào)通過一個(gè)趨化性網(wǎng)絡(luò)被轉(zhuǎn)換為細(xì)胞內(nèi)部的信號(hào)。通過該信號(hào)就可以影響細(xì)胞發(fā)動(dòng)機(jī)的狀態(tài)在順時(shí)針和逆時(shí)針之間發(fā)生轉(zhuǎn)換。發(fā)動(dòng)機(jī)逆時(shí)針旋轉(zhuǎn)時(shí),鞭毛呈集中狀態(tài),細(xì)胞平穩(wěn)運(yùn)動(dòng),當(dāng)發(fā)動(dòng)機(jī)順時(shí)針旋轉(zhuǎn)時(shí),鞭毛呈分離狀態(tài),細(xì)胞則不規(guī)律的翻滾從而進(jìn)行隨機(jī)運(yùn)動(dòng)。具體算法如下:
趨化性網(wǎng)絡(luò)模型采用Morton-Firth[7]和 Korobkova[1]等人提出的模型。該模型以細(xì)胞占有的感知器作為輸入,以細(xì)胞內(nèi)做出反應(yīng)調(diào)整的分子數(shù)目作為輸出。
假定感知器感知到化學(xué)配合基的概率與感知器的狀態(tài)有關(guān)。非激活感知器感知到化學(xué)配合基的概率為q=[L]/([L]+KD),其中[L]為化學(xué)配合基的濃度,KD是分裂常量。激活的感知器感知到化學(xué)配合基的概率與非激活感知器相同,但是常量則相對(duì)較大。
發(fā)動(dòng)機(jī)的行為是非線性的,其旋轉(zhuǎn)狀態(tài)由細(xì)胞內(nèi)部的分子數(shù)目決定。仿真初始時(shí)會(huì)定義一個(gè)標(biāo)準(zhǔn)分子數(shù)目水平,當(dāng)過去0.3 s內(nèi)的平均分子數(shù)目值超過標(biāo)準(zhǔn)值時(shí),發(fā)動(dòng)機(jī)順時(shí)針旋轉(zhuǎn),否則發(fā)動(dòng)機(jī)逆時(shí)針旋轉(zhuǎn),發(fā)動(dòng)機(jī)的狀態(tài)必須保持一個(gè)最小時(shí)間才能發(fā)生改變。
這里定義了兩類鞭毛狀態(tài)轉(zhuǎn)換算法。一種是精確的根據(jù)發(fā)動(dòng)機(jī)的狀態(tài)來(lái)改變自身狀態(tài)。另外一種算法中,鞭毛的狀態(tài)從集中轉(zhuǎn)換到分離時(shí)有20%的幾率可能失敗。
按照 Berg和 Brown(1972)的假定[3],在一次運(yùn)行中,細(xì)胞的速度是不發(fā)生變化的,而僅僅是方向發(fā)生變化,從而影響位置的變化,每一時(shí)間片都通過速度、方向與上一時(shí)刻的位置來(lái)更新當(dāng)前位置。當(dāng)細(xì)胞進(jìn)行翻滾時(shí),細(xì)胞的位置是不發(fā)生變化的,新方向與原方向的夾角α服從形狀參數(shù)為4、范圍參數(shù)為18.32以及位置參數(shù)為-4.6的伽瑪分布。
細(xì)菌趨化模型主要考慮細(xì)胞在環(huán)境中對(duì)化學(xué)物質(zhì)的一種趨向性運(yùn)動(dòng)現(xiàn)象,在該問題中只存在細(xì)胞這一種Agent。而其他細(xì)胞的組成部分如發(fā)動(dòng)機(jī)、鞭毛等都作為細(xì)胞Agent的組成類而不是作為單獨(dú)的Agent實(shí)現(xiàn)。
由于細(xì)胞可以在三維空間中自由的移動(dòng),所以可以采用連續(xù)的三維空間來(lái)表示細(xì)胞Agent的空間環(huán)境。
根據(jù)細(xì)菌趨化模型的描述和假設(shè)可以知道,細(xì)胞除了自身的位置外,其屬性還包括速度、運(yùn)動(dòng)方向、細(xì)胞內(nèi)做出反應(yīng)調(diào)整的分子數(shù)目、發(fā)動(dòng)機(jī)的狀態(tài)以及鞭毛的狀態(tài)。細(xì)胞Agent根據(jù)上一時(shí)刻的位置、速度以及運(yùn)動(dòng)方向運(yùn)動(dòng)到新的位置,然后使用感知器感知當(dāng)前位置的化學(xué)物質(zhì)濃度,根據(jù)細(xì)胞內(nèi)對(duì)環(huán)境做出反應(yīng)調(diào)整的分子數(shù)目來(lái)影響改變發(fā)動(dòng)機(jī)的狀態(tài)和鞭毛的狀態(tài)從而影響細(xì)胞的運(yùn)動(dòng)方向,然后再次改變位置,周而復(fù)始。細(xì)菌趨化模型中,細(xì)胞只由環(huán)境中的化學(xué)物質(zhì)濃度而改變狀態(tài),所以不與其他Agent進(jìn)行交互。
根據(jù)前面細(xì)菌趨化問題的模型分析,可以確定相應(yīng)的Agent類型和行為?;赗epastS開發(fā)細(xì)菌趨化模型的具體組成包、類以及它們之間的依賴關(guān)系如圖2所示。主要的類和接口包括:
圖2 細(xì)菌趨化模型類結(jié)構(gòu)及關(guān)系圖Fig.2 Bacterial chemotaxis class structure and its relationship
1)World類 代表了Agent所處的環(huán)境。World類包含了一系列的細(xì)胞Cell類和邊界BoundaryConditions類。
2)Cell類 Cell類是一個(gè)抽象的Agent對(duì)象類,缺省提供了位置、方向、體積。ChemotaxisCell類繼承了Cell類并加入了新的屬性:Receptors、Network、Motor和 Flagella 類的對(duì)象。
3)Receptor類 該類提供了從環(huán)境中讀取化學(xué)配合基濃度的方法。
4)NetWork接口 所有的趨化網(wǎng)絡(luò)都要使用該接口。該接口提供了方法來(lái)設(shè)置和獲取分子個(gè)數(shù),并且也提供了step函數(shù)來(lái)推進(jìn)整個(gè)網(wǎng)絡(luò)的狀態(tài)更新。
5)Motor類 該類是一個(gè)抽象類,它保存了兩個(gè)狀態(tài):順時(shí)針和逆時(shí)針,并提供了方法來(lái)在這兩個(gè)狀態(tài)之間進(jìn)行轉(zhuǎn)換。它也提供了一個(gè)抽象的step方法用于隨時(shí)間更新發(fā)動(dòng)機(jī)的旋轉(zhuǎn)狀態(tài)。有多個(gè)類繼承了該抽象類,它們采用了幾個(gè)不同的轉(zhuǎn)換算法。
6)Flagella類 該類也是抽象類,保存了兩個(gè)狀態(tài):集中和發(fā)散。TetheredFlagellum類繼承了Flagella類,它實(shí)現(xiàn)的轉(zhuǎn)換算法是完全根據(jù)發(fā)動(dòng)機(jī)的狀態(tài)來(lái)改變自身狀態(tài)。SwimmingFlagella也繼承了Flagella類,它實(shí)現(xiàn)的狀態(tài)轉(zhuǎn)換算法有20%的幾率由發(fā)散狀態(tài)轉(zhuǎn)為集中狀態(tài)時(shí)可能失敗。
7)Motion類 主要定義了細(xì)胞的運(yùn)動(dòng),包括平穩(wěn)運(yùn)動(dòng)和翻滾運(yùn)動(dòng)。
8)Molecules類 主要定義了分子類型,濃度等屬性。
9)PPContextCreator類 負(fù)責(zé)根據(jù) Repast S的接口規(guī)范創(chuàng)建Agent和網(wǎng)格對(duì)象。
Repast平臺(tái)運(yùn)行仿真程序的流程如圖3所示。
圖3 Repast仿真過程的流程圖Fig.3 Flow chart of simulation process
其中步驟1由PPContextCreator負(fù)責(zé)完成,具體過程如下:
1)讀取仿真參數(shù),包括細(xì)胞的個(gè)數(shù),化學(xué)環(huán)境空間大小,細(xì)胞體積等;
2)根據(jù)步驟1)所獲取的參數(shù)初始化連續(xù)的三維空間和Agent環(huán)境;
3)根據(jù)細(xì)胞個(gè)數(shù)創(chuàng)建細(xì)胞Agent實(shí)例,具體步驟如下:
①創(chuàng)建細(xì)胞Agent實(shí)例并初始化位置、運(yùn)動(dòng)方向和體積;②創(chuàng)建并初始化細(xì)胞的趨化網(wǎng)絡(luò)實(shí)例,然后賦予細(xì)胞Agent實(shí)例;③創(chuàng)建并初始化細(xì)胞感知器實(shí)例,然后賦予細(xì)胞Agent實(shí)例;④創(chuàng)建并初始化細(xì)胞發(fā)動(dòng)機(jī)實(shí)例,然后賦予細(xì)胞Agent實(shí)例;⑤創(chuàng)建并初始化鞭毛實(shí)例,然后賦予細(xì)胞Agent實(shí)例;⑥創(chuàng)建并初始化運(yùn)動(dòng)驅(qū)動(dòng)器實(shí)例,然后賦予細(xì)胞Agent實(shí)例。
4)將所有的細(xì)胞Agent實(shí)例加入三維空間并移動(dòng)到初始位置。
仿真初始化完成后,用戶運(yùn)行仿真,由Repast仿真引擎獲取三維空間內(nèi)的所有細(xì)胞Agent并依次調(diào)用細(xì)胞Agent的step()方法從而更新細(xì)胞Agent的狀態(tài)。
在細(xì)胞Agent的step()方法中主要完成的工作包括:更新環(huán)境化學(xué)物質(zhì)濃度、細(xì)胞移動(dòng)、更新發(fā)動(dòng)機(jī)以及鞭毛的狀態(tài),具體過程如圖4所示。
在一個(gè)仿真時(shí)間片內(nèi),Repast仿真引擎會(huì)更新所有細(xì)胞Agent的狀態(tài)而Repast平臺(tái)的記錄模塊則收集用戶事先定義的感興趣的系統(tǒng)特性,并由繪圖模塊動(dòng)態(tài)生成圖表 (即圖3中的步驟3),然后由仿真引擎判斷仿真終止條件(即圖3中的步驟4),若仿真不結(jié)束則推進(jìn)仿真時(shí)間片并再次更新所有細(xì)胞Agent的狀態(tài)(即重復(fù)圖3中的步驟2),否則仿真結(jié)束。
為了驗(yàn)證本文方法的有效性,根據(jù)Morton-Firth和Korobkova[7]使用的參數(shù)設(shè)計(jì)了兩個(gè)仿真試驗(yàn):?jiǎn)蝹€(gè)細(xì)胞趨化行為和群體細(xì)胞趨化行為,并將其趨化過程表現(xiàn)在3D環(huán)境中,如圖5所示。這些試驗(yàn)僅考慮單個(gè)細(xì)胞或多個(gè)細(xì)胞在化學(xué)物質(zhì)濃度梯度變化的環(huán)境中的趨化行為。
圖4 細(xì)胞Agent的狀態(tài)更新過程Fig.4 State updating process for cell Agent
圖5 三維顯示效果Fig.5 Visual 3D effects of simulation
文中以Agent建模仿真方法為指導(dǎo),以Repast建模仿真平臺(tái)為手段,探索細(xì)胞在化學(xué)環(huán)境中的運(yùn)動(dòng)特性,為開展細(xì)菌趨化問題研究提供了良好的可重用仿真試驗(yàn)平臺(tái)。隨著研究的不斷深入,還需要進(jìn)一步對(duì)基于Agent的細(xì)菌趨化模型進(jìn)行擴(kuò)展完善,最終為細(xì)菌趨化性研究提供一個(gè)通用的仿真試驗(yàn)平臺(tái)。
[1]Korobkova E,Emonet T,Vilar J M,et al.From molecular noise to behavioural variability in a single bacterium[J].Nature,2004(428):574-578.
[2]Solis F J,Corts J C,Cardenas O J.The stability of the keller-Segel model[J].Math Comp Model,2004(39):973-979.
[3]Berg H C.Motile behavior of bacterial[J].Physics Today,2000(53):24-29.
[4]姚燦中,楊建梅.基于Multi-Agent的復(fù)雜網(wǎng)絡(luò)疾病傳播仿真模型[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(20):12-15.
YAO Can-zhong,YANG Jian-mei. Complex network simulation model of disease spread based on multi-agent model[J].Computer Engineering and Applications,2010,46(20):12-15.
[5]瞿毅臻,李琦,甘杰夫.基于Repast平臺(tái)的SARS傳播仿真建模研究[J].計(jì)算機(jī)科學(xué),2008,35(2):286-288.
QU Yi-zhen,LI Qi,GAN Jie-fu SARS transmission simulation and modeling based on repast platform[J].Computer Science,2008,35(2):286-288.
[6]Visual Agent—based Model Development with Repast Symphony[EB/OL].[2012-02]http://www.dis.anl.gov/publicatiom/articles/North_et_al_Repast_Simphony_Tutorial.pdf.
[7]Morton-Firth,Shimizu T,Bray D.A free-energy-based stochastic simulation of the rat receptor complex[J].J.Mole.Bio,1999(287):1059-1074.