【问题标题】:Extracting Fasta Moonlight Protein Sequences with Python用 Python 提取 Fasta Moonlight 蛋白质序列
【发布时间】:2017-01-28 19:01:29
【问题描述】:

我想通过 Python 从 Moonlighting 蛋白质数据库 ( www.moonlightingproteins.org/results.php?search_text= ) 中提取具有氨基酸序列的 FASTA 文件,因为这是一个迭代过程,我宁愿学习如何比手动编程,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

提前致谢!

【问题讨论】:

  • 我建议在谷歌上搜索“使用 python 介绍网络抓取”或类似术语,然后稍微弄乱一下。现在你的问题有点太抽象了。

标签: python database data-mining bioinformatics protein-database


【解决方案1】:

我强烈建议向作者索取数据库。来自FAQ

我想在一个项目中使用 MoonProt 数据库来分析 使用生物信息学的氨基酸序列或结构。

如果您是,请通过 bioinformatics@moonlightingproteins.org 联系我们 有兴趣使用 MoonProt 数据库进行序列分析和/或 兼职蛋白质的结构。

假设您发现了一些有趣的东西,您将如何在论文或论文中引用它? “这些序列是在未经作者同意的情况下从公共网页上抓取的”。最好将功劳归功于原始研究人员。

这是对scraping的一个很好的介绍

但回到你原来的问题。

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'])

【讨论】:

    猜你喜欢
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多