首页 > 解决方案 > 使用 fasta 文件中的序列 ID 提取序列

问题描述

我有一个 fasta ID(Q99424在示例中),我需要为该 ID 提取相应的序列。我正在使用Bio代表每条记录的库,如下所示:

SeqRecord(seq=Seq('MGSPVHRVSLGDTWSRQMHPDIESERYMQSFDVERLTNILDGGAQNTALRRKVE...SKL'), id='sp|Q99424|ACOX2_HUMAN', name='sp|Q99424|ACOX2_HUMAN', description='sp|Q99424|ACOX2_HUMAN', dbxrefs=[])

我可以遍历每条记录并进行搜索,但这不是最好的方法,因为我有超过 12000 条记录要搜索。

这就是我们可以遍历所有序列的方式:

for record in SeqIO.parse(handle, "fasta"):
  name = record.name
  id = record.name.split("|")[1]

标签: pythonsequencebioinformaticsfasta

解决方案


你可以使用pyfaidx:https ://pythonhosted.org/pyfaidx/ 你可以使用这个模块或者samtools生成fasta索引“.fai”,然后使用pyfaidx的fetch函数


推荐阅读