Aspera——碾压prefetch下令的存在, 利用SRR号批量高效下载FASTQ或SRA数据

分享
手机游戏开发者 2024-9-11 12:03:17 78 0 来自 中国
本节简朴介绍Aspera安装和利用,并给出利用SRR号批量下载FASTQ或SRA数据的方法,通过比力发现aspera的下载速率与prefetch相比有了质的飞跃
前言:
我们下载测序数据一样平常利用sra-tools的prefetch功能,通过SRR号从NCBI的SRA数据库下载SRA文件,这种方式比力稳固,但下载速率有所限定且需要将SRA再转化为FASTQ文件,这过程中又会消耗不少时间和算力。
一种替换方法是利用Aspera软件,从EBI(European Bioinformatics Institute)的ENA(European Nucleotide Archive)数据库直接下载FASTQ格式文件,免去了转化格式的步调,且下载速率有了质的提拔,可以说是碾压prefetch。其缺点是偶然候不太稳固,受网络影响速率颠簸大。


官网:https://www.ibm.com/products/aspera
1. Aspera的下载和安装

① conda 安装

这是最为简朴方便的方式,保举利用:
conda install -c hcc aspera-cli② 官网安装包下载安装

参照:Aspera:基因组数据高速下载利器,以NCBI和EBI数据下载为例
官网下载所在:https://www.ibm.com/aspera/connect/
起首需要进入上面的aspera 下载所在,获取linux版本的下载链接,再运行以下代码:
# 下载wget https://d3gcli72yxqn2z.cloudfront.net/downloads/connect/latest/bin/ibm-aspera-connect_4.2.0.42_linux.tar.gz# 解压tar xvf ibm-aspera-connect******.tar.gz   # 解压后得到一个脚本文件,运行该脚本,即可完成主动安装bash ibm-aspera-connect*******.sh# 全部安装文件都在~/.aspera/connect目次下,在 ~/.bashrc添加情况变量export PATH=~/.aspera/connect/bin/PATH# 使情况变量见效source  ~/.bashrc2. 根本参数与利用

https://www.ibm.com/support/pages/downloading-data-ncbi-command-line#usage
① 利用示例:

下载SRR12207279_1.fastq.gz文件到当前文件夹:
ascp  -vQT -l 500m -P33001 -k 1 -i \~/.aspera/connect/etc/asperaweb_id_dsa.openssh \era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR122/079/SRR12207279/SRR12207279_1.fastq.gz  ./
############### 重要利用参数 #################
-v 详细模式
-Q  用于自顺应流量控制,磁盘限定所需
-T  设置为无需加密传输
-l   最大下载速率,一样平常设为500m
-P  TCP 端口,一样平常为33001
-k  断点续传,通常设为 1
-i   免密下载的密钥文件
② 密钥文件路径

如果是安装包安装的方式,私钥文件一样平常位于~/.aspera/connect/etc/asperaweb_id_dsa.openssh
如果是conda安装的方式,先利用which ascp下令查看ascp下令所在路径:


再将bin及之后内容更换为 etc/asperaweb_id_dsa.openssh
如上图中更换后,密钥文件路径就为/home/gu/miniconda3/envs/share/etc/asperaweb_id_dsa.openssh
末了再ll查看确认一下密匙路径:

③ 从EBI获取FASTQ文件下载所在

https://www.ebi.ac.uk/ena/browser/home中搜索GSE号等信息(如:GSE154290),找到所需的项目,Column Select勾选fastq_aspera及其他想要的信息,直接点击复制Aspera下载所在,或者下载TSV文件,此中包罗有FASTQ文件下载所在信息等



6.png
有了下载所在,实在就可以批量写循环下载了:拜见生信技能树文章 利用ebi数据库直接下载fastq测序数据的改进脚本
3. 利用SRR号批量下载FASTQ数据或SRA数据

在有了SRR号的情况下,还可以用下面的方法直接用脚本下载对应数据,而不消去EBI网站获取链接
① 批量下载FASTQ文件

观察FASTQ文件的Aspera下载所在:
era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR122/079/SRR12207279/SRR12207279_1.fastq.gz可以发现其定名是很有规律的,很容易想到可以编写脚本批量循环下载数据,下面树模下载SRR12207279和SRR12207280这两个数据:

  • 起首获取SRR号,导入到test路径下(test可更换成本身的项目路径)的idname文件,详细拜见RNA-seq入门实战(一):上游数据下载、格式转化和质控洗濯

    这里要留意每行不能有空格,否则后续运行脚本大概会出错,用cat -A下令查抄一下每行是否SRR开头、$末端:

  • 编辑、运行以下脚本,代码重要参考了
    (DownLoad)Aspera——ascp下载SRA数据 - 知乎 (zhihu.com)
    并参加了样本编号为SRR+8位数的情况,且能主动根据SRR号的位数下载对应数据;运行前留意修改密匙存放路径和本身的项目路径(更换test目次)
    (linux下令和R语言差异真是有点大,查了半资质料才搞明确linux中的逻辑判断语句的利用,困难写出下面的代码.....)
vim ascp_fastq.sh### ascp_fastq.sh脚本内容echo -e "\n\n\n 000# ascp Download FASTQ !!! \n\n\n"date## 目次设置mkdir -p  ~/test/raw/fq/cd  ~/test/raw/fq/pwd## 密匙路径openssh=/home/gu/miniconda3/envs/share/etc/asperaweb_id_dsa.opensshcat ~/test/idname | while read iddonum=`echo $id | wc -m ` #这里留意,wc -m 会把每行末端$也算为一个字符echo "SRRnum+1 is $num" #因此SRRnum + 1才便是$num值#如果样本编号为SRR+8位数 #if [ $num -eq 12 ]then        echo "SRR + 8"        x=$(echo $id | cut -b 1-6)        y=$(echo $id | cut -b 10-11)        echo "Downloading $id "        ( ascp  -QT -l 500m -P33001  -k 1 -i $openssh \                era-fasp@fasp.sra.ebi.ac.uk:vol1/fastq/$x/0$y/$id/   ./ & )#如果样本编号为SRR+7位数 #elif [ $num -eq 11 ]then        echo  "SRR + 7"        x=$(echo $id | cut -b 1-6)        y=$(echo $id | cut -b 10-10)        echo "Downloading $id "        ( ascp  -QT -l 500m -P33001  -k 1 -i $openssh \                        era-fasp@fasp.sra.ebi.ac.uk:vol1/fastq/$x/00$y/$id/   ./ & )#如果样本编号为SRR+6位数 #elif [ $num -eq 10 ]then        echo  "SRR + 6"        x=$(echo $id |cut -b 1-6)        echo "Downloading $id "        ( ascp  -QT -l 500m -P33001 -k 1 -i  $openssh \                        era-fasp@fasp.sra.ebi.ac.uk:vol1/fastq/$x/$id/   ./ & )fidonenohup bash ascp_fastq.sh >log_ascp_fastq 2>&1 &

  • 运行效果如下,可以看到,在我的500M宽带下利用Aspera,5.8G数据下载用时460s,匀称速率约13mb/s,下载过程中最高峰值速率可到达近40mb/s,这速率和prefetch相比可以说是飞快了!

② 批量下载SRA文件(10x数据)

希奇的是,如果是10x单细胞数据,ENA数据库中每个数据存放的却只有一个fastq.gz文件,如GSE117988项目,实行利用aspera下载此中的 SRR7722941数据后也确实只有一个fastq.gz文件:


11.png 10x上游利用Cellranger软件需要3个fastq文件...(拜见生信技能树 单细胞实战(二) cell ranger利用前留意事项 )
没办法,只能继承先下载SRA文件,再用fasterq-dump(--split-files --include-technical 参数)或fastq-dump、 parallel-fastq-dump(--split-files参数)转成三个fastq文件。(如果有更好办法,欢迎品评区留言讨论

  • 起首观察SRR7722941数据的SRA文件下载所在:
era-fasp@fasp.sra.ebi.ac.uk:/vol1/srr/SRR772/001/SRR7722941

  • 可以发现其与FASTAQ文件下载所在相比,实在也就是此中的fastq/换成了srr/而已,套用上述①中脚本轻微改动一下即可:
echo -e "\n\n\n 000# ascp Download SRA !!! \n\n\n"datemkdir -p  ~/test/raw/sra/cd  ~/test/raw/sra/pwdopenssh=/home/gu/miniconda3/envs/share/etc/asperaweb_id_dsa.opensshcat ~/test/idname | while read iddonum=`echo $id | wc -m `echo "SRRnum+1 is $num"#如果样本编号为SRR+8位数 #if [ $num -eq 12 ]then        echo "SRR + 8"        x=$(echo $id | cut -b 1-6)        y=$(echo $id | cut -b 10-11)        echo "Downloading $id "        ( ascp  -QT -l 500m -P33001  -k 1 -i $openssh \                era-fasp@fasp.sra.ebi.ac.uk:vol1/srr/$x/0$y/$id/   ./ & )#如果样本编号为SRR+7位数 #elif [ $num -eq 11 ]then        echo  "SRR + 7"        x=$(echo $id | cut -b 1-6)        y=$(echo $id | cut -b 10-10)        echo "Downloading $id "        ( ascp  -QT -l 500m -P33001  -k 1 -i $openssh \                        era-fasp@fasp.sra.ebi.ac.uk:vol1/srr/$x/00$y/$id/   ./ & )#如果样本编号为SRR+6位数时 #elif [ $num -eq 10 ]then        echo  "SRR + 6"        x=$(echo $id |cut -b 1-6)        echo "Downloading $id "        ( ascp  -QT -l 500m -P33001 -k 1 -i  $openssh \                        era-fasp@fasp.sra.ebi.ac.uk:vol1/srr/$x/$id/   ./ & )fidone

  • 用上述脚本下载SRR7722941数据的SRA文件效果如下,下载完成1016M数据,用时79s,匀称速率13mb/s

    留意,这里下载的SRA文件没有.sra后缀,格式转换前需要先改名,再用parallel-fastq-dump转换为fastq.gz文件(否则parallel-fastq-dump会误以为要下载该SRR数据 ),终极天生3个FASTQ文件:
    (至于为什么选择parallel-fastq-dump呢,请拜见fastq-dump、fasterq-dump和parallel-fastq-dump处理处罚SRA文件的速率比力 - 简书 (jianshu.com))
mv SRR7722941 SRR7722941.sraparallel-fastq-dump -t 12  -O ./ --split-files --gzip -s SRR7722941.sra 13.png

  • 末了再来比力一下类似网络条件下(500M宽带)利用prefetch下令的下载速率:同样下载1016M数据,prefetch用时195min,匀称速率只有90kb/s,泯灭的时间是Aspera的近150倍。。。。。。(不外如果是背景同时下载多个文件,差距应该不至于那么大...)
time prefetch -p -O ./ SRR7722941
从以上可看出,类似网络状态下aspera的下载速率与prefetch相比有了质的提拔,简直是碾压般的存在,因此在网络状态较好的情况下最好优先选择aspera下载吧
参考资料
Downloading data from NCBI via the command line (ibm.com)
利用ebi数据库直接下载fastq测序数据的改进脚本 (qq.com)
Aspera下载安装利用 - 简书 (jianshu.com)
从NCBI-SRA和EBI-ENA数据库下载数据 - 简书 (jianshu.com)
Aspera:基因组数据高速下载利器,以NCBI和EBI数据下载为例 (qq.com)
(DownLoad)Aspera——ascp下载SRA数据 - 知乎 (zhihu.com)
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-19 08:52, Processed in 0.193836 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表