栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Python

kegg 上ko号对应的通路数据

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kegg 上ko号对应的通路数据

kegg 上ko通路数据的获取

最近一直在弄kegg的一些东西,就把心得写下来吧。
接着自己上面的文章:

ko对应K号的表的下载



得到的json文件内容部分如下:

{
	"name":"ko00001",
	"children":[
	{
		"name":"09100 metabolism",
		"children":[
		{
			"name":"09101 Carbohydrate metabolism",
			"children":[
			{
				"name":"00010 Glycolysis / Gluconeogenesis [PATH:ko00010]",
				"children":[
				{
					"name":"K00844  HK; hexokinase [EC:2.7.1.1]"
				},
				{
					"name":"K12407  GCK; glucokinase [EC:2.7.1.2]"
				},
				{
					"name":"K00845  glk; glucokinase [EC:2.7.1.2]"
				},
				。。。。。。。
				
下面附上json字符串的处理python脚本。
import json


def get_K_ko_dict(K_ko_file):
    K_ko_dict = {}
    # K_list = []
    with open(K_ko_file, "r")as f:
        K_ko_file_content = json.load(f)
    for children_info in K_ko_file_content.get("children"):
        for next_children_info in children_info.get("children"):
            for third_children_info in next_children_info.get("children"):
                name_info = third_children_info.get("name")
                find_pat = r":ko(.*?)]"
                ko_num = re.findall(find_pat, name_info)
                if ko_num:
                    K_ko_dict["ko"+ko_num[0]] = []
                    if third_children_info.get("children"):
                        for fourth_children_info in third_children_info.get("children"):
                            K_name = fourth_children_info.get("name").split(" ")[0]
                            K_ko_dict["ko" + ko_num[0]].append(K_name)
                            # K_list.append(K_name)
                else:
                    un_unmber = "un" + name_info.split(" ")[0]
                    # 因为有些通路没有只给了一个号,没有ko通路,所以暂时这么处理。
                    K_ko_dict[un_unmber] = []
                    if third_children_info.get("children"):
                        for fourth_children_info in third_children_info.get("children"):
                            K_name = fourth_children_info.get("name").split(" ")[0]
                            K_ko_dict[un_unmber].append(K_name)
                            # K_list.append(K_name)
    return K_ko_dict



if __name__ == '__main__':
	# K_ko_file的文件路径
	# 例如: E:metaK_koko00001.json
	get_K_ko_dict(K_ko_file)

# 得到的部分结果如下:
{'ko00010': ['K00844', 'K12407'.......'K20118', 'K02753'], 
'ko00020': ['K01647', 'K01648', 'K15230', 'K15231', 'K05942', 'K01681', 'K01682', 'K00031', 'K00030'.......
.......}

得到的结果是对应的pathway包含的K号的字典。
可以用于剩下的分析。

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/280344.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号