short_path_gene_find
哈尔滨工业大学
生物网络分析实践报告
**学生姓名:**荆树吉
学号: 25S103248
学院: 计算机科学与技术学院
**指导教师:**李杰
2026年5 月 25 日
实验二**: 构建信号网络且发现关键路径**
实验目的
掌握构建信号网络的方法,识别具有统计意义的最短路径和疾病基因的关键路径
实验内容
完成信号网络的构建,用摄动法确定基因间的最短路径,找到含有疾病基因的关
键路径.
实验要求
1.快速计算两个基因间的最短路径
2.用p值检验定义最短路径
3.定义疾病基因中的关键路径。
4.给出显著性路径上的关键疾病基因
实验步骤
1、从多个生物通路网站上抽取通路信息。
2、整合多个通路构建生物信号网络。
3、生物信号网络进行预处理(删除重复的连接及孤立点等)
4、根据疾病基因表达谱计算信号网络边的权值
5、从O0MIM疾病知识库,抽取疾病相关基因
6、多次扰动信号网络,计算疾病基因之间的最短路径,获得最短路径的统计值
7、识别具有显著性的最短路径上的疾病基因
实验算法
实验的主要算法为迪杰斯特拉算法,用来进行统计检验的方法是置换检验方法
迪杰斯特拉法:
核心:求带权无负权图单源最短路径
原理
设定起点,维护最短距离数组、已访问集合
每次选当前距离最短未访问节点
松弛更新邻接点最短路径
遍历完成得到起点到所有点最短距离
采用的干扰方法为权值干扰,即对权值进行干扰产生噪音,之后置换检验,看对应的p值的分布,判断对应的路线是否显著。
实验环境
Python 3.10.18
import heapq
import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd
from scipy.stats import pearsonr
import numpy as np
以上为python对应的文件
实验数据
example2.txt
example2.xlsx
GSE304485_expression_data.csv
来源如下图
图 1 基因表达谱的来源
实验结果及分析
1.从多个生物通路抽取通路信息
第一步,由于我使用的是课上对应的数据集,因此不用抽取,但是需要做处理。
数据集中无论一个基因节点对于另外一个基因节点的作用是正向还是负向都转化为一个单向的箭头,但是对应的0与?我的处理是全部删除,最后会获得一个由源节点和目的节点组成的两列文件,其可以代表一个有向图。
2.构建生物信号网络+预处理
在这个过程中就要考虑到,所有网络上的节点必须在生物表达谱的基因上,因此这样就需要从对应的xlsx中提取出对应的id与Entrez_Gene_ID的匹配信息,只有出现在表达谱中的节点才能在构建网络的时候被考虑到,而这些表达谱中的文件与对应的基因网络的交集就是新的可以用来计算边的权重的基因表达谱。
预处理的下一步是去除在基因表达谱中找不到的点,去除自环边,去除有向重复边,剔除孤立点。
经过处理过后的点可视化如图所示:
图 2 处理过后的有向图网络
3.根据疾病基因表达谱计算信号网络边的权值
基因表达谱中的基因的id为Entrez_Gene_ID,因此如果要进行权重的计算需要将基因的网内序号与Entrez_Gene_ID编号进行连接之后,根据网络中的边的分布进行权值的赋予,权值的赋予的原则是皮尔森相关性,公式为distance = int(round((1-corr) / 2 * 19 + 1)),两个基因节点之间的相关性越大,对应的距离越短。(有意思的是在开始我做错了公式,搞成了负相关,但是结果最显著的那个路径依旧显著)。
图 3 基因表达谱权值截图
4.进行可能的显著最短路径选择(具备一定意义)
根据之前的有向图的可视化,我们可以假设出几个最短路径,这些路径的长度大概是6-10个节点,选取的节点编号是(390, 1202), (227, 536),(341, 1168),(112, 928)这四对,经过迪杰斯特拉算法之后获得了这四条最短路径,具备一定长度。
第一条路径:
起点:390 终点:1202 最短路径总长度:134 一共找到 1 条最短路径 第1条路径:[390, 391, 26, 476, 119, 187, 471, 515, 1130, 966, 81, 984, 1278, 1292, 1202],示意图如下:
图 4 390-1202最短路径
第二条路径:
起点:227 终点:536 最短路径总长度:56 一共找到 1 条最短路径 第1条路径:[227, 228, 248, 374, 602, 515, 482, 574, 96, 118, 536]示意图:
图 5 227-536最短路径
第三条路经:
起点:341 终点:1168 最短路径总长度:78 一共找到 1 条最短路径 第1条路径:[341, 135, 165, 121, 28, 158, 511, 1168],示意图:
图 6 341-1168最短路径
第四条路径:
起点:112 终点:928 最短路径总长度:97 一共找到 1 条最短路径 第1条路径:[112, 118, 55, 91, 87, 994, 22, 458, 501, 81, 773, 1025, 928],示意图:
图 7 112-928 最短路径
5.多次扰动信号网络获取显著性p值
扰动采用动态改变权值的方法进行扰动,将每一个权值加上一个0.2的权值干扰,权值干扰小于最合适的干扰,因为对应的路径是目测出来的,因此不能保证足够明显,因此干扰比较小也是可以进行相对比较的。
最终得到一个比较显著的最短路径[341, 135, 165, 121, 28, 158, 511, 1168],对应成基因的名字序列是【’IC261’, ‘CK1d’, ‘DARPP-32’, ‘CDK5’, ‘APAF1’, ‘CYCS’, ‘PER’, ‘Clk’】
6.识别具有显著性的最短路径上的疾病基因
1.IC261(正确名称为ICOS)
OMIM结果
①诱导性T细胞共刺激分子 ②免疫缺陷,常见变异型 ③诱导性T细胞共刺激配体 ④含无名指结构域和CCCH型锌指结构域-1 -2 ⑤抗原CD28 ⑥免疫失调和全身性高炎症综合征 ⑦白细胞介素10 ⑧1型高IgM免疫缺陷症
可以看到这个基因是与免疫缺陷病症高度相关的一个基因。
2.CK1d
OMIM结果
全称CSNK1D 共找到两种病症 ①家族性提前睡眠相位综合征1,2型 ②注意力缺陷多动障碍。
3.DARPP-32
OMIM结果
①亨廷顿病是一种常染色体显性遗传的神经退行性疾病,以舞蹈样不自主运动、进行性认知障碍和精神异常为核心特征,目前尚无治愈方法,但可通过综合管理改善生活质量。
这是一种神经性疾病
4.CDK5
OMIM结果
①7型无脑症伴小脑发育不全 ②肌萎缩侧索硬化症1
5.APAF1
OMIM结果
①亨廷顿病 ②重度抑郁障碍1 ③亨廷顿病
6.CYCS
OMIM结果
①血小板减少症4 ②血小板减少症1 ③亨廷顿病
7.PER
OMIM结果
①僵人综合征 ②B型血友病 ③家族性高胆固醇血症 ④囊性纤维化 ⑤苯丙酮尿症 ⑥自闭症 ⑦阿佩特综合征 ⑧亨廷顿症
8.CLK
OMIM结果 没有明显的病症,转而去寻找 网上资料
包括睡眠障碍,抑郁,双向情感障碍,阿尔茨海默症,帕金森症等病症
总结
可以看到这一条通路是有关昼夜节律和精神性疾病的相关的信号通路
其中包含很多基因为亨廷顿病的诱发基因,这也证明了这个基因通路是神经性的通路,与精神性疾病息息相关。
最后附加一个人工标注的之前用来分析的显著性最短路径,如下图所示:
图 8 手工标注的最短关键显著路径
附件-实验二程序和数据
代码和数据如附件所示。
