Извлечение белковых последовательностей Fasta Moonlight с помощью Python

Я хочу извлечь файлы FASTA с аминокислотной последовательностью из базы данных Moonlighting Protein Database (www.moonlightingproteins.org/results.php?search_text=) с помощью Python, поскольку это итеративный процесс, который я предпочел бы научиться программировать, а не сделать это вручную, b/c давай, мы в 2016 году. Проблема в том, что я не знаю, как писать код, потому что я начинающий программист :( . Базовый псевдокод будет:

 for protein_name in site: www.moonlightingproteins.org/results.php?search_text=:

       go to the uniprot option 

       download the fasta file 

       store it in a .txt file inside a given folder

Заранее спасибо!


person Manolo Flores    schedule 20.09.2016    source источник
comment
Я предлагаю погуглить «веб-скрапинг с введением в python» или похожие термины и немного повозиться с этим. Сейчас ваш вопрос слишком абстрактен.   -  person Swier    schedule 20.09.2016


Ответы (1)


Я настоятельно рекомендую запросить базу данных у авторов. Из раздела Часто задаваемые вопросы:

Я хотел бы использовать базу данных MoonProt в проекте для анализа аминокислотных последовательностей или структур с использованием биоинформатики.

Пожалуйста, свяжитесь с нами по адресу [email protected], если вы заинтересованы в использовании базы данных MoonProt для анализа последовательностей и/или структур мунлайтинговых белков.

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

Это хорошее введение в парсинг.

Но вернемся к вашему первоначальному вопросу.

import requests
from lxml import html
#let's download one protein at a time, change 3 to any other number
page = requests.get('http://www.moonlightingproteins.org/detail.php?id=3')
#convert the html document to something we can parse in Python
tree = html.fromstring(page.content)
#get all table cells
cells = tree.xpath('//td')

for i, cell in enumerate(cells):
    if cell.text:
        #if we get something which looks like a FASTA sequence, print it
        if cell.text.startswith('>'):
            print(cell.text)
    #if we find a table cell which has UniProt in it
    #let's print the link from the next cell
    if 'UniProt' in cell.text_content():
        if cells[i + 1].find('a') is not None and 'href' in cells[i + 1].find('a').attrib:
            print(cells[i + 1].find('a').attrib['href'])
person Maximilian Peters    schedule 20.09.2016