生物学层级本体:基因 → 精细通路 → 逐级抽象的粗通路
PathwayHierarchy
00 Remarks
P-NET 的核心思想是把生物学先验知识直接"编译"进网络拓扑:网络的层数、每一层的节点数量 以及层与层之间的连接方式,全部由这里所描述的层级包含关系决定,而不是由数据决定。
一个完整的本体由基因列表 PathwayHierarchy.GeneNames 以及若干层通路 PathwayHierarchy.Levels 组成:
- PathwayHierarchy.Levels(0) 为最精细的通路层,其成员为基因;
- PathwayHierarchy.Levels(k) 的成员为 PathwayHierarchy.Levels(k - 1) 中的通路节点;
- 越往后的层级越抽象,节点数量越少,对应于 Reactome 中由精细通路逐级汇总到复杂生物过程的过程。
论文中的 P-NET 使用 5 层通路,因此本类型的标准形态为 1 层基因 + 5 层通路。 但是本实现并不绑定固定的层数,替换为 KEGG / Gene Ontology 或者自定义的通路模块时 只需要更换层级描述即可重建整个网络。
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| .ctor | 2 | 创建一个空的本体对象 |
| GetInputFeatureNames | 1 | 生成输入层的特征名称,依次为每一个基因的突变、扩增、缺失三个特征 |
| GetNodeNames | 1 | 获取指定网络层(不含输入层)的节点名称 |
| GetLayerSize | 1 | 获取指定网络层的节点数量 |
| GetLayerName | 1 | 获取指定网络层的名称 |
| BuildConnectivity | 1 | 编译指定网络层的稀疏连接结构 |
| BuildAllConnectivity | 1 | 编译整个网络所有层的稀疏连接结构 |
| GetNodeDegrees | 1 | 计算指定网络层中每一个节点的度(入度与出度之和) |
| Cleanup | 1 | 剔除空通路与孤立节点,并修正越界的成员索引 |
| ToString | 1 | 生成本体的字符串描述 |
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| AlterationTypes | 1 | 每一种基因组改变类型的后缀名,依次为突变、拷贝数扩增、拷贝数缺失 |
| GeneNames | 1 | 基因名称列表,其顺序即为基因层节点的顺序 |
| Levels | 1 | 由精细到粗逐级排列的通路层 |
| GeneCount | 1 | 基因数量,即基因层节点数量 |
| InputSize | 1 | 输入层节点数量,等于基因数量的 3 倍(突变 / 扩增 / 缺失) |
| PathwayDepth | 1 | 通路层的数量 |
| LayerCount | 1 | 网络中的隐藏层数量,等于 1 层基因层加上所有通路层 |
04 Members
创建一个空的本体对象
String(), IEnumerable(Of HierarchyLevel))使用给定的基因名与通路层创建本体对象
| Name | Type | Description |
|---|---|---|
geneNames | String() | 基因名数组 |
levels | IEnumerable(Of HierarchyLevel) | 由精细到粗排列的通路层 |
生成输入层的特征名称,依次为每一个基因的突变、扩增、缺失三个特征
输入特征名称数组,长度为 PathwayHierarchy.InputSize
Int32)获取指定网络层(不含输入层)的节点名称
| Name | Type | Description |
|---|---|---|
layerIndex | Int32 | 网络层索引,0 表示基因层,1 到 PathwayHierarchy.PathwayDepth 依次表示由精细到粗的通路层 |
节点名称数组
Int32)获取指定网络层的节点数量
| Name | Type | Description |
|---|---|---|
layerIndex | Int32 | 网络层索引,0 表示基因层 |
节点数量
Int32)获取指定网络层的名称
| Name | Type | Description |
|---|---|---|
layerIndex | Int32 | 网络层索引,0 表示基因层 |
层名称
Int32)编译指定网络层的稀疏连接结构
对于基因层(layerIndex = 0),每一个基因节点恰好连接到输入层中 属于该基因的 3 个改变特征节点,形成 3 → 1 的块状稀疏结构; 对于其余各层,则直接使用该通路层所描述的父子包含关系。
| Name | Type | Description |
|---|---|---|
layerIndex | Int32 | 网络层索引,0 表示基因层(其输入为三倍基因数的改变特征) |
该层的稀疏连接边表
编译整个网络所有层的稀疏连接结构
逐层稀疏连接边表数组,长度为 PathwayHierarchy.LayerCount
Int32)计算指定网络层中每一个节点的度(入度与出度之和)
论文在解释模型的时候发现,一个通路节点如果属于过多的父通路(枢纽节点、过度注释), 会通过更多的路径汇聚归因分数,导致其重要性被系统性高估,因此需要使用节点度做偏倚校正。
| Name | Type | Description |
|---|---|---|
layerIndex | Int32 | 网络层索引,0 表示基因层 |
度数组,长度等于该层节点数
剔除空通路与孤立节点,并修正越界的成员索引
从公共数据库(例如 Reactome)导出的层级描述中往往会存在空通路、 重名通路以及指向不存在的子节点的越界索引,在编译为网络之前必须先做清洗。
经过清洗之后得到的新本体对象
生成本体的字符串描述
形如 Hierarchy[48 genes -> 16 -> 10 -> 6 -> 4 -> 2] 的描述文本
每一种基因组改变类型的后缀名,依次为突变、拷贝数扩增、拷贝数缺失
论文中每一个基因都被编码为 3 个二值特征(mutation / amplification / deletion), 这直接决定了输入层到基因层的 3 → 1 块状稀疏连接模式。
改变类型后缀数组
基因名称列表,其顺序即为基因层节点的顺序
基因名数组
由精细到粗逐级排列的通路层
通路层列表,第 0 个元素为最精细的通路层
基因数量,即基因层节点数量
基因数量
输入层节点数量,等于基因数量的 3 倍(突变 / 扩增 / 缺失)
输入特征维度
通路层的数量
通路层数
网络中的隐藏层数量,等于 1 层基因层加上所有通路层
隐藏层数量