从fasta中提取序列

我有一些fasta序列
然后我要在这些fasta中提取其中一些fasta序列
biopython便是很好的处理包
基本处理代码如下

A002_usefulname是包含我要提取的序列的名字那一行(这里是不包括">")

import pandas as pd
from Bio import SeqIO
import os
os.system("rm -rf A003_use.fasta")
data=open("A003_use.fasta","a+")
with open("A002_usefulname") as f:
    for id in f:
        print(id.rstrip())
        seq=SeqIO.parse("seq.fasta","fasta")
        for line in seq:
            if line.id==id.rstrip():

                data.write(">"+str(id.rstrip())+"\n"+str(line.seq)+"\n")

最近发现这种小脚本用的比较多,所以改造一下,让它变得通用
其中
第一位是要提取的名字的文件
第二位是被提取的序列
第三位是生成的文件名字


from Bio import SeqIO
import os
import sys

data=open(sys.argv[3],"w+")
with open(sys.argv[1]) as f:
    for id in f:
        print(id.rstrip())
        seq=SeqIO.parse(sys.argv[2],"fasta")
        for line in seq:
            if line.id==id.rstrip():

                data.write(">"+str(id.rstrip())+"\n"+str(line.seq)+"\n")

使用方法

python Extra_name.py lastname.txt  seq.fasta new_seq.fa
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容