我有一个包含多个序列的fasta文件,其标题如下:
>1016BSA34080.1
MTHSVRIITVTVNFLQHRFFIDYMSEIGLLDGEIEQMVSALQEQVHIVARARTLPEMKNLERDTHVIVKT
LKKQLTAFHSEVKKIADSTQRSRYEGKHQTYEAKVKDLEKELRTQIDPPPKSVSEKHMEDLMGEGGPDGS
GFKTTDQVLRAGIRIQNDA
>1038BSA81955.1
MQQQQARRRMEEPTAAAATASSTTSFAAQPLLSRSVAPQAASSPQASARLAESAGFRSAAVFGSAQAAVG
GRGRGGFGAPPGRGGFGAPPAAGFGAAPAFGAPPTLQAFSAAPAPGGFGAPPAPQGFGAPRAAGFGAPPA
PQAFSAVAPASSTAIPLDVTTYLGDTFGSAPTRGPP
标题开头的4位数字是序列的唯一ID。在
你能帮我写一个python脚本来按4位ID提取序列(在一个文本文件中,每行一个ID)?在
我试着修改这个脚本(我在这个网站上找到:Extract sequences from a FASTA file based on entries in a separate file)来适应我的目的(徒劳):
^{pr2}$我是Python新手,任何帮助都将不胜感激!谢谢-迪维亚
accessionids.txt
是否只包含四位数代码?在如果是,请将accessorID更改为:
一些方法可以让这更像Python:
使用集合而不是字典,使用
^{pr2}$strip()
而不是切片来删除换行符,并使用生成器表达式来构建集合使用},而不是
True
和{skip
的0和1。在我将重做主循环:
我觉得这样的逻辑就更明显了。另外,从原始的
skip = 0
开始,或者在我的中以in_accession_ids=True
开始,这意味着您将在找到第一个序列头之前打印所有内容。这可能是你想要的,也可能不是——我在重写本中假设没有。在你可能最终会想看看Biopython的收集-对于这个特定的任务来说,它有点过分了,但总体来说还是相当不错的。很多工具可以用来读取FASTA文件和相关格式,等等。在
http://biopython.org/wiki/Biopython
相关问题 更多 >
编程相关推荐