2021-05-09

批量替换序列id的小方法

利用* Batch Entrez
工具根据accession号批量下载基因序列时,得到的序列id通常不包含物种名,如下图:

image.png

然后我们可以将物种名去替换其中“>”后的内容,由于课题需要写了个小方法:

准备两个文件①从Batch Entrez批量下载的序列文件;②物种名与accession好的对应文件(如下图)。


image.png

利用以下脚本可以一键替换:

f1 = open("accession.txt","r")
f3 = open("out.fas","w")
lines1 = f1.readlines()
with open('ask1.fas') as f2:
    dict = {line.strip():next(f2).strip() for line in f2}
keys = dict.keys()
for line1 in lines1:
    line1 = line1.strip()
    line1 = line1.split()
    for key in keys:
        if line1[1] in key:
            f3.write(">")
            f3.write(line1[0])
            f3.write("\n")
            value = dict[key]
            f3.write(value)
            f3.write("\n")
f1.close()
f2.close()

其中,ask1.fas替换为目标序列文件即可。

希望能帮助到大家!

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

推荐阅读更多精彩内容