from Bio import Entrez,SeqIO
import csv
# 参数设置
Entrez.email = "example@163.com"
Entrez.tool = "exampleScript"
def get_gbk(csv_file):
"""
从csv文件中获取GenBank Accessions,返回基因组登记号列表(gbk_List)
:param csv_file: csv文件
:return: 含有所有GenBank Accessions的列表
"""
gbk_list =[] # 存储GenBank Accessions
# 读取csv文件
csv_flie = csv.reader(open(csv_file))
# 确定“GenBank Accessions”所在位置(即索引)
goal_index = 0
for l in csv_flie:
goal_index = l.index("GenBank Accessions")
break
# 读取所有组的信息找到对应的"GenBank Accessions"
for line in csv_flie:
gbk_list.append(line[goal_index])
return gbk_list
def download_gbk(gbk_list,goal_path):
"""
下载提供的基因组登记号列表中对应的genbank格式基因组序列,并存储到本地
:param gbk_list: "GenBank Accessions"列表
:param goal_path: gbk文件存储路径
:return: failed_list
"""
# 下载失败的基因组序列列表
failed_list = []
print("开始下载gbk格式基因组序列文件")
for gbk_id in gbk_list:
file_name = goal_path + gbk_id + ".gbk" # 指明路径:以GenBank Accessions命名文件
try:
handle = Entrez.efetch(db="nucleotide",id=gbk_id,rettype="gb",retmode=
基因组序列genbank格式和fasta格式批量下载
于 2020-11-07 14:29:37 首次发布
本文介绍了一种通过Python脚本批量下载GenBank和FASTA格式基因组序列的方法。该脚本能够从CSV文件中读取GenBank Accessions,然后利用NCBI的Entrez API下载指定的基因组文件。此外,还提供了重试机制来处理下载失败的情况。


5万+

被折叠的 条评论
为什么被折叠?



