system: [SYSTEM]

user: 2. 材料和方法 某些简单的基因分型决策树可以用手工方法绘制，首先用多序列比对确定分型差异SNP位点，然后使用这些差异位点建立决策树，如图1所示。然而对于某些高度多态的基因如位于人类第六号染色体主要组织相容性复合体(MHC)区域的，拥有数十甚至成百上千个SNP的人类白细胞抗原基因(HLA)使用手工绘制分型决策树是困难的。这些基因执行关键的抗原提呈功能。现代医学研究发现，捐献者和接受者之间HLA基因的精确配型可以减少免疫并发症从而显著地提高器官移植的存活率，尤其是骨髓移植 [ 7 ] 。另外，HLA分型的结果经常被用于重要的法医学证据，例如亲子鉴定和犯罪鉴定。根据基因分型的特点，本研究选择侧重于离散值属性(核酸碱基“A”、 “T”、 “C”、 “G”及插入缺失位“-”)的ID3算法进行基因分型。当含有已知等位基因编码区序列的数据库建立以后，基因分型的第一步是等位基因差异位点特征SNP序列的构建，构建方法是采用多序列比对软件如BIOEDIT对包含各已定义等位基因的序列集进行多序列比对，如图2所示。 多序列比对后，SNP位点的碱基状态提取方法是，如果多序列比对文件某列数目占优的碱基数不等于多序列比对的序列数，则该列为一个SNP，从而可以通过MATLAB程序提取各序列在该SNP位点的 图1. 基因分型决策树的建立 图2. 等位基因分型序列的多序列比对(基因HLA-G) 碱基模式。将各SNP位各序列的碱基模式及在比对文件中的列位置写入一个二维结构数组中(数组的行对应序列，列对应SNP位)，将各序列的分类名称写在该结构数组的尾部， 这样等位基因差异位点特征SNP序列的构建已经完成。这些SNP位置相当于一个一个的属性，可以采用ID3算法依次选取条件熵最小的属性作为测试属性进行子树划分。倘若通过实验方法获得了一个样本各分型定义SNP位置的碱基状态数据，如SNP1 = “A”， SNP2 = “T”， SNP3 = “G”...... SNPN = “G”，如果想对该样本进行基因分型，可以通过同分型决策树比较来判断输入SNP位点序列的基因类别，若它是一个新发现的基因型，程序将提示第一个差异SNP的位置即碱基基因型。 基因分型决策树图的绘制 在MATLAB workspace中虽然可以浏览建立好的基因分型决策树，但仍旧不完全直观，因此基因分型决策树图的绘制是必要的。MATLAB中二维图形绘制仅限于简单的曲线，复杂图型的绘制是困难的，因此必须寻找其他可行的替代方式。LISP是美国科学家MacCarthy于上世纪五十年代创立的并广泛应用于人工智能领域的程序设计语言。Autodesk公司将LISP语言嵌于计算机辅助设计软件AUTOCAD内部，命名为AUTOLISP [ 8 ] ，将LISP语言和AUTOCAD各自的特点有机结合，使AUTOLISP即拥有一般高级语言的编程功能，又具备一般高级语言所欠缺的强大的图形功能。基因分型决策树的绘制基本思路是使用MATLAB发挥其科学计算的潜能完成决策树各节点(根节点、中间节点和叶节点)的节点属性参数计算、节点在图面的位置确定和AutoLISP代码的生成，然后在AUTOCAD中运行AUTOLISP代码完成最终的基因分型决策树的绘制。节点属性参数计算上一节已经涉及，下面介绍节点的位置确定算法。节点的图面位置确定算法有自顶向下递推和自底向上递推两种算法。自顶向下递推法是首先确定根节点的位置，递归确定根节点以下节点的位置，并通过树的自顶向下、先子后兄、从左到右的遍历将决策树转化为串联绘图节点队列，每个节点属性除原决策树节点属性外增加父节点坐标和本节点坐标四个属性参数，并依次绘制节点信息和进行父子连线。自顶向下进行决策树绘图的缺点是，当决策树的层数n增加后，幅面宽度wide成指数增加即: (1) 对于复杂的决策树若不压缩，即取接近5的值(对应最多五个分支)，会出现幅面宽度过大超出AUTOCAD的允许范围而溢出的状况。若压缩，即取大于并接近1的值，有可能出现子树间隙小而交叠的情况如图3所示。 由于决策树的叶节点是有限的，如果幅面宽度正比于叶节点数目，节点的父节点的横坐标由子节点横坐标的均值决定而纵坐标由所处的层决定则可避免自顶向下递推法所产生的过宽或交叠的现象，称该算法为自底向上算法，自底向上需要以下步骤实现：  通过递归计算决策树的深度。首先将深度设置为1，通过递归计算各子树深度，如果子树的深度大于目前深度，则将其设置为决策树的深度，直到遍历完整个决策树。  将决策树按从自顶向下、先子后兄、从左到右的遍历将决策树转化为串联节点队列，串联节点的属性除原决策树节点属性外增加各节点的父节点属性。  扫描串联节点队列中叶节点，将叶节点总数设置为决策树的宽度，按从左到右的次序计算各叶节点位置横坐标值，纵坐标依据叶节点所在的层进行计算。  决策树节点的属性增加横、纵坐标属性，然后将串联节点的位置坐标数据反抄到决策树上，位置属性未设置的节点先将上述属性值置空。  通过递归自底向上、先子后兄、从左到右计算决策树各中间节点的位置属性。  向决策树补充各节点的父节点连线位置参数  决策树的完整位置信息转化为串联绘图队列数据输出  编译生成AutoLISP代码并存盘 图3. 自顶向下压缩可能导致子树交叠 决策树是由节点图元和连线组成，如图4所示，图元是由框架部分（轮廓线）、连线和变动信息部分，即属性参数，包括位置(px， py)、父节点连线位置(xparents， yparents)、决策基因型(genetype)、SNP序号(colpos)、标识(data：无错误时当节点为叶节点时显示最终分类名，中间节点不显示；有错误则显示“error”)及SNP在原始多序列比对文件中的列位置(posinMSAfile)，由于前面的程序已经将决策树的各节点生成绘图信息队列，下面需要做的是将这些信息转化为AUTOLISP代码，节点图元的绘图指令是一个含有8个参数的函数：(draw (list xparentsyparents) (list pxpy) “genetype” “colpos” “posinMSAfile” “data”)，该函数以位置参数点(px， py)为基点绘制图元的框架部分，并连线基点(px， py)和父节点连线位置点(xparents， yparents)，然后绘制变动信息基因型(genetype)、SNP序号(colpos)、基因型标识(data)及SNP在原始多序列比对文件中的列位置(posinMSAfile)。 EBI IMGT/HLA 数据库提供了人类主要组织相容性复合体系统(HLA)的的专业化数据库，本研究从该数据库中下载了多态性的MHC基因HLA-G、HLA-A、HLA-B (等位基因数分别为25、1729和2329)的序列数据，进行决策树分析，并绘制了基因分型决策树，经决策树分析后，节点数分别为46、3280和4407，如图5、图6(a)和图6(b)所示。高度多态基因HLA-A和HLA-B分型决策树非常庞大复杂，论文只显示轮廓，可在AUTOCAD中观察细节。基因分型决策树提供了一种通过与决策树比较进行基因分型的便捷途径，体现了基因各等位基因间DNA序列的直观的和最细致的共性和差异关系。共性是指等位基因间相似点如同属一个父族类或超族类、在哪些SNP位点基因型相同；而差异指等位基因间分属不同的族类或亚族类，在哪些SNP位点基因型不同，因此决策树可以用于多态基因的分类或聚类，HLA-A和HLA-B的决策树分类结果如表1和表2所示，它们的一级分类SNP在多序列比对文件中分别位于98和391。 图4. 绘图基本图元(节点)设计 Table 1 Genotyping of gene HLA-A by DT 基因名 一级分类SNP碱基型 A T C HLA-A 等位基因亚型 A11、A25、 A26、A34、 A43、A66、 A68、A69 A01、A02、 A03、A32、 A36、A74、 A80 A23、A24、 A29、A30、 A31、A33 表1. 基因HLA-A的决策树分型结果 图5. 多态基因HLA-G的基因分型决策树 图6. 多态基因HLA-A和HLA-B的基因分型决策树 Table 2 Genotyping of gene HLA-B by DT 基因名 一级分类SNP碱基型 A T G C HLA-B 等位基因亚型 B07、B42、B46、 B54、B55、B56、 B67、B81、 B82、B83 B08、B35、 B51、B53、 B57、B58、 B59、B73 B14、B27、 B38、B39 B13、B15、B18、 B37、B40、B41、 B44、B45、B47、 B48、B49、B50、 B52、B53、B78 表2. 基因HLA-B的决策树分型结果