NCBI中assembly_summary.txt文件下载

news/2024/7/8 3:23:31 标签: python, 基因组

最近准备下载微生物的参考基因组序列,由于是初入生信,折腾了一段时间,对NCBI中ftp中数据库结构有初步的认识,查看数据库中的一些文档,整理了assembly_summary.txt,taxonomy/文件下载的脚本,用于后续下载对应文件使用。在具体分类的文件中的文件名都是一致(如bacteria,fungi等等),故在下载完成后对文件重新命名,写脚本的目的只为在当前及后续遇到同样的需求能够增加工作效率,脚本如下:

python">#_*_coding:UTF-8_*_

"""
包含assembly_summary.txt的url地址列表
总的refseq信息,bacteria,archaea,fungi,viral,protozoa
"""

import subprocess
import argparse

def taxonomy():
    taxonomy_url = ["ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz"]
    taxonomy_urls = ["ftp://ftp.ncbi.nih.gov/pub/taxonomy/accession2taxid/nucl_gb.accession2taxid.gz",
                     "ftp://ftp.ncbi.nih.gov/pub/taxonomy/accession2taxid/nucl_wgs.accession2taxid.gz",
                     "ftp://ftp.ncbi.nih.gov/pub/taxonomy/accession2taxid/prot.accession2taxid.gz"]
    cmd0 = "mkdir taxonomy"
    subprocess.check_output(cmd0, shell=True)

    cmd1 = "cd taxonomy " + "&& " + "wget " + taxonomy_url[0]
    cmd2 = "cd taxonomy " + "&& " + " tar -zxvf " + taxonomy_url[0].split("/")[5]
    subprocess.check_output(cmd1, shell=True)
    subprocess.check_output(cmd2, shell=True)

    for url in taxonomy_urls:
        cmd3 = "cd taxonomy " + "&& " + "wget " + url
        cmd4 = "cd taxonomy " + "&& " + " gunzip " + url.split("/")[6]
        subprocess.check_output(cmd3, shell=True)
        subprocess.check_output(cmd4, shell=True)

def download_assembly():
    #ref seq genomes info download
    refseq_url = ["ftp://ftp.ncbi.nih.gov/genomes/refseq/assembly_summary_refseq.txt"]
    refseq_url_list = ["ftp://ftp.ncbi.nih.gov/genomes/refseq/bacteria/assembly_summary.txt",
                       "ftp://ftp.ncbi.nih.gov/genomes/refseq/archaea/assembly_summary.txt",
                       "ftp://ftp.ncbi.nih.gov/genomes/refseq/fungi/assembly_summary.txt",
                       "ftp://ftp.ncbi.nih.gov/genomes/refseq/viral/assembly_summary.txt",
                       "ftp://ftp.ncbi.nih.gov/genomes/refseq/protozoa/assembly_summary.txt"]
    # genbank genomes info download
    genbank_url = ["ftp://ftp.ncbi.nih.gov/genomes/genbank/assembly_summary_genbank.txt"]
    genbank_url_list = ["ftp://ftp.ncbi.nih.gov/genomes/genbank/bacteria/assembly_summary.txt",
                        "ftp://ftp.ncbi.nih.gov/genomes/genbank/archaea/assembly_summary.txt",
                        "ftp://ftp.ncbi.nih.gov/genomes/genbank/fungi/assembly_summary.txt",
                        "ftp://ftp.ncbi.nih.gov/genomes/genbank/viral/assembly_summary.txt",
                        "ftp://ftp.ncbi.nih.gov/genomes/genbank/protozoa/assembly_summary.txt"]
    # options "refseq"
    if args.input_type == "refseq":
        cmd = "wget -O " + refseq_url[0].split("/")[4] + "_" + refseq_url[0].split("/")[5] + " " + refseq_url[0]
        subprocess.check_output(cmd, shell=True)
        for ref_url in refseq_url_list:
            cmd1 = "wget -O " + ref_url.split("/")[4] + "_" + ref_url.split("/")[5] + "_" + ref_url.split("/")[6] + " " + ref_url
            subprocess.check_output(cmd1, shell=True)
    # options "genbank"
    elif args.input_type == "genbank":
        cmd = "wget -O " + genbank_url[0].split("/")[4] + "_" + genbank_url[0].split("/")[5] + " " + genbank_url[0]
        subprocess.check_output(cmd, shell=True)
        for genbank_url in genbank_url_list:
            cmd1 = "wget -O " + genbank_url.split("/")[4] + "_" + genbank_url.split("/")[5] + "_" + genbank_url.split("/")[6] + " " + genbank_url
            subprocess.check_output(cmd1, shell=True)
    # options "all"
    elif args.input_type == "all":
        # total info
        merger_url = []
        merger_url.append(refseq_url[0])
        merger_url.append(genbank_url[0])
        # split info
        merger_url_list = []
        for i in refseq_url_list:
            merger_url_list.append(i)
        for j in genbank_url_list:
            merger_url_list.append(j)
        for url in merger_url:
            cmd = "wget -O " + url.split("/")[4] + "_" + url.split("/")[5] + " " + url
            subprocess.check_output(cmd, shell=True)
        for url1 in merger_url_list:
            cmd1 = "wget -O " + url1.split("/")[4] + "_" + url1.split("/")[5] + "_" + url1.split("/")[6] + " " + url1
            subprocess.check_output(cmd1, shell=True)
    else:
        print("ERROR: CHECK THE TYPE")


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Download assembly summary from genbank or refseq")
    parser.add_argument('-tax', "--taxonomy", type=str, help= "GenBank taxonomy files")
    parser.add_argument('-type',"--input_type",type=str, help="input the download directory such as 'refseq', 'genbank' or 'all'")
    args = parser.parse_args()
    if args.taxonomy == "taxonomy":
        taxonomy()
    elif args.input_type == "refseq" or args.input_type == "genbank" or args.input_type == "all":
        download_assembly()
    else:
        print("usage: download_assembly_summary_v1.py [-h] [-type INPUT_TYPE] [-tax TAXONOMY]")

 


http://www.niftyadmin.cn/n/1721987.html

相关文章

bwa、bowtie2、tophat、hisat2 比对软件学习中的笔记整理

对常用的比对软件学习进行用法整理记录。记录的内容相对简单,详细说明及用法还得参考软件使用说明书 bwa、bowtie2、tophat、hisatbwabwa(Burrows-Wheeler Aligner) bwa文档说明 http://bio-bwa.sourceforge.net/bwa.shtmlBWA用于将低差异的序列映射到一个大的参考…

fastp使用

fastpfastp 下载及安装# fastp只依赖于zlib(如果在编译fastp过程中出现“undefined reference to gzbuffer”错误,可更新zlib进行处理)#安装方式一: 下载编译好二进制(仅适用于linux系统)wget http://opengene.org/fastp/fastpchm…

python进行信息匹配

最近需要根据样本编号比对信息,故写了脚本进行处理,满足日常的匹配需求,初步编写的脚本如下: # —*—coding:utf-8_*_ # date: 2020-05-04import xlrd import csv import argparse,os,io def pre_prepration(cur_path,sample_lis…

数据可视化--表格融合练习

数据可视化--表格融合练习pd.merge()函数说明代码演练参考书籍pd.merge()函数说明 使用共有列作为两个数据框数据融合的依据,主要使用pd.merge()函数: 参数说明: left: 传递左表数据right: 传递右表数据how: 数据融合方式 left:保留左表的数…

练习系列:Python字典:一键对应多值

需求: 遍历文本文件,生成一键对应多值的字典,如下所示: 文本文件内容("\t"分割字符串): “”" A 1 A 2 A 3 B c B d C 4 C 5 C e “”" 目标生成文件格式: target_dict {“A”:[1,2,3…

从分析结果中根据list提取突变信息

# _*_coding:utf-8_*_ # author: 稻田工作者 # date: 2020-06-13"""根据原始样本对应的突变信息从数据分析文件中提取检出结果,如: 原始样本LC-BR3对应的突变信息如下: NM_000245.2:exon14_intron14:c.3028_302816del17:p.? …

bwa mem 报错处理:[mem_sam_pe] paired reads have different names

背景: 从samtools sort 默认排序后的bam文件中提取fastq序列并对其格式化,对格式化后的fastq文件重新比对到参考基因组,报错如下:”[mem_sam_pe] paired reads have different names: “A00575:297:HWHKYDMXX:1:1331:22372:31814…

python windows环境下批量修改文件的创建时间、访问时间、修改时间

引用:https://blog.csdn.net/dengnihuilaiwpl/article/details/86551720 常见的修改文件时间有两种方式: 方式一:修改访问和修改时间; 使用utime函数 方法二:修改创建时间 使用pywin32file库 以下代码可以实现两种…