2021-2-3-利用anaconda+prefetch+aspera从NCBI的SRA数据库中下载原始测序数据


记录下下载过程,为自己和后人避坑。

1.Conda连接不上镜像源问题

首先是anaconda安装软件或创建环境时遇到的问题。即使换完清华源和其他镜像源以后依旧报错。

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsi

尝试了很多方法:换源,删除.condarc中的default等,都不行。最后尝试了镜像源中,将https改为为http! 成功了。奇怪的是另一台服务器我用的conda完全一样的配置,用https也可以。这种事情很神奇,也有可能就是网络的问题。

具体可参考:
Anaconda建立新的环境,出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url ...... 解决过程
Anaconda3-更换为清华源后依旧报错CondaHTTPError: HTTP 000 CONNECTION FAILED

2. aspera不能再独立使用

aspera下载速度很快,网上很多教程统统用不了,原因就是ncbi的ftp中的sra/sra-instant已经移除了。所以,当你看到类似的教程: ascp -v -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh -k 1 -T -l 200m anonftp@ftp.ncbi.nlm.nih.gov:/sra/sra-instant/reads/ByRun/sra/SRR/SRR949/SRR949627/SRR949627.sra ~/data/,请忽略它。

我尝试了其他几个ftp站点,也找不到sra-instant地址。

3.使用prefetch搭配aspera

退而求其次的方法,就是用prefetch。但需要注意prefetch和aspera的版本,最新版本的prefetch用不了aspera。

我这里安装sratools 2.9.6 ,可以源码下载,解压即可(已编译)。也可以用conda指定版本:

conda install sra-tools=2.9.6 -y

aspera的安装,同样可源码,下载地址:IBM Aspera Connect
我这里选择3.10.1.0,解压sh运行即可,默认安装在家目录以隐藏目录存在:
image.png
image.png
也可用anaconda安装:

conda install -c hcc aspera-cli

#可指定版本
conda install -c hcc aspera-cli=3.7.7

4. prefetch下载方法

安装好以后,直接用prefetch下载单个sra文件,或者下载文件列表。最好指定下载目录,prefetch默认下载在home/user/ncbi/public/sra中(会自动新建),home目录空间太小,不建议。

#单个sra
prefetch SRR8956151 -O ./

# 批量
prefetch --option-file SRR_Acc_List.txt -O ./

SRR_Acc_List.txt文件的寻找也比较麻烦:
image.png

prefetch会自动调用aspera的ascp。
image.png

下载的速度还是很快的,一个文件一分钟左右:
image.png

虽然prefetch会自动调用ascp,但由于网速等原因,有时也会出现timeout,特别是大文件下载,出现类似process failed while waiting process - ascp failed with 1的错误,这时最好是指定ascp:

prefetch -t ascp -a "/home/user/.aspera/connect/bin/ascp|/home/user/.aspera/connect/etc/asperaweb_id_dsa.openssh" --option-file SRR_Acc_List.txt -O ./

https://www.jianshu.com/p/d1abdced8bcd
https://www.jianshu.com/p/ee1119a4e79d
https://www.jianshu.com/p/709924001d5d
https://www.jianshu.com/p/f16ed4c79739

原文地址:https://www.cnblogs.com/jessepeng/p/14366766.html