python - 使用 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]
解决方案
你可以使用pyfaidx:https ://pythonhosted.org/pyfaidx/ 你可以使用这个模块或者samtools生成fasta索引“.fai”,然后使用pyfaidx的fetch函数
推荐阅读
- python - 如何正确编写带有条件 if 语句的 for 循环?
- angular - 为什么使用 OnPush 策略时即使输入没有改变,模板也会重新渲染?
- python - Python 3 损坏的文件写入 smb 共享(Python 2 有效)
- c - 如何扫描字符串直到出现特定单词
- javascript - 延迟评估 JavaScript 中的字符串文字
- java - Java - 覆盖实例字段
- javascript - 如何配置 webpack 以使用 'typings-for-css-modules' 加载器
- crash - 视频驱动程序崩溃并被重置
- python - 不知道如何解决这个背包问题
- r - 一个接一个地合并两个时间数据帧