KEGG所有ko及对应通路整理
下载json文件
点击 这里 进入下载页面,右键从链接另存文件
获得的json文件如图:
使用python处理json文件
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,在python中可使用json包进行解码与编码,主要涉及四个方法:load, loads, dump, dumps。
json.loads:将json字符串解码为python对象
json.dumps:将python对象编码为json字符串
json.load和json.dump:分别与json.loads, json.dumps的功能对应,但需要传入文件描述符,对文件进行操作
import json
# 读入 JSON
with open('C:/Users/law/Desktop/ko00001.json', encoding='utf-8') as f:
data = json.load(f)
out_lines = []
# 递归函数
def walk(node, lvls):
"""
node : dict
lvls : list[str] 当前已累积的层级(最多 3 级:L1/L2/L3)
"""
name = node['name']
kids = node.get('children', [])
# 根据已累积层级决定下一步
if len(lvls) < 3: # 继续向下收集层级
for ch in kids:
walk(ch, lvls + [name])
else: # 已到叶子层,解析 KO
try:
ko, *desc = name.strip().split(maxsplit=1)
desc = ' '.join(desc) if desc else ''
ko = 'ko:' + ko if not ko.startswith('ko:') else ko
out_lines.append('\t'.join([ko] + lvls + [desc]))
except Exception:
pass
# 从根节点的第一层 children 开始
for child in data['children']:
walk(child, [])
# 写出 TSV
with open('C:/Users/law/Desktop/ko_pathway1.txt', 'w', encoding='utf-8') as f:
f.write('KO\tPathwayL1\tPathwayL2\tPathwayL3\tKoDescription\n')
f.write('\n'.join(out_lines))
整理好的kegg通路文件:
参考链接: https://zhuhaizhen.github.io/2020/06/30/KEGG-all-kos/
本文最后更新于
2025-07-18
如有失效,请留言
THE END