linux批量下载基因组、基因序列、基因组注释信息

本文介绍了一个Python脚本,通过argparse库简化了从NCBI下载特定类型(如GFF3)基因组数据的过程,用户只需提供accession号码和输出目录。脚本首先安装datasets库,然后按列表下载并解压数据,提取所需文件后删除临时文件。
摘要由CSDN通过智能技术生成

ncbi虽然有提供专门的下载的方式,但是比较复杂,如果想知道怎么下载的,可以私聊我。

我这里所提供的是我改过的,可以更加方便,快捷;话不多说,批量下载开始!

需要先用conda安装一个 datasets软件,然后就可以使用咯

import argparse
import zipfile
import glob
from pathlib import Path
import subprocess
import shutil

#autor = Zhou.wangyi
#email = 772967843@qq.com

def download(inputfile,outputfile,include = 'gff3'):

    assison_set = set()
    inputfile_abs  = Path(inputfile).resolve()
    outputfile_abs = Path(outputfile).resolve()

    with open (inputfile_abs, 'r') as f:
        for line in f:
            line = line.strip()
            assison_set.add(line)
            subprocess.run(f'''
            datasets download  genome accession {line} --include {include} --filename {outputfile_abs}/{line}.zip
                           ''',shell=True)

    zip_list = glob.glob(f'{outputfile_abs}/*.zip')

    for zipfn in zip_list:
        prefix0=str(Path(zipfn).absolute().name)
        prefix=prefix0.replace('.zip','')
        with zipfile.ZipFile(f'{zipfn}','r')as zip_file:
            zip_file.extract(f'ncbi_dataset/data/{prefix}/genomic.gff',f'./{prefix}/')
            rawpath=f'./{prefix}/ncbi_dataset/data/{prefix}/genomic.gff'
            newpath=f'./{prefix}.gff'
            shutil.move(rawpath,newpath)
            shutil.rmtree(f"./{prefix}")

def main():
    parser = argparse.ArgumentParser(description='Download genomic data from NCBI')
    parser.add_argument('-i', '--inputfile', type=str, required=True, help='Input file containing NCBI accession numbers')
    parser.add_argument('-o', '--outputfile', type=str, required=True, help='Output directory for downloaded data')
    parser.add_argument('-include', '--include', type=str, default='gff3', help='Type of data to download (gff3, fasta, etc.)')
    args = parser.parse_args()
    download(args.inputfile,args.outputfile,args.include)

if __name__ == '__main__':
    main()

输入参数为:python3 down.py -i list -o .,-i参数为你想要下载的accession_number号,-o参数为输出路径;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值