Kingfisher 下载ENA、NCBI SRA、AWS 和 Google Cloud)序列数据和元数据

devtools/2024/11/24 23:38:22/

Kingfisher 是一个灵活高效的工具,用于从公共数据仓库(如 ENA、NCBI SRA、AWS 和 Google Cloud)下载序列数据和元数据。它有两个主要模式:获取序列数据(get)和获取元数据(annotate)。该工具可以通过 conda 或 Docker 安装,并支持多种下载方法。

1. Kingfisher 工具概述

Kingfisher 是一个旨在简化从公共数据仓库(如 欧洲核苷酸档案馆(ENA)NCBI SRAAmazon AWSGoogle Cloud)下载测序数据和元数据的工具。用户可以输入特定的 “Run” 访问号(例如 DRR001970)或 BioProject 访问号(例如 PRJNA621514)。

2. 主要功能:
  • get 模式:下载序列数据,支持多种格式,如 SRAFASTQFASTAGZIP。它通过多次尝试不同的数据源(例如 ENA、NCBI、AWS)来保证下载的冗余性,直到成功为止。
  • annotate 模式:下载元数据,支持输出为 CSVTSVJSONParquet 格式。
3. 安装选项:
  • 通过 Bioconda 安装:最简单的安装方法是通过 condabioconda 安装 Kingfisher。您可以使用以下命令设置 conda 环境:
    conda create -n kingfisher -c conda-forge -c bioconda kingfisher
    conda activate kingfisher
    
4. Docker 安装

如果您更喜欢使用 Docker,可以从 DockerHub 获取 Kingfisher 的镜像,并通过 Docker 运行。以下是安装和使用的步骤:

  • 拉取 Docker 镜像:
    docker pull wwood/kingfisher:[RELEASE_TAG]
    
  • 下载数据到当前目录:
    docker run -v `pwd`:/data wwood/kingfisher:[RELEASE_TAG] get -r SRR12118866 -m ena-ftp
    

其中 [RELEASE_TAG] 需要替换为您需要的具体版本标签。

5. 源代码安装

如果您想要从源代码运行 Kingfisher,可以按照以下步骤在本地开发环境中安装:

  • 克隆 Kingfisher 仓库:
    git clone https://github.com/wwood/kingfisher-download
    cd kingfisher-download
    
  • 安装依赖并激活环境:
    conda env create -n kingfisher -f kingfisher.yml
    conda activate kingfisher
    
  • 进入 bin 目录并设置环境变量:
    cd bin
    export PATH=$PWD:$PATH
    
  • 运行 Kingfisher:
    kingfisher -h
    

这样,您就可以在开发环境中运行 Kingfisher 了。

6. 使用方法

Kingfisher 提供了三种主要的操作模式:getextractannotate。每种模式的具体使用方法如下:

  • get 模式:下载并可选地转换序列数据

    kingfisher get -r ERR1739691 -m ena-ascp aws-http prefetch
    

    该命令将尝试从 ENA 下载 ERR1739691 的文件,若失败则从 Amazon AWS Open Data 下载 .SRA 文件,并转换为 FASTQ 格式。

  • extract 模式:从 .SRA 格式文件中提取序列数据

    kingfisher extract --sra ERR1739691.sra -t 16 -f fastq.gz
    

    该命令将使用 16 个线程将 ERR1739691.sra 文件提取并转换为 FASTQ 格式(假设是双端测序数据,则生成两个文件)。

  • annotate 模式:获取元数据表格

    kingfisher annotate -r ERR1739691
    

    该命令将获取与 ERR1739691 相关的元数据,并输出为默认格式的表格(如 CSV 或 TSV)。

7. 下载方法详细介绍:

get 模式下,Kingfisher 支持以下几种下载方式:

方法描述
ena-ascp使用 Aspera 从 ENA 下载数据,这是最快的下载方式。
ena-ftp使用 FTP 从 ENA 下载数据,这也很快,因为无需解压缩。
prefetch使用 NCBI 的 prefetch 从 SRA 下载数据,然后转换为 FASTQ 格式。
aws-http使用 AWS Open Data Program 下载数据,并提取为 FASTQ 格式。
aws-cp使用 AWS S3 从 AWS 下载数据,提取为 FASTQ 格式。
gcp-cp使用 Google Cloud 下载数据,提取为 FASTQ 格式。
8. 常见问题解答(FAQ)
  • ascp: not found 错误
    如果出现 /bin/sh: 1: ascp: not found 错误,表示 Aspera 客户端未正确安装。需要确保按照文档中的步骤正确安装 Aspera 客户端。

  • 认证失败问题
    如果提示 “Failed to authenticate with ascp”,可能是由于网络问题或 Aspera 客户端配置不正确。检查网络连接或尝试使用其他网络,并确保 Aspera 客户端正确配置。

  • API 限制问题
    如果您频繁调用 NCBI 的 API,可能会遇到 “API rate limit exceeded” 错误。在这种情况下,您可以生成一个 NCBI API 密钥,并将其设置为环境变量来绕过限制:

    export NCBI_API_KEY="your_api_key"
    

如果有多个SRR号

一开始用这个命令挺好的但是,不知道为什么突然不能用了


cat down | xargs -I {} kingfisher get -r {} -m  aws-http prefetch aws-cp gcp-cp ena-ascp ena-ftp  

没办法现在是一个一个下载

kingfisher get -r SRR8925609  -m aws-http prefetch aws-cp gcp-cp ena-ascp ena-ftp

http://www.ppmy.cn/devtools/136679.html

相关文章

使用MATLAB进行字符串处理

MATLAB是一个强大的数学和计算机科学的软件工具包。它拥有一个灵活的字符串处理工具,可以用于处理和转换不同格式的字符串,例如,数值、日期、时间等。本文将探讨如何使用MATLAB进行字符串处理,以及如何利用它来解决实际问题。 在…

RocketMQ: 客户端使用指南

客户端如何寻址 RocketMQ 有多种配置方式可以令客户端找到 Name Server, 然后通过 Name Server 再找到 Broker,分别如下,优先级由高到低,高优先级会覆盖低优先级 一、代码中指定 Name Server 地址 producer.setNamesrvAddr("192.168.…

【es6进阶】vue3中的数据劫持的最新实现方案的proxy的详解

vuejs中实现数据的劫持,v2中使用的是Object.defineProperty()来实现的,在大版本v3中彻底重写了这部分,使用了proxy这个数据代理的方式,来修复了v2中对数组和对象的劫持的遗留问题。 proxy是什么 Proxy 用于修改某些操作的默认行为&#xff0…

android R编译Super.img时size过大报错

编译Android12时最后一步打包Super.img报错: out/target/product/tt/obj/PACKAGING/check-all-partition-sizes_intermediates/misc_info.txt )" Traceback (most recent call last):File "/home/test/tt_r_temp/android/out/host/linux-x86/bin/check_p…

十、事件类型(鼠标事件、焦点.. 、键盘.. 、文本.. 、滚动..)、事件对象、事件流(事件捕获、事件冒泡、阻止冒泡和默认行为、事件委托)

1. 事件类型 1.1 鼠标事件 1.1.1 click 鼠标点击 1.1.2 mouseenter 鼠标进入 1.1.3 mouseleave 鼠标离开 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widt…

Javaee文件的io操作

1&#xff09;针对文件系统进行操作 创建文件&#xff0c;删除文件&#xff0c;创建目录&#xff0c;重命名文件 2&#xff09;针对文件内容进行操作 读文件&#xff0c;写文件。 3&#xff09;针对文件系统进行操作 创建文件&#xff0c;删除文件&#xff0c;创建目录&am…

基于YOLOv8深度学习的人体姿态摔倒检测与语音报警系统(PyQt5界面+数据集+训练代码)

随着人口老龄化进程的加速&#xff0c;摔倒事故逐渐成为威胁老年人健康和安全的主要问题之一。研究表明&#xff0c;摔倒不仅可能导致老年人骨折、头部受伤等严重的身体损伤&#xff0c;还可能引发心理恐惧和行动能力下降&#xff0c;从而降低其生活质量和独立性。如何快速、准…

百度遭初创企业指控抄袭,维权还是碰瓷?

“ 抄袭指控引发网友热议&#xff0c;有人支持其立场&#xff0c;也有人认为工具类产品在界面设计上相似度高是行业常态。 ” 转载|科技新知 原创 作者丨晓伊 编辑丨蕨影 一年一度的百度世界大会刚刚落幕&#xff0c;一家初创企业却站出来公开指责百度抄袭自家产品&#xff…