基因组序列genbank格式和fasta格式批量下载

本文介绍了一种通过Python脚本批量下载GenBank和FASTA格式基因组序列的方法。该脚本能够从CSV文件中读取GenBank Accessions,然后利用NCBI的Entrez API下载指定的基因组文件。此外,还提供了重试机制来处理下载失败的情况。
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=
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值