下载公共测序数据的另一种姿势(kingfisher)
2021-08-03 本文已影响0人
老饕_Ljw
写在前面
- 一般在进行公共测序数据挖掘的时候,需要从公共数据库中(SRA、ENA、DDBJ等)下载自己所需的测序数据。下载数据时,往往会遇到网速限制或下载链接不可用等因素,当某个数据库的目标数据下载不来时,可以去其他公共数据库下载,因为这三者的数据是共享的。
- 问题来了,手动在不同的数据库中检索与下载目标数据确实较为繁琐。这时可以试试使用
Kingfisher
来自动下载数据。
Kingfisher简介
- Kingfisher是一个高通量测序数据下载工具,用户提供Run accessions或者BioProject accessions,即可在ENA、SRA、Amazon AWS以及Google Cloud等数据库中下载目标数据。Kingfisher会尝试从一系列的数据源进行数据下载,直到某个源能够work。
- 此外,还能根据用户的需求将下载数据直接输出为SRA、Fastq、Fasta或Gzip等格式,非常方便,不需要自己再对SRA数据通过fasterq-dump进行拆分转换。
Kingfisher安装与使用
- 安装
conda create -c conda-forge -c bioconda -n kingfisher pigz python extern curl sra-tools pandas requests aria2
conda activate kingfisher
#使用conda activate不能成功激活环境时可以尝试使用:source activate kingfisher
pip install bird_tool_utils'>='0.2.17
git clone https://github.com/wwood/kingfisher-download
cd kingfisher-download/bin
export PATH=$PWD:$PATH
kingfisher -h
#弹出帮助文档即安装成功
- 下载数据
- 注意:如果只想下载某个确定的SRA数据,则使用-r参数,提供SRR Number即可,如SRR12042866;若是想批量下载某个BioProject中的所有数据,则可以使用-p参数,提供BioProject Number,如PRJNA640275或SRP267791。
kingfisher get -r SRP267791 -m ena-ascp ena-ftp prefetch aws-http
#-r Run number(s) to download/extract e.g. ERR1739691
#-p BioProject IDs number(s) to download/extract from e.g. PRJNA621514 or SRP260223
# -m ena-ascp、ena-ftp、prefetch、aws-http、aws-cp、gcp-cp
# --download-threads 线程数
- 数据下载源介绍(-m参数)
ena-ascp,调用Aspera从ENA中下载.fastq.gz数据
ena-ftp,调用curl从ENA中下载.fastq.gz数据
prefetch,调用prefetch从NCBI SRA数据库中下载SRA数据,然后默认使用fasterq-dump对其进行拆分转换
aws-http,调用aria2c从AWS Open Data Program中下载SRA数据,然后默认使用fasterq-dump对其进行拆分转换
也就是说,如果是用的ENA源 直接下载的就是fastq,如果用的SRA或其他,那就是下载SRA数据 然后kingfisher再自动调用fasterq-dump转换成fastq
- SRA格式转换成fastq格式,调用fasterq-dump
kingfisher extract --sra SRR1574780.sra -t 20 -f fastq.gz
#-f,指定转换输出的文件格式,支持fastq,fastq.gz,fasta,fasta.gz
#-t,指定线程数