我正在处理来自瑞士港口(ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.fasta.gz)的fasta文件,在以'>
'开头的行中,我们得到了下一行中蛋白质的一些信息,即氨基酸序列。在
有没有一种方法可以使用基因名(在被描述为“GN=xxxxxxx
”的行中是x
”的基因名)来搜索这些行,然后导入这些行中的序列吗?在
我一直在努力解决这个问题,因为在行的中间搜索和创建复制下一行的循环时遇到了困难。在
如果您正在使用Linux,请熟悉}。他们会为你节省很多时间。在
sed
、awk
和{假设我们在寻找基因FV3-002L
-n
:告诉sed只在被告知时打印GN=FV3-002L
:您的搜索词^>
:搜索的结尾,^
是一行的开始,>
是FASTA标题的开始/p
:告诉sed打印匹配项| head -n -1
:去掉最后一行(太懒了,找不到更好的正则表达式,但是你明白了)使用Python:
^{pr2}$这个脚本打开uniprot文件,读取每一行,检查是否找到了基因名,如果找到了,它会读取每一行直到下一个头,最后打印FASTA序列。在
请注意:这些片段只适用于一个例子,但也可以适用于多个基因。如果您想经常这样做,那么寻找更有效的数据处理方法是值得的。对于生物数据的操作,您还可以查看BioPython。在
相关问题 更多 >
编程相关推荐