从KeGG路径文档中提取复合名称

2024-04-23 18:20:20 发布

您现在位置:Python中文网/ 问答频道 /正文

对于一个项目,我想从KeGG网站的许多路径中提取所有复合名称。一个有机体中所有路径的列表看起来像this。对于每个路径,我提取名称并存储描述。然后我想得到所有在这个途径中起作用的化合物。关于KeGG路径的所有已知信息都可以在this这样的网站上找到。我想提取的元素是化合物下面列出的元素。你知道吗

基本上,我有一组URL和一个非常特定的正则表达式,我想从每个URL中提取。我的问题是:什么是最好的/最少的行/最简单的多线程web爬行工具来快速完成这个任务?你知道吗

我目前的工作方案如下。我应该去看看scrapy(对于没有url集的项目来说,scrapy更适合),还是自己做一些线程化的工作?你知道吗

import pandas as pd
import urllib
from io import StringIO
import re

def get_KeGG_pathways_cpds(organism = 'eco'):
    orgURL = 'http://rest.kegg.jp/list/pathway/'
    orgStr = urllib.request.urlopen(orgURL + organism).read().decode('utf-8')
    orgIO = StringIO(orgStr)
    orgDf = pd.read_csv(orgIO, sep='\t', names  = ['pway', 'description'])

    pathURL = 'http://rest.kegg.jp/get/'    
    for pway in orgDf.pway:
        pathStr = urllib.request.urlopen(pathURL + pway).read().decode('utf-8')
        compounds = re.findall('(C[0-9]{5})', pathStr)
        print(compounds)
        print('-------------------------\n')
    return

get_KeGG_pathways_cpds()

Tags: 项目import路径名称url元素readget
1条回答
网友
1楼 · 发布于 2024-04-23 18:20:20
import requests


listed = requests.get('http://rest.kegg.jp/list/pathway/')
listed =  listed.text.split('\n') # Remove the last one which is empty
for l in listed:
     result = requests.get('http://rest.kegg.jp/get/{}'.format(l.split('\t')[0])    
     #do_thing_with_result_here(result)
     print(result.text)

这表明: 入口map00010通道 名称糖酵解/糖异生 说明糖酵解是促进。。。。。。 ....... 你知道吗

其余的路径,我不会复制到这里。你知道吗

相关问题 更多 >