计算机工程
COMPUTER ENGINEERING
1999年 第25卷 第8期 Vol.25 No.8 1999



面向对象的程序设计模拟细胞有丝分裂
王，傅廷亮，管菅
摘要：介绍了在微机上编程模拟细胞生长及周期分裂过程，提出了一个面积对象的细胞类结构，为利用计算机辅助研究细胞分裂作了一次新的探讨。
关键词：细胞有丝分裂；细胞周期；位图
An Object Oriented Simulation on Karyokinesis
Wang Chong,Fu Tingliang,Guan Jian
(Department of Computer,University of Science and Technology of China,Hefei 230027)
【Abstract】An OOP simulation on karyokinesisi and upgrowth of cell is provided in this paper.We put forward a Cell-class and a progress model for centrosome and chromosome in cell division.The Visual C++ is used n this object oriented simulation program.
【Key words】Karyokinesis; Split cycle;Bitmap
　　本文建立了细胞主要结构形态及运动的计算机模型，提 模拟了细胞生长和有丝分裂的全部过程及细胞内部一些调控因子对细胞生命周期的影响，也是计算机在细胞生物学领域应用的一次新的尝试和探讨。 
1 基本设计思想 
　　本仿真系统采用基于 Windows 95 操作系统的 Microsoft Visual C++ 4.2 作为开发工具。 Win32 平台具有强大的内存管理功能， Visual C++ 提供了面向对象的编程工具，同时其灵活强大的基本类库及 Windows 消息映射也为我们的开发提供了极大的方便。 
　　采用面向对象的程序设计技术，首先要为模拟的对象定义一个完整的类，类是对一组性质相同的对象的程序描述，它由概括了一组对象共同性质的数据和函数组成。类结构具有良好的数据封装性及继承、派生、多态性等特征，不但可以清晰有效地封装内联数据和操作，更可以利用它继承和派生出相关的类结构，也为程序维护和进一步扩充打好了基础。系统各对象之间的关系如图 1 所示，其中 CCellApp 是应用的全程对象， CMainFrame 和 CChildFrame 是系统应用主框架和子框架。 

图1 类及对象关系
　　本系统采用单文档多视的结构，视分两种：细胞分裂及显示 (CCellView) 和数据监测及统计分析 (CChartView) ，其共用的文档模板 CCellDoc 完成对公用的数据区及数据对象进行转储等操作。 
　　系统在内存中申请分配点阵位图作为细胞生长分裂的环境，我们采用的是 Windows256 色 BITMAP 位图，因为通过 Bitmap 位图可以方便快捷地进行图形显示及数据复制、转储粘贴等操作，并且 256 色位图以字节存放颜色值，可以方便地编写存取函数。系统中定义的 CellDib 类完成了对内存位图对象的各种操作。 
　　系统中细胞类 (CellCls) 是仿真系统的核心对象，它定义了一个完整的细胞完成生长、分裂过程的数据和操作函数，其中包括嵌套说明的细胞核、染色体及中心体。我们将 CellCls 定义为 CObList 集合类的派生，这种列表对象封装了内部数据结构，支持指向 CObList 类派生出来的各种不同对象的混合匹配，这样可以方便地应用 CObList 类的对象指针列表等功能。 
2 仿真系统结构及流程 
　　细胞周而复始的生长分裂过程即细胞周期，其组成及动态过程如图 2 所示，各期细胞形态和功能上的变化本文不再详述。 

图2 细胞周期动态图
2.1 数据结构及操作层次 
　　系统数据和操作函数分 3 个层次： 
　　(1) 低层：系统中的资源 (Cell.rc) 、内存 Bitmap 类 (CellDib) 及文档模板 (CCellDoc) 中的大部分函数都属于低层数据操作，它们是其它功能性操作的基础，主要包括： 1)Windows DIB 位图的内存分配、结构建立、数据读取、屏幕显示及调色板的颜色设置等； 2) 对内存的图形数据区进行格式化：建立坐标、周期边界条件及点阵的邻居； 3) 细胞对象链表及其它公用数据区的定义、数据转储、根据数据存放格式编写位图在内存空间的存取函数； 4) 系统资源及常量定义。 
　　(2) 中层：介于低层和高层之间不直接与模拟对象有关的用于完成某些辅助操作功能的函数。主要包括： 1) 消息传递、计时器触发； 2) 公用堆栈、数据区操作； 3) 基于内存 Bitmap 位图的基本图形函数。 
　　(3) 高层包括： 1) 封装定义的细胞类及进行细胞周期各阶段功能的数据和模拟函数； 2) 细胞分裂仿真过程中的辅助操作函数如逻辑坐标与为了坐标映射变换； 3) 数据分析 ( 监测及统计图表 ) 模块。 
　　每个细胞以 Bitmap 位图的颜色值表示的本细胞的区分标志，此外位图的颜色还用来区别细胞内其它各种物质，将细胞周期离散化为一系列的时间段，细胞周期的不同阶段都根据时间的长短对应某些时间段，在每个细胞对象中有一个基因控制因子 (CDC) 来确定此细胞当前所处的时间段位置。细胞类对象的主要内容还包括： 
　　1) 细胞形态及环境模拟 
　　细胞面积、细胞边界周长及其计算函数；细胞大致区域、细胞核大致区域及核仁位置；相邻细胞的数量及邻居细胞的标志链表、与其它细胞相邻的边界长度；细胞类的构造函数、析构函数；细胞对象初始化、有丝分裂各期仿真操作函数；分裂间期细胞生长、有丝分裂末期的细胞分离等辅助操作函数。 
　　2) 细胞仿真控制变量及其变化控制函数 
　　细胞生长促进因子 细胞分裂抑制因子； DNA 的含量 DNA 聚合酶含量 ；有丝分裂因子 (Mitotic Factors) 有丝分裂抑制物 (Inhibitor Mitotic Factors) 。 
　　3) 嵌套中心体对象 
　　中心粒初始位置、中心粒移动曲线参数 ( 采用二次曲线仿真 ) ；中心粒的目标位置、随机确定细胞分裂极及分裂方向的函数；中心体运动函数及运动中的中心粒当前位置、运动的上一点位置；纺锤丝定义参数 ( 采用抛物线仿真 ) 及纺锤丝的形成函数等。 
　　4) 嵌套染色体对象 
　　染色体着丝点或染色质定位点及其随机定位函数；染色体的运动轨迹、染色体移动时的形态控制参数；模拟各期染色质、染色体的形态及运动函数等。 
2.2 系统流程及仿真程序 
　　仿真开始先建立系统模拟的环境，在内存中产生一个 256 色 Bitmap 位图并对其进行必要的格式化，然后确定初始种子细胞的位置、标志区域及细胞内部环境。本仿真系统用一条对象链表连接不同的细胞对象，系统计时器定时激活随机选择细胞链中的一个细胞对象，根据细胞的基因控制因子每次执行当前时间段的仿真操作，完成本段仿真后保存细胞当前状态，等待下一次随机激活继续下一时间段的仿真。经过若干次时间段完成一个细胞周期操作后分裂成两个细胞，将其加入细胞对象链表中，从而周而复始地开始新细胞的生长分裂过程。 
　　在有丝分裂的 G1 期开始细胞生长过程，当某个方向遇到别的细胞时此方向停止生长， G1 期存在一个细胞增殖控制点 R ，细胞增殖的限制与许多因素有关，比如当细胞密度较大时分裂抑制因子随着接触抑制的增加而增大，阻止 G1 期向 S 期过渡从而抑制细胞分裂，这时细胞离开增殖周期处于休止期，在一定条件刺激下或细胞密度等条件符合时又可 返回增殖周期。对每个细胞周期经历模拟的详细流程见图 3 。 

图3 细胞分裂周期
3 结论及探讨 
　　通过对细胞分裂的仿真，可以借助计算机研究探讨细胞的某些变化对生长分裂的影响，如在系统中令某些细胞在 G1 期丧失接触抑制，细胞增殖到一定密度后仍无法停止分裂，这是产生肿瘤甚至细胞癌变的重要原因之一。计算机提供了一个极好的研究此类问题的工具。 
作者单位：中国科技大学计算机系，合肥 230027
参考文献 
1 鲁润龙，顾月华 . 细胞生物学 . 合肥：中国科学技术大学出版 社， 1991 
