踩坑日志 | kingfisher 公共测序数据 SRA/Fastq 下载神器!
导言
前几天看到基因课的东哥提了一下kingfisher,一个看起来就是极度便利的公共测序数据下载工具。我非常感兴趣,但也确实没时间折腾,于是继续丢给师弟去看看(事实上,他肯定也有类似需求....)。结果如下,感觉不错。帮大伙踩坑测试,与大伙分享。- CJ - 陈程杰
写在前面
一般在进行公共测序数据挖掘的时候,需要从公共数据库中(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,指定线程数
写在最后(by-CJ)
Emmm,按照我的习惯,公众号推文上来一定是三段式:
1.写在前面 - 主要写为啥搞这个
2.内容
3.写在后面 - 主要是随意抒发感悟,可能与推文相关,常常与推文主题无关
李博士的这个稿件少了最后一段,于是我来补充一下。昨天在朋友圈推过一遍,希望大伙有时间有机会可以投稿生信相关的稿件,也可以投稿与TBtools相关的。稿件原创归属于公众号,作者名字仍然是你。同时你一定能拿到稿酬,RMB100起步。一周内阅读过万补到1000,达10万+直接补到 RMB10000(当然,10万+在生信/植物学领域基本不可能,尤其是在这个公众号)。