前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一行代码下载原始数据—Kingfisher

一行代码下载原始数据—Kingfisher

作者头像
生信菜鸟团
发布2023-11-15 14:41:11
4510
发布2023-11-15 14:41:11
举报
文章被收录于专栏:生信菜鸟团生信菜鸟团

工欲善其事,必先利其器

kingfisher是由昆士兰科技大学微生物组研究中心的 Ben J. Woodcroft 教授开发的一款专门用于高通量测序数据下载的工具。

  • Github网址:https://github.com/wwood/kingfisher-download

1简要用途:

一行代码下载原始数据

  • Kingfisher 是一个快速灵活的程序,用于从公共数据库(ENA、NCBI、SRA、Amazon AWS 和 Google Cloud)获取序列文件及其元数据注释。其输入可以是一个或多个“Run" accession(例如DRR001970),或一个 BioProject accessions(例如PRJNA621514或SRP260223)。它有两种主要模式:get 模式用于下载序列数据,annotate 模式用于下载元数据。
  • get 子命令中,Kingfisher 会从一系列冗余源下载数据,直到其中一个有效。然后,下载的数据根据需要转换为SRA/FASTQ/FASTA/GZIP 文件格式。下载和提取阶段通常比使用NCBI的SRA工具包更快。特别是,如果从ENA下载,意味着直接下载的是 FASTQ文件,因此不需要提取步骤。

2如何安装

一般我们推荐是conda安装

代码语言:javascript
复制
conda create -n kingfisher python=3.8
conda activate kingfisher
conda install -c bioconda kingfisher

3最小化使用

get 模式 ——下载并选择转换序列数据

代码语言:javascript
复制
##下载整个Bioproject
kingfisher get -p PRJNA486534 -m ena-ascp ena-ftp prefetch aws-http 1>down_prjan486534.log 2>&1

##下载单个样本
kingfisher get -r SRR14615558 -m ena-ascp ena-ftp prefetch aws-http --download-threads 10  1>down.log 2>&1

##下载多个样本
kingfisher get --run-identifiers-list SRR_list.csv -m ena-ascp ena-ftp prefetch --download-threads 10 --check-md5sums 1>down_srr_list.log 2>&1

-p :批量下载BioProject IDs 中的所有数据
-m :指定下载源 ena-ascp、ena-ftp、prefetch、aws-http、aws-cp、gcp-cp 等
-r :下载某个确定的SRA数据 
--run-identifiers-list :SRR样本列表文件,单列SRR号
--download-threads -t :  指定线程数

extract 模式——转换 .sra文件格式

代码语言:javascript
复制
##调用16个线程将 `.sra` 文件转换为 fastq文件
kingfisher extract --sra ERR1739691.sra -t 16 -f fastq.gz

-t :线程数 

annotate 模式 —— 获取元数据表

默认是标准输出,当然也可以指定输出到文件

代码语言:javascript
复制
kingfisher annotate -r SRR11181996

可选参数

  • --all-column 获得更完整的信息集,
  • -f 指定以 CSV、 TSV、 JSON、feather或 parquet 格式输出。
  • -o 指定输出文件的写入路径(默认:标准输出stdout)。

4其他参数

get 模式 -m

方法

描述

ena-ascp

通过Aspera从ENA下载.fastq.gz文件,之后可以进一步转换。这是最快的方法,因为不需要使用fasterq-dump。

ena-ftp

通过curl从ENA下载.fastq.gz文件,之后可以进一步转换。这是相对较快的方法,因为不需要使用fasterq-dump。

prefetch

使用NCBI的prefetch从sra-tools下载.SRA文件,然后用fasterq-dump提取。

aws-http

使用aria2c通过多个连接线程从AWS Open Data Program下载.SRA文件,之后用fasterq-dump提取。

aws-cp

使用aws s3 cp从AWS下载.SRA文件,然后用fasterq-dump提取。通常不需要支付费用或AWS账户。

gcp-cp

使用Google Cloud gsutil1下载.SRA文件,然后用fasterq-dump提取。需要支付费用和Google Cloud账户。

  • --run-identifiers-list :以换行分隔的运行标识符列表的文本文件,即1列 CSV 文件。
  • -f :指定转换输出的文件格式,支持 fastq,fastq.gz,fasta,fasta.gz ,默认为fastq
  • --hide-download-progress:在下载过程中不显示进度条(默认显示进度)。
  • --ascp-ssh-key ASCP_SSH_KEY:用于Aspera的openssh密钥路径(默认:使用Kingfisher附带的密钥)。
  • --ascp-args ASCP_ARGS:传递给ascp的额外参数,例如'-k 2'用于通过稀疏文件校验和恢复(默认:'-k 2')。
  • --prefetch-max-size PREFETCH_MAX_SIZE:使用prefetch下载默认限制为20G文件大小。Kingfisher禁用了这一限制。使用此选项重新设置文件大小限制,例如--prefetch-max-size "1G"表示1 GB限制(默认:不使用)。
  • --check-md5sums:检查下载文件的md5sums。这仅对ena-ftp、ena-ascp和aws-http下载方法实现。prefetch、aws-cp和gcp-cp方法在下载过程中计算校验和(默认:不使用)。
  • -f, --output-format-possibilities {sra,fastq,fastq.gz,fasta,fasta.gz}:允许的输出格式。如果指定了多个,则尽可能少处理下载的数据(默认:"fastq fastq.gz")。
  • --force:即使文件已存在也重新下载/提取(默认:不重新下载/提取)。
  • --unsorted:以任意顺序输出序列,通常是它们在.sra文件中出现的顺序。即使是成对的读取可能也是正常顺序,但可以从名称中识别出哪对是哪对,哪个是正向读取,哪个是反向读取(默认:不这样做)。目前只能从NCBI而不是ENA下载。
  • --stdout:将序列输出到STDOUT。目前需要 --unsorted(默认:不这样做)。
  • -t, --extraction-threads EXTRACTION_THREADS:提取.sra文件时使用的线程数。当指定了--unsorted时会忽略(默认:8线程)。
  • --quiet :仅输出报错信息

5测试

是否可以下载单独指定的Fastq文件?

有时候一个数据集下载完成之后,但是发现仅有个别样本,数据完整性校验不通过,这时候就需要单个fastq文件重新下载,那么 Kingfisher 可以实现吗?

代码语言:javascript
复制
kingfisher get -r SRR14615558_2.fastq.gz -m ena-ascp ena-ftp prefetch aws-http --download-threads 10 

运行报错,说明可以单独下载指定的SRA文件,但是不能具体指定下载 fastq1 还是fastq2。查看说明文档,也仅有 -r-p 这两个参数,并没有针对 fastq 文件的可选项。

文末友情宣传

强烈建议你推荐给身边的博士后以及年轻生物学PI,多一点数据认知,让他们的科研上一个台阶:

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-14,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1简要用途:
  • 2如何安装
  • 3最小化使用
    • get 模式 ——下载并选择转换序列数据
      • extract 模式——转换 .sra文件格式
        • annotate 模式 —— 获取元数据表
        • 4其他参数
          • get 模式 -m
          • 5测试
            • 是否可以下载单独指定的Fastq文件?
              • 文末友情宣传
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
          http://www.vxiaotou.com