何 菊,戴彩艳,胡晨骏,杨 涛,胡孔法
(南京中医药大学人工智能与信息技术学院 南京 210023)
中医理论是一套科学完整的理论体系,蕴含丰富的核心内涵,名中医们在长期临床治疗实践中形成了独特的疾病认识和处方用药特点。认识和掌握其辨证施治的规律为深入挖掘疾病病因病机、证候及方药规律等基础理论提供依据,也是中医继承和发展的重要基础[1]。大量的中药方剂数据为中医药信息研究者探索方剂配伍规律提供了重要依据,在探索中医药理论体系的复杂性中也发挥了不可替代的重要作用。
最近研究表明,复杂网络模型可以直观地展现方剂药物间复杂的相互作用关系,借助于复杂网络的社团结构,深入挖掘中药方剂配伍规律,找出大量病案数据中包含的隐藏且有价值的信息。周雪忠等针对中医临床中的处方配伍经验分析目标,研究利用复方配伍的无尺度网络现象和基于网络分析的数据挖掘方法,实现具体病证或名老中医的核心处方结构知识发现[2]。刘杰等运用复杂网络等数据挖掘方法对204例肺癌住院病例进行分析,从中药的功效、种类、剂量、配伍关系等方面总结了肺癌中医证候特征及治疗特点[3]。张磊等运用频数分析、方剂配伍、因子分析、复杂网络方法针对乙肝湿热证用药分析,挖掘其常用中药、有效方剂及药物配伍规律[4]。韩楠等根据中药方剂特性并结合点式互信息构建TCM 网络模型,分析TCM 网络的特性并挖掘TCM 网络中配伍关系紧密、相似度较大的药物群[5]。杨涛等利用复杂网络分析核心用药,找出病机和中药的关系[6]。但传统中药方剂的复杂网络模型的构建更多地把焦点放在药物间的联系,从而忽视了中药自身所具备的属性,也就忽略了药物间潜在的关联。本文在对方剂药物组网时,兼顾药物属性信息和方剂信息,构建一个无向加权中药网络,在药物属性相似度的基础上,利用节点重要性和对社团的有效性进行社团划分,更好地揭示名老中医临床用药规律,对有效传承名老中医经验、指导临床用药有较大价值。
中药属性主要有四气五味、归经、升降沉浮、毒性等[7]。在中药的众多属性中,以性味、归经、功效最为常用,故药物节点v的中药属性向量定义如下:
其中,Flavor、Tropsim、Effect 分别表示性味、归经、功效分量。考虑到药物三个属性分量维度不同,因而选择余弦相似度来计算两味药的属性分量相似度。例如药物u和v的功效余弦相似度SimEffect(u,v)定义如下:
同理,可以计算出药物u 和v 的性味余弦相似度SimFlavor(u,v)和归经余弦相似度SimTropsim(u,v)。根据上述三个属性分量相似度,药物u 和v 属性相似度SimAttribute(u,v)定义如下:
药物属性相似度是由性味余弦相似度和归经余弦相似度的均值与功效余弦相似度相乘得出,在公式(3)中更强调了功效的主导性,而性味、归经是对功效起辅助作用,如果功效相似的药物其性味和归经也相似才认为它们“属性相似”。
综合考虑两味中药的双向依赖关系和组方长度等因素,药物u和v的关联度sim(u,v)定义如下:
其中,Formula(u,v)i表示同时出现u 和v 的组方集合,Formula(u,v)i.length 表示在组方集合中第i 个方的长度。|u|表示药物u在方药矩阵中出现的频次。对关联度分段计算是考虑避免因药物频次过低导致依赖度过高的问题。
在G(V,E)中,与节点v 相邻的节点集构成v 的邻域,记为B(v)。集合B(v)内节点个数即为节点v 的度,记为|B(v)|。
在G(V,E)中,与节点v 相连的所有边的权重和为节点的权强度,记为S(v),定义如下:
节点重要性是用来衡量一个节点是否有能力组织一个社团。节点v 的邻域越大,且邻居节点两两之间组成的边越多时,说明v的重要性越大[8]。将节点的聚类系数和节点度的乘积作为重要性度量值,记为NI(v),定义如下:
其中,ωuz表示边euz的权重,而节点u和z都是B(v)内的节点。
节点间关联性描述了两个节点之间的关联性大小,节点间连边的权重越大,节点度越小,关联性就越大。在G(V,E)中,节点u 和v 的连边euv在其两端节点各自邻域内权重比例的均值,即为边的关联性,记为ERuv,定义如下:
假设节点v 不属于社团C,若v 与C 内节点的累积关联性越大,则节点v 属于社团C 的可能性就越高。节点社团有效性记为NE(v,C),定义如下:
选用连通指数作为目标函数来确保社团内节点间紧密联系而与外部节点联系稀疏,将社团内部连接最大化,而将社团内节点与外部的联系最小化。连通指数定义如下:
其中,社团紧密度comp(C)表示社团C 内部边的权重和,社团分离度sep(C)表示社团C 内节点与外部节点的边权重和。
目前应用最广泛的评估社团结构划分好坏的函数是由Newman等提出的加权网络模块度函数Qω[9],定义如下:
其中,ωuv表示边euv上的权重,S(u)和S(v)分布表示节点u和v的权强度,W表示整个网络中所有边上的权重和。当节点u 和v 被划分在同一社团时,δ(Cu,Cv)值为1,否则为0。
加权网络是指网络中每条边上带有权重属性,这个权重值可以是节点间的距离,节点间联系的强弱程度,节点间的相似度。权重不仅能表示节点间是否存在联系,更能准确表达联系的紧密度。在对加权网络进行分析时,权重是一个重要的考量因素。在中药复杂网络中,仅依靠方和药的关系来刻画药物之间的联系,似乎还不够准确,本文利用药物关联度sim(u,v)为药物节点建立连边,在边权重的度量上加入药物自身属性因素,以中药间属性相似度SimAttribute(u,v)作为连边上的权重,更准确地描述中药间联系,从而建立中药加权网络G,为下一步更好地挖掘分析奠定基础。
算法1 中药加权网络构建
Input: 中药节点集合V,方药矩阵m-m 和药性矩阵m-a
Output:中药复杂网络G(V,E)
1)For each i in V
2) For each j in V
3) if(i!=j)&&(sim(i,j)>α)
4) 将e(i,j)加入E
5) 计算SimAttribute(i,j)作为边e(i,j)上的权重
6)Display中药复杂网络G(V,E)
社团是指网络中一组节点和边的集合,社团内部节点间连接很稠密,各社团间节点连接则是稀疏的。网络社团的这种直观意义表明社团内节点通常是一组具有某种共同属性或起某种相似作用的节点集合[10]。本文利用节点重要性NI(v),把重要性最高的节点及与其联系最紧密的节点作为新社团的核心成员,利用节点对社团的有效性NE(v,C)两次扩展社团,最终形成药物社团集,有助于探入挖掘中药间的潜在联系。药物社团划分算法流程如图1所示。
算法2 中药加权网络重叠社团划分
Input:中药复杂网络G(V,E)
Output:中药重叠社团集合P
1)P=Ø
2)For each v in V
3) 计算NI(v)
4) 计算节点每条边的边社团关联性ERuv
5) While(NI非空)
6) 移除出NI 值最大的节点vc,作为新社团C的中央节点
7) 将vc的邻域中边权重最大的节点也加入新社团C,称为新社团C的核心成员,将其移出NI
8) 第一次扩展C:计算vc的邻域内节点社团有效性,若NE(v,C)>0.5,则v加入C并移出NI
9) 第二次扩展C:构建新社团C 的邻域Kc,并计算Kc中节点的NE值
10) While(Kc非空)
11) 移出当前NE值最大的节点vt
12) if(F({C}{vt})>F(C))
13) 将vt加入新社团C
14) else
15) 将Kc清空
16) P=P U{C}
17)Display P
图1 社团划分算法流程
图2 基于方剂-属性的中药加权网络
本文实验所使用的数据取自国医堂名老中医治疗肺癌的临床病案,经过初步清洗之后构建方药数据库,包括2666 条方剂信息,提取了482 味中药。根据《中药大辞典》整理对应中药的属性,经过药性梳理、功效字段等处理后共得到13 种性味,12 种归经和120种功效,见表1-3。运用余弦相似度计算两味药物之间的属性分量相似度,最后整合出综合属性相似度,将之作为网络中边上的权重。
图3 节点度分布图
运用算法1 构建出中药复杂网络,在计算节点关联度时,参数k 设置为139(节点在方药矩阵中频次的均值),参数α 设置为α=0.000731(网络中节点关联度均值),网络共包含482 个药物节点,4184 条边,如图2所示。网络中节点平均度为17.4,节点度分布具有幂指数函数的规律,如图3所示。
在药物加权网络建立好之后,根据上述式(6)计算网络中节点重要性NI(v),这里综合考虑节点度以及节点聚类系数,根据NI(v)值取前20味药物作为核心节点,见表4。同时,由核心节点组成的网络如图4所示。
运用算法2对中药加权网络内核心节点进行社团划分,共得到9 个重叠社团,见表5。其中最大的社团(露蜂房,僵蚕,瓦楞子,猫爪草,半枝莲,全蝎)包含6个成员,其余社团成员数在2-3 之间。运用加权网络模块度函数Qω,对上述划分结果进行评估,计算出模块度为0.318,通常模块度在0.3-0.7 范围内的网络具有较强的社团结构[11]。
表1 中药属性表(性味)
表2 中药属性表(归经)
表3 中药属性表(功效)
表4 核心节点
图4 核心节点网络图
肺癌的发生是全身疾病在肺部的表现。肺为华盖,水之上源,主宣发肃降,布散津液,主治节,朝百脉。津液不能正常输布则留结为痰;治节不利则血留为瘀。故痰、瘀既为肺癌的病理产物,又是其致病因素。根据肺癌的病机确立治则为抗癌解毒,祛邪扶正。清热解毒以解热毒,化瘀通络以散瘀结,化痰理肺以顺气,软坚散结以消癥块。本实验构建的加权中药复杂网络中,节点间连边上的权重是以中药的性味、归经、功效等属性的相似度来衡量的,这个相似权重兼顾了方剂信息和药物属性信息,权值越大,则说明两味中药节点间关系越密切。在加权网络的社团发现中,权重是考虑节点聚类的重要因素。依据节点度以及节点聚类系数而综合计算出节点重要性,得出TOP20 个核心节点,其中泽漆、僵蚕、猫爪草、白毛夏枯草、肿节风等属于化痰散结类药物;白花蛇舌草、半枝莲、龙葵等属于抗癌解毒类药物;仙鹤草等属于活血通络类药物;冬凌草、鱼腥草、知母等属于清肺化痰类药物;露蜂房、全蝎等属于攻毒散结类药物。对这些核心节点进行社团划分,分出9个重叠药物社团,均有功效相似的特征,大都具有清热解毒、祛瘀止痛之功效[12]。比如社团(半枝莲,肿节风),都有清热解毒,祛瘀的功效;社团(露蜂房,僵蚕,瓦楞子,猫爪草,半枝莲,全蝎),都有止痛,散结的功效;社团(半枝莲,仙鹤草),都有止血,解毒的功效;社团(泽漆,白毛夏枯草),都有止咳化痰,消肿,解毒的功效。同时,9 个社团中,有6 个社团在原始的2666 条方剂信息中,出现的频次大于300,有3 个社团出现的频次小于100,分别是(白薇,龙葵)、(玄参,天花粉,十大功劳叶,知母)和(露蜂房,僵蚕,瓦楞子,猫爪草,半枝莲,全蝎),具体见表5。由此可见,本文提出的网络构建和社团划分方法相对于传统方法,能够找到更好地结合药物属性来挖掘中医用药规律,不仅能挖掘出高频药物组合,也能发现一些低频药物组合。
表5 药物社团
本文针对中药网络,提出了药物属性相似度的定义,并以此作为网络中节点边的权重,构建中药加权复杂网络,依据网络中节点重要性提取TOP20 味核心中药,再结合节点社团有效性的定义进行社团初建和二次扩展,最后完成重叠社团划分,划分结果模块度为0.318。实验结果显示,该算法对于加权网络划分的社团具有较高质量,能快速且准确地找出属性相似的高频药物社团,同时也兼顾了部分低频药物社团,从而为总结名老中医临床用药规律提供依据。下一步研究,拟从以下几个方面开展:其一,完善重叠社团划分算法,降低算法复杂度,并在最后增加社团合并步骤以期进一步提高社团划分质量。扩大社团划分覆盖的节点范围,找出更多的药物社团。同时探索其它度量标准对算法性能、划分结果进行有效评估。其二,针对社团之间的重叠节点,做进一步分析,探索其在名老中医治病用药中的地位和作用。