郭雪清,宋莉莉
(廣州軍區武漢總醫院 信息科,湖北 武漢 430070)
近年來,實驗研究顯示單細胞生物分子的隨機交互與其行為變化存在關聯,因此即使是基因完全相同的細胞也可能表現出不同行為[1]。這些研究表明,通過信號進行傳遞的細胞分子之間的隨機事件對單個細胞的行為具有重要意義。而現有大部分計算模型一般僅刻畫了生物系統某個方面的特性,如分子組成,分子間相互作用,以及細胞行為等,細胞的群體特性往往采用微分方程進行描述[2-3]。這些方法都不不足以反應細菌隨機運動方式和行為隨外界情況變化而產生的適應性改變,而基于Agent的建模仿真方法能夠比較有效地解決這一問題。
文中對如何采用基于Agent的建模仿真方法來研究這一特性進行了初步探討。基于Repast仿真平臺,建立Agent仿真模型,對細胞內部的生物化學過程進行建模,同時將其運動過程(行為)在三維環境中進行顯示。為了對該方法進行演示,文中以細菌趨化仿真模型為例進行詳細說明。
Agent建模方法起源于復雜適應系統 (Complex Adaptive System,CAS)理論,其基本思想是:CAS的復雜性起源于主體的適應性,主體與環境以及與其它主體之間的相互作用,不斷改變著它們的自身,同時也改變著環境,各個主體通過相互間交互,可以在整體層次上突現出新的結構、現象和更復雜的行為。基于Agent的建模與仿真方法已成為研究CAS最具活力和影響力的方法之一。
Repast是目前應用最廣泛的、免費、開源的Agent建模與仿真工具包。Repast最早由美國芝加哥大學以及Argonne國家重點實驗室的研究人員開發,現在由非盈利性組織ROAD(Repast Organization for Architecture and Development)負責維護。其最初的設計目標是提供一個易于使用和擴展且功能強大的社會系統仿真工具包,隨著不斷的發展和完善,現在已經成為一個成熟通用的多Agent仿真平臺[4-5]。Repast系統體系結構如圖1所示[6]。

圖1 Repast系統體系結構圖Fig.1 Architecture of Repast
Repast系統體系結構功能非常強大,主要由一系列模塊組成,包括引擎模塊 (Engine Module)、日志模塊(Logging Module)、交互運行模塊(Interactive Module)、批量運行模塊(Batch Run Module)、 自適應行為模塊 (Adaptive Behaviors Module)和域模塊(Domains Module)6個部分。這些模塊可分為固定模塊和可變模塊兩類。
引擎模塊主要用于控制仿真中的活動狀態,它包括引擎控制器、程序調度器、發生器和Agent組件。引擎控制器與交互運行模塊和批量運行模塊一起工作,實現仿真運行中的初始化、開始、暫停、步長、停止和重新啟動功能。引擎模塊是一個固定模塊。
記錄模塊負責記錄仿真結果,根據輸入的復雜性又分為數據記錄器和對象記錄器兩種類型的記錄組件。記錄模塊是一個固定模塊。
交互運行模塊是一個固定模塊,主要協助用戶對仿真運行過程進行控制和管理,在用戶和引擎模塊之間起中介作用,主要包括接口控制器和可視化環境等組件。
批量運行模塊是一個固定模塊,主要實現在不需要用戶干涉的情況下就能批量完成一系列仿真運行計算,由參數掃描框架和批量控制器兩個組件構成,模型的參數組合通過參數掃描框架傳遞給批量控制器,每個批量控制器在仿真運行過程中管理一個引擎控制器。
自適應行為模塊是一個可變模塊,如果Agent需要完成相應的行為(如學習和適應行為),就可以為此提供相應的組件,如遺傳算法、神經網絡等。
域模塊也是一個可變模塊,主要提供一些特殊功能,有助于完善模型功能,如普通網絡、社會系統、地理信息系統等工具。
目前,Repast已經發展到Repast3,提供了3種語言版本:Repast for Java (Repast J),Repast for Microsoft.NET(Repast.NET)和 Repast for Python Scripting(Repast Py)。 2007 又發布了新型的可視化仿真平臺 Repat Simphony(Repast S),文中將采用Repast S來設計和開發細菌趨化仿真模型。
考慮到生物學中細菌趨化性的典型信息處理過程[7],文中以埃希氏大腸桿菌為例,僅考慮細菌與其所處的化學環境進行交互,對其趨化行為進行仿真。該細菌趨化模型采用多Agent方法建立,每個細菌都被視為一個具有獨立的化學向性網絡、發動機和鞭毛的Agent,它可以在一個三維環境中自由移動。通過該模型就可以獲得單個細菌和細菌群的趨化性試驗數據。在該模型中,外部環境的信號通過一個趨化性網絡被轉換為細胞內部的信號。通過該信號就可以影響細胞發動機的狀態在順時針和逆時針之間發生轉換。發動機逆時針旋轉時,鞭毛呈集中狀態,細胞平穩運動,當發動機順時針旋轉時,鞭毛呈分離狀態,細胞則不規律的翻滾從而進行隨機運動。具體算法如下:
趨化性網絡模型采用Morton-Firth[7]和 Korobkova[1]等人提出的模型。該模型以細胞占有的感知器作為輸入,以細胞內做出反應調整的分子數目作為輸出。
假定感知器感知到化學配合基的概率與感知器的狀態有關。非激活感知器感知到化學配合基的概率為q=[L]/([L]+KD),其中[L]為化學配合基的濃度,KD是分裂常量。激活的感知器感知到化學配合基的概率與非激活感知器相同,但是常量則相對較大。
發動機的行為是非線性的,其旋轉狀態由細胞內部的分子數目決定。仿真初始時會定義一個標準分子數目水平,當過去0.3 s內的平均分子數目值超過標準值時,發動機順時針旋轉,否則發動機逆時針旋轉,發動機的狀態必須保持一個最小時間才能發生改變。
這里定義了兩類鞭毛狀態轉換算法。一種是精確的根據發動機的狀態來改變自身狀態。另外一種算法中,鞭毛的狀態從集中轉換到分離時有20%的幾率可能失敗。
按照 Berg和 Brown(1972)的假定[3],在一次運行中,細胞的速度是不發生變化的,而僅僅是方向發生變化,從而影響位置的變化,每一時間片都通過速度、方向與上一時刻的位置來更新當前位置。當細胞進行翻滾時,細胞的位置是不發生變化的,新方向與原方向的夾角α服從形狀參數為4、范圍參數為18.32以及位置參數為-4.6的伽瑪分布。
細菌趨化模型主要考慮細胞在環境中對化學物質的一種趨向性運動現象,在該問題中只存在細胞這一種Agent。而其他細胞的組成部分如發動機、鞭毛等都作為細胞Agent的組成類而不是作為單獨的Agent實現。
由于細胞可以在三維空間中自由的移動,所以可以采用連續的三維空間來表示細胞Agent的空間環境。
根據細菌趨化模型的描述和假設可以知道,細胞除了自身的位置外,其屬性還包括速度、運動方向、細胞內做出反應調整的分子數目、發動機的狀態以及鞭毛的狀態。細胞Agent根據上一時刻的位置、速度以及運動方向運動到新的位置,然后使用感知器感知當前位置的化學物質濃度,根據細胞內對環境做出反應調整的分子數目來影響改變發動機的狀態和鞭毛的狀態從而影響細胞的運動方向,然后再次改變位置,周而復始。細菌趨化模型中,細胞只由環境中的化學物質濃度而改變狀態,所以不與其他Agent進行交互。
根據前面細菌趨化問題的模型分析,可以確定相應的Agent類型和行為。基于RepastS開發細菌趨化模型的具體組成包、類以及它們之間的依賴關系如圖2所示。主要的類和接口包括:

圖2 細菌趨化模型類結構及關系圖Fig.2 Bacterial chemotaxis class structure and its relationship
1)World類 代表了Agent所處的環境。World類包含了一系列的細胞Cell類和邊界BoundaryConditions類。
2)Cell類 Cell類是一個抽象的Agent對象類,缺省提供了位置、方向、體積。ChemotaxisCell類繼承了Cell類并加入了新的屬性:Receptors、Network、Motor和 Flagella 類的對象。
3)Receptor類 該類提供了從環境中讀取化學配合基濃度的方法。
4)NetWork接口 所有的趨化網絡都要使用該接口。該接口提供了方法來設置和獲取分子個數,并且也提供了step函數來推進整個網絡的狀態更新。
5)Motor類 該類是一個抽象類,它保存了兩個狀態:順時針和逆時針,并提供了方法來在這兩個狀態之間進行轉換。它也提供了一個抽象的step方法用于隨時間更新發動機的旋轉狀態。有多個類繼承了該抽象類,它們采用了幾個不同的轉換算法。
6)Flagella類 該類也是抽象類,保存了兩個狀態:集中和發散。TetheredFlagellum類繼承了Flagella類,它實現的轉換算法是完全根據發動機的狀態來改變自身狀態。SwimmingFlagella也繼承了Flagella類,它實現的狀態轉換算法有20%的幾率由發散狀態轉為集中狀態時可能失敗。
7)Motion類 主要定義了細胞的運動,包括平穩運動和翻滾運動。
8)Molecules類 主要定義了分子類型,濃度等屬性。
9)PPContextCreator類 負責根據 Repast S的接口規范創建Agent和網格對象。
Repast平臺運行仿真程序的流程如圖3所示。

圖3 Repast仿真過程的流程圖Fig.3 Flow chart of simulation process
其中步驟1由PPContextCreator負責完成,具體過程如下:
1)讀取仿真參數,包括細胞的個數,化學環境空間大小,細胞體積等;
2)根據步驟1)所獲取的參數初始化連續的三維空間和Agent環境;
3)根據細胞個數創建細胞Agent實例,具體步驟如下:
①創建細胞Agent實例并初始化位置、運動方向和體積;②創建并初始化細胞的趨化網絡實例,然后賦予細胞Agent實例;③創建并初始化細胞感知器實例,然后賦予細胞Agent實例;④創建并初始化細胞發動機實例,然后賦予細胞Agent實例;⑤創建并初始化鞭毛實例,然后賦予細胞Agent實例;⑥創建并初始化運動驅動器實例,然后賦予細胞Agent實例。
4)將所有的細胞Agent實例加入三維空間并移動到初始位置。
仿真初始化完成后,用戶運行仿真,由Repast仿真引擎獲取三維空間內的所有細胞Agent并依次調用細胞Agent的step()方法從而更新細胞Agent的狀態。
在細胞Agent的step()方法中主要完成的工作包括:更新環境化學物質濃度、細胞移動、更新發動機以及鞭毛的狀態,具體過程如圖4所示。
在一個仿真時間片內,Repast仿真引擎會更新所有細胞Agent的狀態而Repast平臺的記錄模塊則收集用戶事先定義的感興趣的系統特性,并由繪圖模塊動態生成圖表 (即圖3中的步驟3),然后由仿真引擎判斷仿真終止條件(即圖3中的步驟4),若仿真不結束則推進仿真時間片并再次更新所有細胞Agent的狀態(即重復圖3中的步驟2),否則仿真結束。
為了驗證本文方法的有效性,根據Morton-Firth和Korobkova[7]使用的參數設計了兩個仿真試驗:單個細胞趨化行為和群體細胞趨化行為,并將其趨化過程表現在3D環境中,如圖5所示。這些試驗僅考慮單個細胞或多個細胞在化學物質濃度梯度變化的環境中的趨化行為。

圖4 細胞Agent的狀態更新過程Fig.4 State updating process for cell Agent

圖5 三維顯示效果Fig.5 Visual 3D effects of simulation
文中以Agent建模仿真方法為指導,以Repast建模仿真平臺為手段,探索細胞在化學環境中的運動特性,為開展細菌趨化問題研究提供了良好的可重用仿真試驗平臺。隨著研究的不斷深入,還需要進一步對基于Agent的細菌趨化模型進行擴展完善,最終為細菌趨化性研究提供一個通用的仿真試驗平臺。
[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的復雜網絡疾病傳播仿真模型[J].計算機工程與應用,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平臺的SARS傳播仿真建模研究[J].計算機科學,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.