从SwissProt Fasta Fi导入序列

2024-04-19 08:53:57 发布

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

我正在处理来自瑞士港口(ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.fasta.gz)的fasta文件,在以'>'开头的行中,我们得到了下一行中蛋白质的一些信息,即氨基酸序列。在

有没有一种方法可以使用基因名(在被描述为“GN=xxxxxxx”的行中是x”的基因名)来搜索这些行,然后导入这些行中的序列吗?在

我一直在努力解决这个问题,因为在行的中间搜索和创建复制下一行的循环时遇到了困难。在


Tags: orgrelease基因ftp序列currentdatabasefasta
1条回答
网友
1楼 · 发布于 2024-04-19 08:53:57

如果您正在使用Linux,请熟悉sedawk和{}。他们会为你节省很多时间。在

假设我们在寻找基因FV3-002L

sed -n '/GN=FV3-002L/,/^>/p' uniprot_sprot.fasta | head -n -1

-n:告诉sed只在被告知时打印

GN=FV3-002L:您的搜索词

^>:搜索的结尾,^是一行的开始,>是FASTA标题的开始

/p:告诉sed打印匹配项

| head -n -1:去掉最后一行(太懒了,找不到更好的正则表达式,但是你明白了)


使用Python:

^{pr2}$

这个脚本打开uniprot文件,读取每一行,检查是否找到了基因名,如果找到了,它会读取每一行直到下一个头,最后打印FASTA序列。在

请注意:这些片段只适用于一个例子,但也可以适用于多个基因。如果您想经常这样做,那么寻找更有效的数据处理方法是值得的。对于生物数据的操作,您还可以查看BioPython。在

相关问题 更多 >