Извлечение названий соединений из многих документов пути KeGG - PullRequest
0 голосов
/ 08 октября 2018

Для проекта я хотел бы извлечь все составные имена из многих путей на веб-сайте KeGG.Список всех путей в одном организме выглядит как это .Для каждого пути я извлекаю имя и сохраняю описание.Тогда я хотел бы получить все соединения, которые играют роль на этом пути.Все, что известно о пути KeGG, можно найти на веб-сайте, например this .Элементы, которые я хотел бы извлечь, перечислены в разделе СОЕДИНЕНИЕ.

По сути, у меня есть набор URL-адресов и очень специфическое регулярное выражение, которое я хотел бы извлечь из каждого URL-адреса.Мой вопрос: что является лучшим / наименьшим количеством строк / самым легким многопоточным инструментом веб-сканирования для быстрого выполнения этого?

Мое действующее рабочее решение указано ниже.Должен ли я пойти посмотреть на scrapy (что больше подходит для проектов, в которых у вас нет набора URL) или лучше сделать что-нибудь с помощью threading самостоятельно?

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()

1 Ответ

0 голосов
/ 08 октября 2018
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)

Который показывает: ENTRY map00010 Путь ИМЯ Гликолиз / Глюконеогенез ОПИСАНИЕ Гликолиз - это про ...... .......

И остальные пути, которые я будуне копировать здесь.

...