2021-05-09

2021-05-10  本文已影响0人  Wu_tz

批量替换序列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替换为目标序列文件即可。

希望能帮助到大家!

上一篇下一篇

猜你喜欢

热点阅读